From 4f3c856eb734e73b6e32d268b4841021fd437ae7 Mon Sep 17 00:00:00 2001 From: Joel Andrews Date: Wed, 25 Jan 2023 17:01:05 -0800 Subject: [PATCH 1/2] Upgrade Heroku CLI command package The latest version requires a bit of refactoring for the new version of `@oclif/core` according to https://github.com/oclif/core/blob/1.26.1/MIGRATION.md. --- bin/dev | 17 +++ bin/dev.cmd | 3 + bin/run | 5 +- package.json | 7 +- src/async-actions.ts | 8 +- src/command-components.ts | 13 +- src/commands/borealis-pg/extensions/index.ts | 2 +- .../borealis-pg/extensions/install.ts | 4 +- src/commands/borealis-pg/extensions/remove.ts | 8 +- src/commands/borealis-pg/info.ts | 2 +- .../borealis-pg/integrations/index.ts | 6 +- .../borealis-pg/integrations/register.test.ts | 4 +- .../borealis-pg/integrations/register.ts | 2 +- .../borealis-pg/integrations/remove.test.ts | 2 +- .../borealis-pg/integrations/remove.ts | 6 +- src/commands/borealis-pg/psql.test.ts | 8 +- src/commands/borealis-pg/psql.ts | 2 +- src/commands/borealis-pg/run.test.ts | 14 +- src/commands/borealis-pg/run.ts | 6 +- src/commands/borealis-pg/tunnel.test.ts | 12 +- src/commands/borealis-pg/tunnel.ts | 2 +- src/commands/borealis-pg/users/index.ts | 6 +- src/commands/borealis-pg/users/reset.ts | 2 +- yarn.lock | 144 ++++++++++-------- 24 files changed, 158 insertions(+), 127 deletions(-) create mode 100755 bin/dev create mode 100644 bin/dev.cmd diff --git a/bin/dev b/bin/dev new file mode 100755 index 0000000..bbc3f51 --- /dev/null +++ b/bin/dev @@ -0,0 +1,17 @@ +#!/usr/bin/env node + +const oclif = require('@oclif/core') + +const path = require('path') +const project = path.join(__dirname, '..', 'tsconfig.json') + +// In dev mode -> use ts-node and dev plugins +process.env.NODE_ENV = 'development' + +require('ts-node').register({project}) + +// In dev mode, always show stack traces +oclif.settings.debug = true; + +// Start the CLI +oclif.run().then(oclif.flush).catch(oclif.Errors.handle) diff --git a/bin/dev.cmd b/bin/dev.cmd new file mode 100644 index 0000000..6f2aae1 --- /dev/null +++ b/bin/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\dev" %* diff --git a/bin/run b/bin/run index 3c4ae3a..a7635de 100755 --- a/bin/run +++ b/bin/run @@ -1,4 +1,5 @@ #!/usr/bin/env node -require('@oclif/command').run() -.catch(require('@oclif/errors/handle')) +const oclif = require('@oclif/core') + +oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')) diff --git a/package.json b/package.json index 778827c..d42f943 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,9 @@ "author": "Boreal Information Systems Inc.", "bugs": "https://github.com/OldSneerJaw/borealis-pg-cli/issues", "dependencies": { - "@heroku-cli/command": "^8.5.0", - "@oclif/command": "^1.8.21", - "@oclif/config": "^1.18.6", + "@heroku-cli/command": "^9.0.1", + "@oclif/core": "^1.26.1", "chalk": "^2.4.2", - "cli-ux": "^5.6.7", "dotenv": "^16.0.3", "http-call": "^5.3.0", "pg": "^8.7.3", @@ -60,6 +58,7 @@ "oclif-plugin" ], "license": "MIT", + "main": "lib/index.js", "nyc": { "all": true, "reporter": [ diff --git a/src/async-actions.ts b/src/async-actions.ts index 46e00b9..4fc3b3c 100644 --- a/src/async-actions.ts +++ b/src/async-actions.ts @@ -1,5 +1,5 @@ import color from '@heroku-cli/color' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' /** * Used to display a spinner while a given asynchronous action is executed @@ -11,13 +11,13 @@ import cli from 'cli-ux' */ export async function applyActionSpinner(message: string, action: Promise): Promise { try { - cli.action.start(message) + CliUx.ux.action.start(message) const result = await action - cli.action.stop() + CliUx.ux.action.stop() return result } catch (error: any) { - cli.action.stop(color.bold.redBright('!')) + CliUx.ux.action.stop(color.bold.redBright('!')) throw error } diff --git a/src/command-components.ts b/src/command-components.ts index 2b732b1..ef210ae 100644 --- a/src/command-components.ts +++ b/src/command-components.ts @@ -48,17 +48,8 @@ export const cliOptions = { char: 'p', default: defaultPorts.pg, description: 'local port number for the secure tunnel to the add-on Postgres server', - parse: input => { - if (!/^-?\d+$/.test(input)) - throw new Error(`Value "${input}" is not a valid integer`) - - const value = Number.parseInt(input, 10) - if (value < 1 || value > 65_535) { - throw new Error(`Value ${value} is outside the range of valid port numbers`) - } - - return value - }, + min: 1, + max: 65_535, }), writeAccess: flags.boolean({ char: 'w', diff --git a/src/commands/borealis-pg/extensions/index.ts b/src/commands/borealis-pg/extensions/index.ts index d40ccde..5113451 100644 --- a/src/commands/borealis-pg/extensions/index.ts +++ b/src/commands/borealis-pg/extensions/index.ts @@ -24,7 +24,7 @@ export default class ListPgExtensionsCommand extends Command { } async run() { - const {flags} = this.parse(ListPgExtensionsCommand) + const {flags} = await this.parse(ListPgExtensionsCommand) const authorization = await createHerokuAuth(this.heroku) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) diff --git a/src/commands/borealis-pg/extensions/install.ts b/src/commands/borealis-pg/extensions/install.ts index 772edfe..1afa6e3 100644 --- a/src/commands/borealis-pg/extensions/install.ts +++ b/src/commands/borealis-pg/extensions/install.ts @@ -61,7 +61,7 @@ static examples = [ } async run() { - const {args, flags} = this.parse(InstallPgExtensionsCommand) + const {args, flags} = await this.parse(InstallPgExtensionsCommand) const pgExtension = args[cliArgs.pgExtension.name] const suppressConflict = flags[suppressConflictOptionName] const authorization = await createHerokuAuth(this.heroku) @@ -159,7 +159,7 @@ static examples = [ } async catch(err: any) { - const {args} = this.parse(InstallPgExtensionsCommand) + const {args} = await this.parse(InstallPgExtensionsCommand) const pgExtension = args[cliArgs.pgExtension.name] /* istanbul ignore else */ diff --git a/src/commands/borealis-pg/extensions/remove.ts b/src/commands/borealis-pg/extensions/remove.ts index 741d5c6..9fb7b2f 100644 --- a/src/commands/borealis-pg/extensions/remove.ts +++ b/src/commands/borealis-pg/extensions/remove.ts @@ -1,6 +1,6 @@ import color from '@heroku-cli/color' import {Command, flags} from '@heroku-cli/command' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' import {HTTP, HTTPError} from 'http-call' import {applyActionSpinner} from '../../../async-actions' import {getBorealisPgApiUrl, getBorealisPgAuthHeader} from '../../../borealis-api' @@ -50,13 +50,13 @@ export default class RemovePgExtensionCommand extends Command { } async run() { - const {args, flags} = this.parse(RemovePgExtensionCommand) + const {args, flags} = await this.parse(RemovePgExtensionCommand) const pgExtension = args[cliArgs.pgExtension.name] const suppressMissing = flags[suppressMissingOptionName] const confirmation = flags.confirm ? flags.confirm : - (await cli.prompt('Enter the name of the extension to confirm its removal')) + (await CliUx.ux.prompt('Enter the name of the extension to confirm its removal')) if (confirmation.trim() !== pgExtension) { this.error(`Invalid confirmation provided. Expected ${pgExtensionColour(pgExtension)}.`) @@ -90,7 +90,7 @@ export default class RemovePgExtensionCommand extends Command { } async catch(err: any) { - const {args} = this.parse(RemovePgExtensionCommand) + const {args} = await this.parse(RemovePgExtensionCommand) const pgExtension = args[cliArgs.pgExtension.name] /* istanbul ignore else */ diff --git a/src/commands/borealis-pg/info.ts b/src/commands/borealis-pg/info.ts index 3d3ed90..023e6a8 100644 --- a/src/commands/borealis-pg/info.ts +++ b/src/commands/borealis-pg/info.ts @@ -60,7 +60,7 @@ export default class AddonInfoCommand extends Command { } async run() { - const {flags} = this.parse(AddonInfoCommand) + const {flags} = await this.parse(AddonInfoCommand) const authorization = await createHerokuAuth(this.heroku) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) diff --git a/src/commands/borealis-pg/integrations/index.ts b/src/commands/borealis-pg/integrations/index.ts index 63caa1d..d0e55e7 100644 --- a/src/commands/borealis-pg/integrations/index.ts +++ b/src/commands/borealis-pg/integrations/index.ts @@ -1,6 +1,6 @@ import color from '@heroku-cli/color' import {Command} from '@heroku-cli/command' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' import {HTTP, HTTPError} from 'http-call' import {applyActionSpinner} from '../../../async-actions' import {getBorealisPgApiUrl, getBorealisPgAuthHeader} from '../../../borealis-api' @@ -24,7 +24,7 @@ via a secure tunnel using semi-permanent SSH server and database credentials.` } async run() { - const {flags} = this.parse(ListDataIntegrationsCommand) + const {flags} = await this.parse(ListDataIntegrationsCommand) const authorization = await createHerokuAuth(this.heroku) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) @@ -57,7 +57,7 @@ via a secure tunnel using semi-permanent SSH server and database credentials.` }) this.log() - cli.table(normalizedIntegrations, columns, {'no-truncate': true}) + CliUx.ux.table(normalizedIntegrations, columns, {'no-truncate': true}) } else { this.warn('No data integrations found') } diff --git a/src/commands/borealis-pg/integrations/register.test.ts b/src/commands/borealis-pg/integrations/register.test.ts index 0a75176..98720c0 100644 --- a/src/commands/borealis-pg/integrations/register.test.ts +++ b/src/commands/borealis-pg/integrations/register.test.ts @@ -263,7 +263,7 @@ describe('data integration registration command', () => { '-n', fakeIntegrationName, ]) - .catch(/^Missing 1 required arg:/) + .catch(/.*Missing 1 required arg:.*/) .it('exits with an error if there is no SSH public key argument', ctx => { expect(ctx.stdout).to.equal('') }) @@ -271,7 +271,7 @@ describe('data integration registration command', () => { test.stdout() .stderr() .command(['borealis-pg:integrations:register', '-a', fakeHerokuAppName, fakeSshPublicKey]) - .catch(/^Missing required flag:/) + .catch(/.*Missing required flag name.*/) .it('exits with an error if there is no integration name option', ctx => { expect(ctx.stdout).to.equal('') }) diff --git a/src/commands/borealis-pg/integrations/register.ts b/src/commands/borealis-pg/integrations/register.ts index 7e302bb..249b91f 100644 --- a/src/commands/borealis-pg/integrations/register.ts +++ b/src/commands/borealis-pg/integrations/register.ts @@ -71,7 +71,7 @@ supports it.` } async run() { - const {args, flags} = this.parse(RegisterDataIntegrationsCommand) + const {args, flags} = await this.parse(RegisterDataIntegrationsCommand) const sshPublicKey = args[sshPublicKeyCliArgName] const integrationName = flags[dataIntegrationOptionName] const enableWriteAccess = flags[writeAccessOptionName] diff --git a/src/commands/borealis-pg/integrations/remove.test.ts b/src/commands/borealis-pg/integrations/remove.test.ts index 6b35e8e..e8f6165 100644 --- a/src/commands/borealis-pg/integrations/remove.test.ts +++ b/src/commands/borealis-pg/integrations/remove.test.ts @@ -208,7 +208,7 @@ describe('data integration removal command', () => { test.stdout() .stderr() .command(['borealis-pg:integrations:remove', '-a', fakeHerokuAppName]) - .catch(/^Missing required flag:/) + .catch(/.*Missing required flag name.*/) .it('exits with an error if the data integration option is missing', ctx => { expect(ctx.stdout).to.equal('') }) diff --git a/src/commands/borealis-pg/integrations/remove.ts b/src/commands/borealis-pg/integrations/remove.ts index 18e1360..e31b04e 100644 --- a/src/commands/borealis-pg/integrations/remove.ts +++ b/src/commands/borealis-pg/integrations/remove.ts @@ -1,6 +1,6 @@ import color from '@heroku-cli/color' import {Command, flags} from '@heroku-cli/command' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' import {HTTP, HTTPError} from 'http-call' import {applyActionSpinner} from '../../../async-actions' import {getBorealisPgApiUrl, getBorealisPgAuthHeader} from '../../../borealis-api' @@ -43,11 +43,11 @@ export default class RemoveDataIntegrationCommand extends Command { } async run() { - const {flags} = this.parse(RemoveDataIntegrationCommand) + const {flags} = await this.parse(RemoveDataIntegrationCommand) const integrationName = flags[dataIntegrationOptionName] const confirmation = flags.confirm ? flags.confirm : - (await cli.prompt('Enter the name of the data integration to confirm its removal')) + (await CliUx.ux.prompt('Enter the name of the data integration to confirm its removal')) if (confirmation.trim() !== integrationName) { this.error( diff --git a/src/commands/borealis-pg/psql.test.ts b/src/commands/borealis-pg/psql.test.ts index ba39190..90374c8 100644 --- a/src/commands/borealis-pg/psql.test.ts +++ b/src/commands/borealis-pg/psql.test.ts @@ -398,7 +398,7 @@ describe('interactive psql command', () => { test.stdout() .stderr() .command(['borealis-pg:psql', '--app', fakeHerokuAppName, '--port', 'port-must-be-an-integer']) - .catch('Value "port-must-be-an-integer" is not a valid integer') + .catch(/.*Expected an integer but received: port-must-be-an-integer.*/) .it('rejects a custom port that is not an integer', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -406,8 +406,8 @@ describe('interactive psql command', () => { test.stdout() .stderr() - .command(['borealis-pg:psql', '-a', fakeHerokuAppName, '-p', '-1']) - .catch('Value -1 is outside the range of valid port numbers') + .command(['borealis-pg:psql', '-a', fakeHerokuAppName, '-p', '0']) + .catch(/.*Expected an integer greater than or equal to 1 but received: 0.*/) .it('rejects a custom port that is less than 1', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -416,7 +416,7 @@ describe('interactive psql command', () => { test.stdout() .stderr() .command(['borealis-pg:psql', '-a', fakeHerokuAppName, '-p', '65536']) - .catch('Value 65536 is outside the range of valid port numbers') + .catch(/.*Expected an integer less than or equal to 65535 but received: 65536.*/) .it('rejects a custom port that is greater than 65535', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() diff --git a/src/commands/borealis-pg/psql.ts b/src/commands/borealis-pg/psql.ts index 66afc58..f42a65f 100644 --- a/src/commands/borealis-pg/psql.ts +++ b/src/commands/borealis-pg/psql.ts @@ -70,7 +70,7 @@ pgAdmin).` } async run() { - const {flags} = this.parse(PsqlCommand) + const {flags} = await this.parse(PsqlCommand) const customBinaryPath = flags[binaryPathOptionName] if (customBinaryPath && !fs.existsSync(customBinaryPath)) { diff --git a/src/commands/borealis-pg/run.test.ts b/src/commands/borealis-pg/run.test.ts index f0690c3..25089bd 100644 --- a/src/commands/borealis-pg/run.test.ts +++ b/src/commands/borealis-pg/run.test.ts @@ -456,7 +456,7 @@ describe('noninteractive run command', () => { expect(ctx.stdout).to.contain( ' id value1 value2 \n' + ' ── ────── ────── \n' + - ' 21 test1 null \n' + + ' 21 test1 \n' + ' 33 test2 test3 \n') expect(ctx.stdout).to.contain('(2 rows)') @@ -641,7 +641,7 @@ describe('noninteractive run command', () => { ' ─── ──── \n' + ' 9 val1 \n' + ' 104 val2 \n' + - ' 23 null \n' + + ' 23 \n' + ' 1 one \n') expect(ctx.stdout).to.contain('(4 rows)') @@ -908,7 +908,7 @@ describe('noninteractive run command', () => { '--shell-cmd', fakeShellCommand, ]) - .catch('Value "port-must-be-an-integer" is not a valid integer') + .catch(/.*Expected an integer but received: port-must-be-an-integer.*/) .it('rejects a --port value that is not an integer', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -918,7 +918,7 @@ describe('noninteractive run command', () => { .stdout() .stderr() .command(['borealis-pg:run', '-a', fakeHerokuAppName, '-p', '-1', '-e', fakeShellCommand]) - .catch('Value -1 is outside the range of valid port numbers') + .catch(/.*Expected an integer greater than or equal to 1 but received: -1.*/) .it('rejects a --port value that is less than 1', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -928,7 +928,7 @@ describe('noninteractive run command', () => { .stdout() .stderr() .command(['borealis-pg:run', '-a', fakeHerokuAppName, '-p', '65536', '-e', fakeShellCommand]) - .catch('Value 65536 is outside the range of valid port numbers') + .catch(/.*Expected an integer less than or equal to 65535 but received: 65536.*/) .it('rejects a --port value that is greater than 65535', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -948,7 +948,7 @@ describe('noninteractive run command', () => { .stderr() .command( ['borealis-pg:run', '-a', fakeHerokuAppName, '-e', fakeShellCommand, '-d', fakeDbCommand]) - .catch('--shell-cmd= cannot also be provided when using --db-cmd=') + .catch(/.*--shell-cmd=my-cool-shell-command cannot also be provided when using --db-cmd.*/) .it('exits with an error if both a shell command and a database command are provided', ctx => { expect(ctx.stdout).to.equal('') }) @@ -964,7 +964,7 @@ describe('noninteractive run command', () => { '--format', 'yaml', ]) - .catch('--shell-cmd= cannot also be provided when using --format=') + .catch(/.*--shell-cmd=my-cool-shell-command cannot also be provided when using --format.*/) .it('exits with an error if the --format option is specified for a shell command', ctx => { expect(ctx.stdout).to.equal('') }) diff --git a/src/commands/borealis-pg/run.ts b/src/commands/borealis-pg/run.ts index 15d4200..0a4da72 100644 --- a/src/commands/borealis-pg/run.ts +++ b/src/commands/borealis-pg/run.ts @@ -1,7 +1,7 @@ import color from '@heroku-cli/color' import {Command, flags} from '@heroku-cli/command' import {ConfigVars} from '@heroku-cli/schema' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' import {readFileSync} from 'fs' import {HTTP, HTTPError} from 'http-call' import {QueryResult} from 'pg' @@ -121,7 +121,7 @@ like pgAdmin).` } async run() { - const {flags} = this.parse(RunCommand) + const {flags} = await this.parse(RunCommand) const shellCommand = flags[shellCommandOptionName] if ( @@ -305,7 +305,7 @@ like pgAdmin).` }, {}) - cli.table( + CliUx.ux.table( resultInstance.rows, columns, {'no-truncate': true, output: outputFormat}) diff --git a/src/commands/borealis-pg/tunnel.test.ts b/src/commands/borealis-pg/tunnel.test.ts index 0033357..e1a4679 100644 --- a/src/commands/borealis-pg/tunnel.test.ts +++ b/src/commands/borealis-pg/tunnel.test.ts @@ -228,7 +228,7 @@ describe('secure tunnel command', () => { }) defaultTestContext - .command(['borealis-pg:tunnel', '-a', fakeHerokuAppName, '--port', '15432']) + .command(['borealis-pg:tunnel', '-a', fakeHerokuAppName, '--port', '65535']) .it('outputs DB connection instructions for a custom DB port option', ctx => { verify(mockSshClientType.on(anyString(), anyFunction())).once() const [event, listener] = capture(mockSshClientType.on).last() @@ -240,10 +240,10 @@ describe('secure tunnel command', () => { expect(ctx.stdout).to.containIgnoreSpaces(`Username: ${fakePgReadonlyUsername}`) expect(ctx.stdout).to.containIgnoreSpaces(`Password: ${fakePgPassword}`) expect(ctx.stdout).to.containIgnoreSpaces(`Host: ${localPgHostname}`) - expect(ctx.stdout).to.containIgnoreSpaces('Port: 15432') + expect(ctx.stdout).to.containIgnoreSpaces('Port: 65535') expect(ctx.stdout).to.containIgnoreSpaces(`Database name: ${fakePgDbName}`) expect(ctx.stdout).to.containIgnoreSpaces( - `URL: postgres://${fakePgReadonlyUsername}:${fakePgPassword}@${localPgHostname}:15432/${fakePgDbName}`) + `URL: postgres://${fakePgReadonlyUsername}:${fakePgPassword}@${localPgHostname}:65535/${fakePgDbName}`) expect(ctx.stdout).to.containIgnoreCase('Ctrl+C') }) @@ -307,7 +307,7 @@ describe('secure tunnel command', () => { .stdout() .stderr() .command(['borealis-pg:tunnel', '-a', fakeHerokuAppName, '--port', 'not-an-integer']) - .catch('Value "not-an-integer" is not a valid integer') + .catch(/.*Expected an integer but received: not-an-integer.*/) .it('rejects a --port value that is not an integer', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -317,7 +317,7 @@ describe('secure tunnel command', () => { .stdout() .stderr() .command(['borealis-pg:tunnel', '-a', fakeHerokuAppName, '-p', '0']) - .catch('Value 0 is outside the range of valid port numbers') + .catch(/.*Expected an integer greater than or equal to 1 but received: 0.*/) .it('rejects a --port value that is less than 1', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() @@ -327,7 +327,7 @@ describe('secure tunnel command', () => { .stdout() .stderr() .command(['borealis-pg:tunnel', '-a', fakeHerokuAppName, '--port', '65536']) - .catch('Value 65536 is outside the range of valid port numbers') + .catch(/.*Expected an integer less than or equal to 65535 but received: 65536.*/) .it('rejects a --port value that is greater than 65535', () => { verify(mockTcpServerFactoryType.create(anyFunction())).never() verify(mockSshClientFactoryType.create()).never() diff --git a/src/commands/borealis-pg/tunnel.ts b/src/commands/borealis-pg/tunnel.ts index 92f14c5..c591d3f 100644 --- a/src/commands/borealis-pg/tunnel.ts +++ b/src/commands/borealis-pg/tunnel.ts @@ -64,7 +64,7 @@ ${consoleColours.cliCmdName('borealis-pg:psql')} command to launch an interactiv } async run() { - const {flags} = this.parse(TunnelCommand) + const {flags} = await this.parse(TunnelCommand) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) const {addonName} = processAddonAttachmentInfo(attachmentInfo, this.error) diff --git a/src/commands/borealis-pg/users/index.ts b/src/commands/borealis-pg/users/index.ts index 11624c1..8e0dc26 100644 --- a/src/commands/borealis-pg/users/index.ts +++ b/src/commands/borealis-pg/users/index.ts @@ -1,6 +1,6 @@ import color from '@heroku-cli/color' import {Command} from '@heroku-cli/command' -import cli from 'cli-ux' +import {CliUx} from '@oclif/core' import {HTTP, HTTPError} from 'http-call' import {applyActionSpinner} from '../../../async-actions' import {getBorealisPgApiUrl, getBorealisPgAuthHeader} from '../../../borealis-api' @@ -35,7 +35,7 @@ ${cliCmdColour('borealis-pg:users:reset')} command).` } async run() { - const {flags} = this.parse(ListUsersCommand) + const {flags} = await this.parse(ListUsersCommand) const authorization = await createHerokuAuth(this.heroku) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) @@ -64,7 +64,7 @@ ${cliCmdColour('borealis-pg:users:reset')} command).` }) this.log() - cli.table(normalizedUsers, columns, {'no-truncate': true}) + CliUx.ux.table(normalizedUsers, columns, {'no-truncate': true}) } else { this.warn('No users found') } diff --git a/src/commands/borealis-pg/users/reset.ts b/src/commands/borealis-pg/users/reset.ts index 33380ab..3f096ea 100644 --- a/src/commands/borealis-pg/users/reset.ts +++ b/src/commands/borealis-pg/users/reset.ts @@ -42,7 +42,7 @@ ${formatCliOptionName('personal-user')} option).` } async run() { - const {flags} = this.parse(ResetUsersCommand) + const {flags} = await this.parse(ResetUsersCommand) const authorization = await createHerokuAuth(this.heroku) const attachmentInfo = await fetchAddonAttachmentInfo(this.heroku, flags.addon, flags.app, this.error) diff --git a/yarn.lock b/yarn.lock index e49679a..abe5681 100644 --- a/yarn.lock +++ b/yarn.lock @@ -228,13 +228,14 @@ supports-color "^5.5.0" tslib "^1.9.3" -"@heroku-cli/command@^8.5.0": - version "8.5.0" - resolved "https://registry.npmjs.org/@heroku-cli/command/-/command-8.5.0.tgz" +"@heroku-cli/command@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@heroku-cli/command/-/command-9.0.1.tgz#b7717b5770966d7db59be67d0d624885e1985347" + integrity sha512-RyVK88qFcsUSuZob2nE1foVGk0pyyTFzkMq8iBTuRPLfmyx/SpFaVX0jpkAnUbxMa6XAC1JwDHBkXMdM3yL/UQ== dependencies: "@heroku-cli/color" "^1.1.14" - "@oclif/errors" "^1.2.2" - cli-ux "^4.9.3" + "@oclif/core" "^1.20.4" + cli-ux "^6.0.9" debug "^4.1.1" fs-extra "^7.0.1" heroku-client "^3.1.0" @@ -306,7 +307,7 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@oclif/command@^1.8.14", "@oclif/command@^1.8.15", "@oclif/command@^1.8.21": +"@oclif/command@^1.8.14", "@oclif/command@^1.8.15": version "1.8.21" resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.21.tgz#32f876f8c02d61094b9693e34167e08fe67b6411" integrity sha512-kIDrRIbAcicVl+CWMzXeZkg5dRNuF1VI7koyFTAQMNYwRNZpeya5x7XDPr+fh7rDiBL7psnxc3B1+zoOWj96lQ== @@ -329,7 +330,7 @@ is-wsl "^2.1.1" tslib "^2.0.0" -"@oclif/config@^1.18.2", "@oclif/config@^1.18.6": +"@oclif/config@^1.18.2": version "1.18.6" resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.6.tgz#37367026b3110a2f04875509b1920a8ee4489f21" integrity sha512-OWhCpdu4QqggOPX1YPZ4XVmLLRX+lhGjXV6RNA7sogOwLqlEmSslnN/lhR5dkhcWZbKWBQH29YCrB3LDPRu/IA== @@ -341,6 +342,40 @@ is-wsl "^2.1.1" tslib "^2.3.1" +"@oclif/core@^1.1.1", "@oclif/core@^1.20.4", "@oclif/core@^1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-1.26.1.tgz#26e46c96143d3e2b1dd9bd558ae1653fe9a4f3fa" + integrity sha512-g+OWJcM7JOVI53caTEtq0BB1nPotWctRLUyFODPgvDqXhVR7QED+Qz3LwFAMD8dt7/Ar2ZNq15U3bnpnOv453A== + dependencies: + "@oclif/linewrap" "^1.0.0" + "@oclif/screen" "^3.0.4" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.10.0" + debug "^4.3.4" + ejs "^3.1.6" + fs-extra "^9.1.0" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + semver "^7.3.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + tslib "^2.4.1" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + "@oclif/core@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.0.3.tgz#ce71efbfc6e4c2655579ce81adce6471be2bc799" @@ -403,7 +438,7 @@ strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -"@oclif/errors@^1.2.2", "@oclif/errors@^1.3.3", "@oclif/errors@^1.3.5", "@oclif/errors@^1.3.6": +"@oclif/errors@^1.3.3", "@oclif/errors@^1.3.5", "@oclif/errors@^1.3.6": version "1.3.6" resolved "https://registry.yarnpkg.com/@oclif/errors/-/errors-1.3.6.tgz#e8fe1fc12346cb77c4f274e26891964f5175f75d" integrity sha512-fYaU4aDceETd89KXP+3cLyg9EHZsLD3RxF2IU9yxahhBpspWjkWi3Dy3bTgcwZ3V47BgxQaGapzJWDM33XIVDQ== @@ -465,9 +500,15 @@ dependencies: "@oclif/core" "^2.0.3" -"@oclif/screen@^1.0.3", "@oclif/screen@^1.0.4": +"@oclif/screen@^1.0.4", "@oclif/screen@^1.0.4 ": version "1.0.4" - resolved "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-1.0.4.tgz#b740f68609dfae8aa71c3a6cab15d816407ba493" + integrity sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw== + +"@oclif/screen@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-3.0.4.tgz#663db0ecaf23f3184e7f01886ed578060e4a7f1c" + integrity sha512-IMsTN1dXEXaOSre27j/ywGbBjrzx0FNd1XmuhCWCB9NTPrhWI1Ifbz+YLSEcstfQfocYsrbrIessxXb2oon4lA== "@oclif/test@^1.2.9": version "1.2.9" @@ -996,7 +1037,7 @@ cli-progress@^3.4.0: colors "^1.1.2" string-width "^4.2.0" -cli-ux@5.6.7, cli-ux@^5.6.7: +cli-ux@5.6.7: version "5.6.7" resolved "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz" dependencies: @@ -1027,31 +1068,36 @@ cli-ux@5.6.7, cli-ux@^5.6.7: supports-hyperlinks "^2.1.0" tslib "^2.0.0" -cli-ux@^4.9.3: - version "4.9.3" - resolved "https://registry.npmjs.org/cli-ux/-/cli-ux-4.9.3.tgz" +cli-ux@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-6.0.9.tgz#b5ab690314348b45b2c7458dad7621ae1be7c61d" + integrity sha512-0Ku29QLf+P6SeBNWM7zyoJ49eKKOjxZBZ4OH2aFeRtC0sNXU3ftdJxQPKJ1SJ+axX34I1NsfTFahpXdnxklZgA== dependencies: - "@oclif/errors" "^1.2.2" + "@oclif/core" "^1.1.1" "@oclif/linewrap" "^1.0.0" - "@oclif/screen" "^1.0.3" - ansi-escapes "^3.1.0" - ansi-styles "^3.2.1" + "@oclif/screen" "^1.0.4 " + ansi-escapes "^4.3.0" + ansi-styles "^4.2.0" cardinal "^2.1.1" - chalk "^2.4.1" - clean-stack "^2.0.0" - extract-stack "^1.0.0" - fs-extra "^7.0.0" + chalk "^4.1.0" + clean-stack "^3.0.0" + cli-progress "^3.10.0" + extract-stack "^2.0.0" + fs-extra "^8.1" hyperlinker "^1.0.0" - indent-string "^3.2.0" - is-wsl "^1.1.0" - lodash "^4.17.11" - password-prompt "^1.0.7" - semver "^5.6.0" - strip-ansi "^5.0.0" - supports-color "^5.5.0" - supports-hyperlinks "^1.0.1" - treeify "^1.1.0" - tslib "^1.9.3" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.13.1" + lodash "^4.17.21" + natural-orderby "^2.0.1" + object-treeify "^1.1.4" + password-prompt "^1.1.2" + semver "^7.3.2" + string-width "^4.2.0" + strip-ansi "^6.0.0" + supports-color "^8.1.0" + supports-hyperlinks "^2.1.0" + tslib "^2.0.0" cliui@^6.0.0: version "6.0.0" @@ -1489,11 +1535,6 @@ execa@^0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -extract-stack@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/extract-stack/-/extract-stack-1.0.0.tgz" - integrity "sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo= sha512-M5Ge0JIrn12EtIVpje2G+hI5X78hmX4UDzynZ7Vnp1MiPSqleEonmgr2Rh59eygEEgq3YJ1GDP96rnM8tnVg/Q==" - extract-stack@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz" @@ -1624,7 +1665,7 @@ fs-extra@^6.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" dependencies: @@ -1756,11 +1797,6 @@ graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" - integrity "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" @@ -1851,11 +1887,6 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" -indent-string@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" - integrity "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==" - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" @@ -2463,7 +2494,7 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -password-prompt@^1.0.7, password-prompt@^1.1.2: +password-prompt@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz" dependencies: @@ -2761,7 +2792,7 @@ safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" @@ -2946,7 +2977,7 @@ supports-color@8.1.1, supports-color@^8.1.0, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" dependencies: @@ -2958,13 +2989,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz" - dependencies: - has-flag "^2.0.0" - supports-color "^5.0.0" - supports-hyperlinks@^2.1.0, supports-hyperlinks@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" @@ -3031,10 +3055,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -treeify@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" - ts-mockito@^2.6.1: version "2.6.1" resolved "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.6.1.tgz" From 14bdb8b8af6a1d441802ad98b85ce4fe1a99130b Mon Sep 17 00:00:00 2001 From: Joel Andrews Date: Wed, 25 Jan 2023 19:08:20 -0800 Subject: [PATCH 2/2] Upgrade miscellaneous dependencies Use newer packages where available. --- package.json | 6 +-- yarn.lock | 113 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 75 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index d42f943..42aeb50 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "chalk": "^2.4.2", "dotenv": "^16.0.3", "http-call": "^5.3.0", - "pg": "^8.7.3", + "pg": "^8.8.0", "ssh2": "^1.11.0", "tslib": "^2.4.1" }, @@ -18,7 +18,7 @@ "@heroku-cli/schema": "^1.0.25", "@oclif/dev-cli": "^1.26.10", "@oclif/plugin-help": "^5.2.1", - "@oclif/test": "^1.2.9", + "@oclif/test": "~2.2.21", "@types/chai": "^4.3.4", "@types/chai-as-promised": "^7.1.5", "@types/chai-string": "^1.4.2", @@ -32,7 +32,7 @@ "chai-string": "^1.5.0", "eslint": "^7.32.0", "eslint-config-oclif": "^4.0.0", - "eslint-config-oclif-typescript": "^1.0.2", + "eslint-config-oclif-typescript": "^1.0.3", "globby": "^11.1.0", "mocha": "^10.2.0", "nock": "^13.3.0", diff --git a/yarn.lock b/yarn.lock index abe5681..01b8cb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -206,7 +206,8 @@ "@eslint/eslintrc@^0.4.3": version "0.4.3" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -250,7 +251,8 @@ "@humanwhocodes/config-array@^0.5.0": version "0.5.0" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: "@humanwhocodes/object-schema" "^1.2.0" debug "^4.1.1" @@ -258,7 +260,8 @@ "@humanwhocodes/object-schema@^1.2.0": version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -342,7 +345,7 @@ is-wsl "^2.1.1" tslib "^2.3.1" -"@oclif/core@^1.1.1", "@oclif/core@^1.20.4", "@oclif/core@^1.26.1": +"@oclif/core@^1.1.1", "@oclif/core@^1.20.4", "@oclif/core@^1.24.0", "@oclif/core@^1.26.1": version "1.26.1" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-1.26.1.tgz#26e46c96143d3e2b1dd9bd558ae1653fe9a4f3fa" integrity sha512-g+OWJcM7JOVI53caTEtq0BB1nPotWctRLUyFODPgvDqXhVR7QED+Qz3LwFAMD8dt7/Ar2ZNq15U3bnpnOv453A== @@ -510,11 +513,13 @@ resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-3.0.4.tgz#663db0ecaf23f3184e7f01886ed578060e4a7f1c" integrity sha512-IMsTN1dXEXaOSre27j/ywGbBjrzx0FNd1XmuhCWCB9NTPrhWI1Ifbz+YLSEcstfQfocYsrbrIessxXb2oon4lA== -"@oclif/test@^1.2.9": - version "1.2.9" - resolved "https://registry.npmjs.org/@oclif/test/-/test-1.2.9.tgz" +"@oclif/test@~2.2.21": + version "2.2.21" + resolved "https://registry.yarnpkg.com/@oclif/test/-/test-2.2.21.tgz#f0a64773100b12191b9f9ea5efb9a632ec2c922a" + integrity sha512-uIjn0PM6R9qlpYzoB9eYBwh3uMd5EdTux2dhBnYMA3DWcLOV4/+2TxKeVurfHFHfQfRp7imYSab7vEwTfiSo7g== dependencies: - fancy-test "^1.4.10" + "@oclif/core" "^1.24.0" + fancy-test "^2.0.11" "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -696,7 +701,8 @@ acorn-jsx@^5.3.1: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.2.0" @@ -704,7 +710,8 @@ acorn-walk@^8.1.1: acorn@^7.4.0: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.4.1: version "8.5.0" @@ -727,18 +734,24 @@ ajv@^6.10.0, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.10.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@4.1.1, ansi-colors@^4.1.1: +ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^3.1.0: version "3.2.0" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" @@ -818,7 +831,8 @@ assertion-error@^1.1.0: astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.3: version "3.2.4" @@ -1292,7 +1306,8 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: enquirer@^2.3.5: version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" @@ -1319,7 +1334,7 @@ escape-string-regexp@^1.0.5: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" -eslint-config-oclif-typescript@^1.0.2: +eslint-config-oclif-typescript@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-1.0.3.tgz#0061a810bf8f69571ad3c70368badcc018c3358e" integrity sha512-TeJKXWBQ3uKMtzgz++UFNWpe1WCx8mfqRuzZy1LirREgRlVv656SkVG4gNZat5rRNIQgfDmTS+YebxK02kfylA== @@ -1424,7 +1439,8 @@ eslint-template-visitor@^2.3.2: eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" @@ -1444,7 +1460,8 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: eslint@^7.32.0: version "7.32.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.3" @@ -1489,7 +1506,8 @@ eslint@^7.32.0: espree@^7.3.0, espree@^7.3.1: version "7.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: acorn "^7.4.0" acorn-jsx "^5.3.1" @@ -1539,9 +1557,10 @@ extract-stack@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz" -fancy-test@^1.4.10: - version "1.4.10" - resolved "https://registry.npmjs.org/fancy-test/-/fancy-test-1.4.10.tgz" +fancy-test@^2.0.11: + version "2.0.12" + resolved "https://registry.yarnpkg.com/fancy-test/-/fancy-test-2.0.12.tgz#a93cd92ffc23f70b069c39f19940d34f64c6ca67" + integrity sha512-S7qVQNaViLTMzn71huZvrUCV59ldq+enQ1EQOkdNbl4q4Om97gwqbYKvZoglsnzCWRRFaFP+qHynpdqaLdiZqg== dependencies: "@types/chai" "*" "@types/lodash" "*" @@ -1549,7 +1568,7 @@ fancy-test@^1.4.10: "@types/sinon" "*" lodash "^4.17.13" mock-stdin "^1.0.0" - nock "^13.0.0" + nock "^13.3.0" stdout-stderr "^0.1.9" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: @@ -1609,7 +1628,8 @@ find-cache-dir@^3.2.0: find-up@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" @@ -1764,8 +1784,9 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" globals@^13.6.0, globals@^13.9.0: - version "13.10.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz" + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -1865,7 +1886,8 @@ ieee754@^1.1.13: ignore@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.1.1, ignore@^5.1.8: version "5.1.8" @@ -2064,7 +2086,8 @@ js-tokens@^4.0.0: js-yaml@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -2093,7 +2116,8 @@ json-schema-traverse@^0.4.1: json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" @@ -2169,8 +2193,8 @@ lodash.merge@^4.6.2: lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - integrity "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.21, lodash@^4.17.5: version "4.17.21" @@ -2310,7 +2334,7 @@ nice-try@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" -nock@^13.0.0, nock@^13.3.0: +nock@^13.3.0: version "13.3.0" resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.0.tgz#b13069c1a03f1ad63120f994b04bfd2556925768" integrity sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg== @@ -2558,7 +2582,7 @@ pg-types@^2.1.0, pg-types@^2.2.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@^8.7.3: +pg@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/pg/-/pg-8.8.0.tgz#a77f41f9d9ede7009abfca54667c775a240da686" integrity sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw== @@ -2622,7 +2646,8 @@ process-on-spawn@^1.0.0: progress@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== propagate@^2.0.0: version "2.0.1" @@ -2715,7 +2740,8 @@ regexp-tree@^0.1.23, regexp-tree@~0.1.1: regexpp@^3.0.0, regexpp@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== release-zalgo@^1.0.0: version "1.0.0" @@ -2731,7 +2757,8 @@ require-directory@^2.1.1: require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^2.0.0: version "2.0.0" @@ -2850,7 +2877,8 @@ slash@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" astral-regex "^2.0.0" @@ -2997,8 +3025,9 @@ supports-hyperlinks@^2.1.0, supports-hyperlinks@^2.2.0: supports-color "^7.0.0" table@^6.0.9: - version "6.8.0" - resolved "https://registry.npmjs.org/table/-/table-6.8.0.tgz" + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -3141,7 +3170,8 @@ typedarray-to-buffer@^3.1.5: typescript@~4.4.4: version "4.4.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== universalify@^0.1.0: version "0.1.2" @@ -3176,7 +3206,8 @@ v8-compile-cache-lib@^3.0.1: v8-compile-cache@^2.0.3: version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== validate-npm-package-license@^3.0.1: version "3.0.4"