From 14ecfcef6c5f155c305fe9c2bf701b28cd4b7cd3 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 6 Nov 2023 12:45:51 -0700 Subject: [PATCH] feat!: migrate to ESM BREAKING CHANGES: ESM and node 18 minimum --- .eslintignore | 1 + .gitignore | 2 + .lintstagedrc.js => .lintstagedrc.cjs | 0 .mocharc.json | 5 +- bin/dev | 21 - bin/dev.cmd | 2 +- bin/dev.js | 8 + bin/run | 3 - bin/run.js | 9 + commitlint.config.js => commitlint.config.cjs | 0 package.json | 50 +- src/authBaseCommand.ts | 6 +- src/commands/org/list/auth.ts | 4 +- src/commands/org/login/access-token.ts | 6 +- src/commands/org/login/device.ts | 10 +- src/commands/org/login/jwt.ts | 8 +- src/commands/org/login/sfdx-url.ts | 14 +- src/commands/org/login/web.ts | 11 +- src/commands/org/logout.ts | 16 +- src/common.ts | 4 +- src/index.ts | 2 +- test/commands/0-scratch-identify.nut.ts | 2 +- test/commands/org/list/auth.nut.ts | 4 +- test/commands/org/list/auth.test.ts | 4 +- test/commands/org/login/access-token.nut.ts | 2 +- test/commands/org/login/access-token.test.ts | 9 +- test/commands/org/login/login.device.test.ts | 6 +- test/commands/org/login/login.jwt.nut.ts | 2 +- test/commands/org/login/login.jwt.test.ts | 4 +- test/commands/org/login/login.sfdx-url.nut.ts | 2 +- .../commands/org/login/login.sfdx-url.test.ts | 6 +- test/commands/org/login/login.web.test.ts | 4 +- test/commands/org/logout.nut.ts | 2 +- test/commands/org/logout.test.ts | 4 +- test/common.test.ts | 4 +- test/tsconfig.json | 2 +- tsconfig.json | 2 +- yarn.lock | 457 +++++++++++------- 38 files changed, 417 insertions(+), 281 deletions(-) create mode 100644 .eslintignore rename .lintstagedrc.js => .lintstagedrc.cjs (100%) delete mode 100755 bin/dev mode change 100644 => 100755 bin/dev.cmd create mode 100755 bin/dev.js delete mode 100755 bin/run create mode 100755 bin/run.js rename commitlint.config.js => commitlint.config.cjs (100%) diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..ee638464 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +*.cjs/ diff --git a/.gitignore b/.gitignore index 928257fe..4843d1fa 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,5 @@ node_modules .idea oclif.manifest.json + +oclif.lock diff --git a/.lintstagedrc.js b/.lintstagedrc.cjs similarity index 100% rename from .lintstagedrc.js rename to .lintstagedrc.cjs diff --git a/.mocharc.json b/.mocharc.json index e59ba8bf..a8398045 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -1,8 +1,9 @@ { - "require": "ts-node/register,source-map-support/register", + "require": ["ts-node/register"], "watch-extensions": "ts", "watch-files": ["src", "test"], "recursive": true, "reporter": "spec", - "timeout": 10000 + "timeout": 10000, + "node-option": ["loader=ts-node/esm"] } diff --git a/bin/dev b/bin/dev deleted file mode 100755 index d88b6a38..00000000 --- a/bin/dev +++ /dev/null @@ -1,21 +0,0 @@ -#!/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'; - -// Enable SWC for faster typescript compiling -require('ts-node').register({ project, swc: true }); - -// In dev mode, always show stack traces -const g = (global.oclif = global.oclif || {}); - -// In dev mode, always show stack traces -global.oclif.debug = true; - -// Start the CLI -oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')); diff --git a/bin/dev.cmd b/bin/dev.cmd old mode 100644 new mode 100755 index 8ae2b12c..cec553be --- a/bin/dev.cmd +++ b/bin/dev.cmd @@ -1,3 +1,3 @@ @echo off -node "%~dp0\dev" %* +node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %* diff --git a/bin/dev.js b/bin/dev.js new file mode 100755 index 00000000..6c607734 --- /dev/null +++ b/bin/dev.js @@ -0,0 +1,8 @@ +#!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning +// eslint-disable-next-line node/shebang +async function main() { + const {execute} = await import('@oclif/core') + await execute({development: true, dir: import.meta.url}) +} + +await main() diff --git a/bin/run b/bin/run deleted file mode 100755 index 9ee5dd54..00000000 --- a/bin/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('@oclif/core').run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')); diff --git a/bin/run.js b/bin/run.js new file mode 100755 index 00000000..39d13f51 --- /dev/null +++ b/bin/run.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node + +// eslint-disable-next-line node/shebang +async function main() { + const {execute} = await import('@oclif/core') + await execute({dir: import.meta.url}) +} + +await main() diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 100% rename from commitlint.config.js rename to commitlint.config.cjs diff --git a/package.json b/package.json index 2c6c03e0..628862c0 100644 --- a/package.json +++ b/package.json @@ -1,49 +1,49 @@ { "name": "@salesforce/plugin-auth", "description": "plugin for sfdx auth commands", - "version": "2.8.26", + "version": "3.0.0", "author": "Salesforce", "bugs": "https://github.com/forcedotcom/cli/issues", - "main": "lib/index.js", "dependencies": { - "@oclif/core": "^2.15.0", + "@oclif/core": "^3.10.2", "@salesforce/core": "^5.3.17", "@salesforce/kit": "^3.0.15", - "@salesforce/sf-plugins-core": "^3.1.28", + "@salesforce/sf-plugins-core": "^4.0.0", "@salesforce/ts-types": "^2.0.9", - "chalk": "^4.1.2", - "inquirer": "^8.2.6", - "open": "^8.2.1", - "tslib": "^2" + "chalk": "^5.3.0", + "inquirer": "^9.2.11", + "open": "^8.2.1" }, "devDependencies": { - "@oclif/plugin-command-snapshot": "^4.0.14", - "@salesforce/cli-plugins-testkit": "^4.4.12", + "@oclif/plugin-command-snapshot": "^5.0.1", + "@salesforce/cli-plugins-testkit": "^5.0.2", "@salesforce/dev-scripts": "^6.0.3", "@salesforce/plugin-command-reference": "^3.0.42", "@salesforce/ts-sinon": "^1.4.19", - "@swc/core": "1.3.39", "@types/inquirer": "^8.2.0", "eslint-plugin-sf-plugin": "^1.16.11", - "oclif": "^3.17.2", + "oclif": "^4.0.3", "shx": "0.3.4", "ts-node": "^10.9.1", "typescript": "^5.2.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "files": [ "/lib", "/messages", - "/oclif.manifest.json" + "/oclif.manifest.json", + "/oclif.lock" ], "homepage": "https://github.com/salesforcecli/plugin-auth", "keywords": [ "force", "salesforce", - "sfdx", "salesforcedx", + "sf", + "sf-plugin", + "sfdx", "sfdx-plugin" ], "license": "BSD-3-Clause", @@ -52,7 +52,7 @@ "additionalHelpFlags": [ "-h" ], - "bin": "sfdx", + "bin": "sf", "devPlugins": [ "@oclif/plugin-help", "@oclif/plugin-command-snapshot", @@ -88,19 +88,21 @@ } } } - } + }, + "flexibleTaxonomy": true, + "topicSeparator": " " }, "repository": "salesforcecli/plugin-auth", "scripts": { "build": "wireit", "clean": "sf-clean", "clean-all": "sf-clean all", - "clean:lib": "shx rm -rf lib && shx rm -rf coverage && shx rm -rf .nyc_output && shx rm -f oclif.manifest.json", + "clean:lib": "shx rm -rf lib && shx rm -rf coverage && shx rm -rf .nyc_output && shx rm -f oclif.manifest.json oclif.lock", "compile": "wireit", "docs": "sf-docs", "format": "wireit", "lint": "wireit", - "postpack": "shx rm -f oclif.manifest.json", + "postpack": "shx rm -f oclif.manifest.json oclif.lock", "prepack": "sf-prepack", "prepare": "sf-install", "reformat": "prettier --config .prettierrc --write './*.{js,json,md}' './**/*.{ts,json,md}'", @@ -188,7 +190,7 @@ "output": [] }, "test:command-reference": { - "command": "\"./bin/dev\" commandreference:generate --erroronwarnings", + "command": "ts-node \"./bin/dev.js\" commandreference:generate --erroronwarnings", "files": [ "src/**/*.ts", "messages/**", @@ -199,7 +201,7 @@ ] }, "test:deprecation-policy": { - "command": "\"./bin/dev\" snapshot:compare", + "command": "ts-node \"./bin/dev.js\" snapshot:compare", "files": [ "src/**/*.ts" ], @@ -209,12 +211,14 @@ ] }, "test:json-schema": { - "command": "\"./bin/dev\" schema:compare", + "command": "ts-node \"./bin/dev.js\" schema:compare", "files": [ "src/**/*.ts", "schemas" ], "output": [] } - } + }, + "exports": "./lib/index.js", + "type": "module" } diff --git a/src/authBaseCommand.ts b/src/authBaseCommand.ts index 8ea18bbf..309b4427 100644 --- a/src/authBaseCommand.ts +++ b/src/authBaseCommand.ts @@ -4,12 +4,14 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Messages, Global, Mode } from '@salesforce/core'; -import * as chalk from 'chalk'; +import chalk from 'chalk'; import { SfCommand } from '@salesforce/sf-plugins-core'; import { Config } from '@oclif/core'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); function dimMessage(message: string): string { diff --git a/src/commands/org/list/auth.ts b/src/commands/org/list/auth.ts index 77d9019d..ea475d38 100644 --- a/src/commands/org/list/auth.ts +++ b/src/commands/org/list/auth.ts @@ -5,11 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { loglevel, SfCommand } from '@salesforce/sf-plugins-core'; import { AuthInfo, Messages, OrgAuthorization } from '@salesforce/core'; type AuthListResult = Omit & { alias: string }; export type AuthListResults = AuthListResult[]; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'list'); export default class ListAuth extends SfCommand { diff --git a/src/commands/org/login/access-token.ts b/src/commands/org/login/access-token.ts index 446fc657..466572ed 100644 --- a/src/commands/org/login/access-token.ts +++ b/src/commands/org/login/access-token.ts @@ -5,13 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; import { AuthFields, AuthInfo, Messages, matchesAccessToken, SfError, StateAggregator } from '@salesforce/core'; import { env } from '@salesforce/kit'; import { Interfaces } from '@oclif/core'; -import { AuthBaseCommand } from '../../../authBaseCommand'; +import { AuthBaseCommand } from '../../../authBaseCommand.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'accesstoken.store'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); diff --git a/src/commands/org/login/device.ts b/src/commands/org/login/device.ts index aabe34dd..fbeecc09 100644 --- a/src/commands/org/login/device.ts +++ b/src/commands/org/login/device.ts @@ -5,14 +5,16 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { AuthFields, AuthInfo, DeviceOauthService, Messages, OAuth2Config } from '@salesforce/core'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; -import { DeviceCodeResponse } from '@salesforce/core/lib/deviceOauthService'; +import { DeviceCodeResponse } from '@salesforce/core/lib/deviceOauthService.js'; import { ux } from '@oclif/core'; -import { AuthBaseCommand } from '../../../authBaseCommand'; -import { Common } from '../../../common'; +import { AuthBaseCommand } from '../../../authBaseCommand.js'; +import { Common } from '../../../common.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'device.login'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); diff --git a/src/commands/org/login/jwt.ts b/src/commands/org/login/jwt.ts index c33e69e2..e95fadc3 100644 --- a/src/commands/org/login/jwt.ts +++ b/src/commands/org/login/jwt.ts @@ -5,13 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; import { AuthFields, AuthInfo, AuthRemover, Logger, Messages, SfError } from '@salesforce/core'; import { Interfaces } from '@oclif/core'; -import { AuthBaseCommand } from '../../../authBaseCommand'; -import { Common } from '../../../common'; +import { AuthBaseCommand } from '../../../authBaseCommand.js'; +import { Common } from '../../../common.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'jwt.grant'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); diff --git a/src/commands/org/login/sfdx-url.ts b/src/commands/org/login/sfdx-url.ts index 1b576983..dcb070d8 100644 --- a/src/commands/org/login/sfdx-url.ts +++ b/src/commands/org/login/sfdx-url.ts @@ -5,14 +5,16 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { readFile } from 'node:fs/promises'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import fs from 'node:fs/promises'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; import { AuthFields, AuthInfo, Messages } from '@salesforce/core'; import { AnyJson } from '@salesforce/ts-types'; import { parseJson } from '@salesforce/kit'; -import { AuthBaseCommand } from '../../../authBaseCommand'; +import { AuthBaseCommand } from '../../../authBaseCommand.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'sfdxurl.store'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); @@ -71,7 +73,9 @@ export default class LoginSfdxUrl extends AuthBaseCommand { const authFile = flags['sfdx-url-file']; - const sfdxAuthUrl = authFile.endsWith('.json') ? await getUrlFromJson(authFile) : await readFile(authFile, 'utf8'); + const sfdxAuthUrl = authFile.endsWith('.json') + ? await getUrlFromJson(authFile) + : await fs.readFile(authFile, 'utf8'); if (!sfdxAuthUrl) { throw new Error( @@ -101,7 +105,7 @@ export default class LoginSfdxUrl extends AuthBaseCommand { } const getUrlFromJson = async (authFile: string): Promise => { - const jsonContents = await readFile(authFile, 'utf8'); + const jsonContents = await fs.readFile(authFile, 'utf8'); const authFileJson = parseJson(jsonContents) as AuthJson; return authFileJson.result?.sfdxAuthUrl ?? authFileJson.sfdxAuthUrl; }; diff --git a/src/commands/org/login/web.ts b/src/commands/org/login/web.ts index feed9d11..7ff1d635 100644 --- a/src/commands/org/login/web.ts +++ b/src/commands/org/login/web.ts @@ -5,16 +5,17 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as open from 'open'; - +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import open from 'open'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; import { AuthFields, AuthInfo, Logger, Messages, OAuth2Config, SfError, WebOAuthServer } from '@salesforce/core'; import { Env } from '@salesforce/kit'; import { Interfaces } from '@oclif/core'; -import { AuthBaseCommand } from '../../../authBaseCommand'; -import { Common } from '../../../common'; +import { AuthBaseCommand } from '../../../authBaseCommand.js'; +import { Common } from '../../../common.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'web.login'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); diff --git a/src/commands/org/logout.ts b/src/commands/org/logout.ts index 9865f636..fc1fb11f 100644 --- a/src/commands/org/logout.ts +++ b/src/commands/org/logout.ts @@ -5,7 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as os from 'node:os'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import os from 'node:os'; import { AuthInfo, AuthRemover, @@ -18,11 +20,11 @@ import { } from '@salesforce/core'; import { Flags, loglevel } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { Separator } from 'inquirer'; -import * as chalk from 'chalk'; -import { AuthBaseCommand } from '../../authBaseCommand'; +import inquirer from 'inquirer'; +import chalk from 'chalk'; +import { AuthBaseCommand } from '../../authBaseCommand.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'logout'); const commonMessages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); type choice = { name: string; value: OrgAuthorization }; @@ -64,7 +66,7 @@ export default class Logout extends AuthBaseCommand { private flags!: Interfaces.InferredFlags; - private static buildChoices(orgAuths: OrgAuthorization[], all: boolean): Array { + private static buildChoices(orgAuths: OrgAuthorization[], all: boolean): Array { const maxUsernameLength = Math.max('Username'.length, ...orgAuths.map((orgAuth) => orgAuth.username.length)); const maxAliasLength = Math.max( 'Aliases'.length, @@ -110,7 +112,7 @@ export default class Logout extends AuthBaseCommand { const aliasHeader = `${'Aliases'.padEnd(maxAliasLength, ' ')}`; const configHeader = `${'Configs'.padEnd(maxConfigLength, ' ')}`; const typeHeader = `${'Type'.padEnd(maxTypeLength, ' ')}`; - return [new Separator(` ${userHeader} | ${typeHeader} | ${aliasHeader} | ${configHeader}`), ...choices]; + return [new inquirer.Separator(` ${userHeader} | ${typeHeader} | ${aliasHeader} | ${configHeader}`), ...choices]; } public async run(): Promise { diff --git a/src/common.ts b/src/common.ts index b7ceaa65..37687b88 100644 --- a/src/common.ts +++ b/src/common.ts @@ -4,10 +4,12 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Logger, SfdcUrl, SfProject, Messages, SfError } from '@salesforce/core'; import { getString, isObject } from '@salesforce/ts-types'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-auth', 'messages'); export class Common { diff --git a/src/index.ts b/src/index.ts index c5811107..af79a8cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,4 +5,4 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -export = {}; +export default {}; diff --git a/test/commands/0-scratch-identify.nut.ts b/test/commands/0-scratch-identify.nut.ts index 0e801bbd..fe5035f8 100644 --- a/test/commands/0-scratch-identify.nut.ts +++ b/test/commands/0-scratch-identify.nut.ts @@ -12,7 +12,7 @@ import { execCmd, TestSession, prepareForJwt } from '@salesforce/cli-plugins-tes import { Env } from '@salesforce/kit'; import { ensureString } from '@salesforce/ts-types'; import { AuthFields, AuthInfo } from '@salesforce/core'; -import { AuthListResults } from '../../src/commands/org/list/auth'; +import { AuthListResults } from '../../src/commands/org/list/auth.js'; describe('verify discovery/id of scratch org', () => { let testSession: TestSession; diff --git a/test/commands/org/list/auth.nut.ts b/test/commands/org/list/auth.nut.ts index 235b3615..dab67d69 100644 --- a/test/commands/org/list/auth.nut.ts +++ b/test/commands/org/list/auth.nut.ts @@ -8,8 +8,8 @@ import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; import { Env } from '@salesforce/kit'; import { ensureString, getString } from '@salesforce/ts-types'; -import { expectUrlToExist, expectOrgIdToExist, expectAccessTokenToExist } from '../../../testHelper'; -import { AuthListResults } from '../../../../src/commands/org/list/auth'; +import { expectUrlToExist, expectOrgIdToExist, expectAccessTokenToExist } from '../../../testHelper.js'; +import { AuthListResults } from '../../../../src/commands/org/list/auth.js'; describe('org:list:auth NUTs', () => { let testSession: TestSession; diff --git a/test/commands/org/list/auth.test.ts b/test/commands/org/list/auth.test.ts index 1d15b936..c286a145 100644 --- a/test/commands/org/list/auth.test.ts +++ b/test/commands/org/list/auth.test.ts @@ -5,11 +5,11 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { Config } from '@oclif/core'; import { expect } from 'chai'; import { AuthInfo } from '@salesforce/core'; -import ListAuth from '../../../../src/commands/org/list/auth'; +import ListAuth from '../../../../src/commands/org/list/auth.js'; describe('org:list:auth', () => { const $$ = new TestContext(); diff --git a/test/commands/org/login/access-token.nut.ts b/test/commands/org/login/access-token.nut.ts index 94021982..4c765b29 100644 --- a/test/commands/org/login/access-token.nut.ts +++ b/test/commands/org/login/access-token.nut.ts @@ -9,7 +9,7 @@ import { expect } from 'chai'; import { Env } from '@salesforce/kit'; import { ensureString, getString } from '@salesforce/ts-types'; import { AuthFields } from '@salesforce/core'; -import { expectAccessTokenToExist, expectOrgIdToExist, expectUrlToExist } from '../../../testHelper'; +import { expectAccessTokenToExist, expectOrgIdToExist, expectUrlToExist } from '../../../testHelper.js'; let testSession: TestSession; diff --git a/test/commands/org/login/access-token.test.ts b/test/commands/org/login/access-token.test.ts index d9a4ce54..3f3836f5 100644 --- a/test/commands/org/login/access-token.test.ts +++ b/test/commands/org/login/access-token.test.ts @@ -9,12 +9,11 @@ import { AuthFields, AuthInfo, SfError, StateAggregator } from '@salesforce/core'; import { stubMethod } from '@salesforce/ts-sinon'; -import { expect } from 'chai'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { assert } from 'chai'; +import { assert, expect } from 'chai'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; import { Env } from '@salesforce/kit'; import { Config } from '@oclif/core'; -import Store from '../../../../src/commands/org/login/access-token'; +import Store from '../../../../src/commands/org/login/access-token.js'; describe('org:login:access-token', () => { const $$ = new TestContext(); @@ -63,7 +62,7 @@ describe('org:login:access-token', () => { stubMethod($$.SANDBOX, Env.prototype, 'getString').callsFake(() => accessToken); } const store = new Store( - ['--instance-url', 'https://foo.bar.org.salesforce.com', '--no-prompt', ...flags], + [...new Set(['--instance-url', 'https://foo.bar.org.salesforce.com', '--no-prompt', ...flags])], {} as Config ); // @ts-ignore diff --git a/test/commands/org/login/login.device.test.ts b/test/commands/org/login/login.device.test.ts index c816dd39..562b959f 100644 --- a/test/commands/org/login/login.device.test.ts +++ b/test/commands/org/login/login.device.test.ts @@ -8,13 +8,13 @@ /* eslint-disable camelcase */ import { AuthFields, AuthInfo, DeviceOauthService, Global, Mode } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { StubbedType, stubInterface, stubMethod } from '@salesforce/ts-sinon'; -import { DeviceCodeResponse } from '@salesforce/core/lib/deviceOauthService'; +import { DeviceCodeResponse } from '@salesforce/core/lib/deviceOauthService.js'; import { expect } from 'chai'; import { Config } from '@oclif/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import Login from '../../../../src/commands/org/login/device'; +import Login from '../../../../src/commands/org/login/device.js'; interface Options { approvalTimesout?: boolean; diff --git a/test/commands/org/login/login.jwt.nut.ts b/test/commands/org/login/login.jwt.nut.ts index 76db465f..b1212946 100644 --- a/test/commands/org/login/login.jwt.nut.ts +++ b/test/commands/org/login/login.jwt.nut.ts @@ -10,7 +10,7 @@ import { expect } from 'chai'; import { Env } from '@salesforce/kit'; import { ensureString, getString } from '@salesforce/ts-types'; import { AuthFields } from '@salesforce/core'; -import { expectUrlToExist, expectOrgIdToExist, expectAccessTokenToExist } from '../../../testHelper'; +import { expectUrlToExist, expectOrgIdToExist, expectAccessTokenToExist } from '../../../testHelper.js'; let testSession: TestSession; diff --git a/test/commands/org/login/login.jwt.test.ts b/test/commands/org/login/login.jwt.test.ts index 2855d4dd..69e39e60 100644 --- a/test/commands/org/login/login.jwt.test.ts +++ b/test/commands/org/login/login.jwt.test.ts @@ -6,12 +6,12 @@ */ import { AuthFields, AuthInfo, Global, Mode, SfError } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { StubbedType, stubInterface } from '@salesforce/ts-sinon'; import { expect } from 'chai'; import { Config } from '@oclif/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import LoginJwt from '../../../../src/commands/org/login/jwt'; +import LoginJwt from '../../../../src/commands/org/login/jwt.js'; interface Options { authInfoCreateFails?: boolean; diff --git a/test/commands/org/login/login.sfdx-url.nut.ts b/test/commands/org/login/login.sfdx-url.nut.ts index 63d2f6bd..61808816 100644 --- a/test/commands/org/login/login.sfdx-url.nut.ts +++ b/test/commands/org/login/login.sfdx-url.nut.ts @@ -14,7 +14,7 @@ import { expectOrgIdToExist, expectPropsToExist, expectUrlToExist, -} from '../../../testHelper'; +} from '../../../testHelper.js'; let testSession: TestSession; diff --git a/test/commands/org/login/login.sfdx-url.test.ts b/test/commands/org/login/login.sfdx-url.test.ts index 784da9d2..bcb94b9a 100644 --- a/test/commands/org/login/login.sfdx-url.test.ts +++ b/test/commands/org/login/login.sfdx-url.test.ts @@ -5,14 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs/promises'; +import fs from 'node:fs/promises'; import { AuthFields, AuthInfo, Global, Mode } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { expect } from 'chai'; import { Config } from '@oclif/core'; import { StubbedType, stubInterface } from '@salesforce/ts-sinon'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import LoginSfdxUrl from '../../../../src/commands/org/login/sfdx-url'; +import LoginSfdxUrl from '../../../../src/commands/org/login/sfdx-url.js'; interface Options { authInfoCreateFails?: boolean; diff --git a/test/commands/org/login/login.web.test.ts b/test/commands/org/login/login.web.test.ts index 78426f32..c599eff7 100644 --- a/test/commands/org/login/login.web.test.ts +++ b/test/commands/org/login/login.web.test.ts @@ -9,12 +9,12 @@ import { Config } from '@oclif/core'; import { AuthFields, AuthInfo, Global, Mode, SfError } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { StubbedType, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { assert, expect } from 'chai'; import { Env } from '@salesforce/kit'; import { SfCommand, Ux } from '@salesforce/sf-plugins-core'; -import LoginWeb from '../../../../src/commands/org/login/web'; +import LoginWeb from '../../../../src/commands/org/login/web.js'; describe('org:login:web', () => { const $$ = new TestContext(); diff --git a/test/commands/org/logout.nut.ts b/test/commands/org/logout.nut.ts index 2bd95a59..31272d36 100644 --- a/test/commands/org/logout.nut.ts +++ b/test/commands/org/logout.nut.ts @@ -8,7 +8,7 @@ import { execCmd, TestSession, prepareForJwt } from '@salesforce/cli-plugins-tes import { expect } from 'chai'; import { Env } from '@salesforce/kit'; import { ensureString, getString } from '@salesforce/ts-types'; -import { AuthListResults } from '../../../src/commands/org/list/auth'; +import { AuthListResults } from '../../../src/commands/org/list/auth.js'; describe('org:logout NUTs', () => { const env = new Env(); diff --git a/test/commands/org/logout.test.ts b/test/commands/org/logout.test.ts index 58c83f36..55d1d6c5 100644 --- a/test/commands/org/logout.test.ts +++ b/test/commands/org/logout.test.ts @@ -6,11 +6,11 @@ */ import { AuthRemover, ConfigContents, Global, Mode } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { expect } from 'chai'; import { Config } from '@oclif/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import Logout from '../../../src/commands/org/logout'; +import Logout from '../../../src/commands/org/logout.js'; interface Options { authFiles?: string[]; diff --git a/test/common.test.ts b/test/common.test.ts index 18441641..386cf207 100644 --- a/test/common.test.ts +++ b/test/common.test.ts @@ -7,8 +7,8 @@ import { ConfigContents, SfdcUrl } from '@salesforce/core'; import { assert, expect } from 'chai'; -import { TestContext, uniqid } from '@salesforce/core/lib/testSetup'; -import { Common } from '../src/common'; +import { TestContext, uniqid } from '@salesforce/core/lib/testSetup.js'; +import { Common } from '../src/common.js'; const projectSetup = async ($$: TestContext, inProject = true, contents?: ConfigContents): Promise => { $$.inProject(inProject); diff --git a/test/tsconfig.json b/test/tsconfig.json index 3c1613ac..a12e09de 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@salesforce/dev-config/tsconfig-test-strict", + "extends": "@salesforce/dev-config/tsconfig-test-strict-esm", "include": ["./**/*.ts"], "compilerOptions": { "skipLibCheck": true, diff --git a/tsconfig.json b/tsconfig.json index 7b062a6c..d024f738 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@salesforce/dev-config/tsconfig-strict", + "extends": "@salesforce/dev-config/tsconfig-strict-esm", "compilerOptions": { "outDir": "lib", "rootDir": "src", diff --git a/yarn.lock b/yarn.lock index ae4066a1..edd6c75a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -514,6 +514,13 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@ljharb/through@^2.3.9": + version "2.3.11" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -692,7 +699,7 @@ supports-color "^8.1.1" tslib "^2" -"@oclif/core@^2.11.4", "@oclif/core@^2.11.8", "@oclif/core@^2.15.0", "@oclif/core@^2.9.3": +"@oclif/core@^2.15.0", "@oclif/core@^2.9.3": version "2.15.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.15.0.tgz#f27797b30a77d13279fba88c1698fc34a0bd0d2a" integrity sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA== @@ -726,18 +733,52 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-command-snapshot@^4.0.14": - version "4.0.14" - resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-4.0.14.tgz#7fe19c34871443dbfea1cb301b06ca20cc9a4d97" - integrity sha512-Gn7FvuYZl/avk1vRfSq4jT/1eQS7PARsQiB4gXokp1m0RDP0OHb5O6W1AwTTUcxqY+AcSEhl/lsSjjN2GdKgEg== +"@oclif/core@^3.0.0", "@oclif/core@^3.0.4", "@oclif/core@^3.10.2", "@oclif/core@^3.3.1", "@oclif/core@^3.5.0": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.10.2.tgz#bed039f3b39208c6d4042ddd3e02fb237d78bf6d" + integrity sha512-tpOhDXPKLMavFsjrWpF1sTdyvOgcSlWBP+puO60XYnDk4+c1ghK7Pr7AA83VIyyUqUSBaxKjUJcZJJHGYfXuIA== dependencies: - "@oclif/core" "^2.11.8" + 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.12.0" + debug "^4.3.4" + ejs "^3.1.9" + 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" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + tsconfck "^3.0.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/plugin-command-snapshot@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.0.1.tgz#6c21b2ef8007cda21f0caacd3462d5eedd622f32" + integrity sha512-pUwr5jJ1Jq2yojjRYmzjZouVw4UIfu8IZAXaaWXUl21dEg+8UY1gdIlnQgGdSJo9tkEVz3sUCo6uLVCK6tClAA== + dependencies: + "@oclif/core" "^3.5.0" + "@types/lodash.difference" "^4.5.8" + chalk "^5.3.0" just-diff "^5.2.0" - lodash "^4.17.21" + lodash.difference "^4.5.0" + lodash.get "^4.4.2" + lodash.sortby "^4.7.0" semver "^7.5.4" - ts-json-schema-generator "^1.3.0" - tslib "^2.6.2" + ts-json-schema-generator "^1.4.0" "@oclif/plugin-help@^5.2.14": version "5.2.14" @@ -755,18 +796,16 @@ "@oclif/core" "^2.9.3" fast-levenshtein "^3.0.0" -"@oclif/plugin-warn-if-update-available@^2.0.44": - version "2.0.44" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.44.tgz#1693e5be181fba5ef6cd68ba3653a4209283a011" - integrity sha512-52Ww0B4F1tMhwjw2fe73lhmfDI/F4ynf3ur7/xnpnVBEvj5JG4sqolbEJV/0lV85+4dJNsYJRxubbPYjxcbCcA== +"@oclif/plugin-warn-if-update-available@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.0.2.tgz#76d02069c0d5545b5000660460edb6085272cbcd" + integrity sha512-dUXfRNFtnezS4uqQ+Ap4qb6UP0DWExTvoqghNvvGTIN4PEgfYHogvBORn+rFnDXXE8kgZFuqP4ZQJRP9NyLhOA== dependencies: - "@oclif/core" "^2.9.3" - chalk "^4.1.0" + "@oclif/core" "^3.3.1" + chalk "^5.3.0" debug "^4.1.0" - fs-extra "^9.0.1" http-call "^5.2.2" - lodash "^4.17.21" - semver "^7.5.4" + lodash.template "^4.5.0" "@octokit/auth-token@^2.4.4": version "2.5.0" @@ -869,12 +908,12 @@ dependencies: "@octokit/openapi-types" "^12.11.0" -"@salesforce/cli-plugins-testkit@^4.4.12": - version "4.4.12" - resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-4.4.12.tgz#425132a4cd49b5aacb979df07af987b338ec00ae" - integrity sha512-k0jJYqB0PazmVyhNBau8FtJDa3+4EbhvD8F3u+yZ71jjPkp7YLKqtxfs1y7P3LCrmtel8JE3faHTfMaahdK96Q== +"@salesforce/cli-plugins-testkit@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-5.0.2.tgz#be35c0b449223ee50e395aba7e1b4ccb1a5e49d7" + integrity sha512-piHWPnbkwytudtc3VntfyECa3NzxngecM7/hka2rooLWs7NZCLcJoAEvYDWNRGgNa0Yw6gefBJVNivoVpfNSKQ== dependencies: - "@salesforce/core" "^5.3.10" + "@salesforce/core" "^5.3.17" "@salesforce/kit" "^3.0.15" "@salesforce/ts-types" "^2.0.6" "@types/shelljs" "^0.8.14" @@ -884,7 +923,7 @@ strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.17", "@salesforce/core@^5.3.9": +"@salesforce/core@^5.3.1", "@salesforce/core@^5.3.17", "@salesforce/core@^5.3.9": version "5.3.17" resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.17.tgz#fe7e5b89bdfffc9c1634e0371fab6115b23fe312" integrity sha512-3BYdpRwQrtaTNHINk+NSrXwlr0xZjKSkJWhMeryjGyTGf9YPRu1JNawl6PPbEpGCQp2y+NLUdp6vMy64jwIDBg== @@ -908,7 +947,7 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/dev-config@^4.0.1": +"@salesforce/dev-config@^4.0.1", "@salesforce/dev-config@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-4.1.0.tgz#e529576466d074e7a5f1441236510fef123da01e" integrity sha512-2iDDepiIwjXHS5IVY7pwv8jMo4xWosJ7p/UTj+lllpB/gnJiYLhjJPE4Z3FCGFKyvfg5jGaimCd8Ca6bLGsCQA== @@ -988,6 +1027,18 @@ chalk "^4" inquirer "^8.2.5" +"@salesforce/sf-plugins-core@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-4.0.0.tgz#587d8131531b7a53392d73bc4d6d0b0fd75b7e08" + integrity sha512-rg0HeqJ4GsyJjow+Rs7icicm7c3Tp43XmwfVUurN/8mKdtG8vR0d5DmZapKP7+r45Mqtlgpkzp2fSjr5fjadNg== + dependencies: + "@oclif/core" "^3.0.0" + "@salesforce/core" "^5.3.1" + "@salesforce/kit" "^3.0.13" + "@salesforce/ts-types" "^2.0.7" + chalk "^4" + inquirer "^8.2.5" + "@salesforce/ts-sinon@^1.4.19": version "1.4.19" resolved "https://registry.yarnpkg.com/@salesforce/ts-sinon/-/ts-sinon-1.4.19.tgz#64157b6c8cf4a3c637867e2ddd90c2d058c334f7" @@ -1061,72 +1112,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -"@swc/core-darwin-arm64@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.39.tgz#7c6e87dc8b27ce406eeb5d5cd39bde9fe06f416c" - integrity sha512-qYR47BEfUvK1WRAP/LVbHakCo4mcksgDjRutJbkx3maTgHlSGYQKCQo7hz+or+n3cbR2abY0rFEgoCLjZctGOw== - -"@swc/core-darwin-x64@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.39.tgz#709f269e2af553b16d35a702c90553ef0af3e400" - integrity sha512-kqJ8OleY/y3S+HXnZxDWFVbKpRsb7gZDZr6Pksr8tzFba/6pLkZFBxds/zgfWIlUwri2Lcx0X872MJ46ghwv9w== - -"@swc/core-linux-arm-gnueabihf@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.39.tgz#04e83e963ecf42228994bee3028f74b17a871456" - integrity sha512-+c3A2BV0esPNHn/KKMqP+bphUF86sVKUIaxn5tKMDrnO8ckOpEMbJ+SwzYLtwC9JIYjWwryg/0yvWrdma26Irw== - -"@swc/core-linux-arm64-gnu@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.39.tgz#fae7fa25a1b22ea51ce53d9982ffbb17c99f7071" - integrity sha512-IRrfft7ANk3NR0qX6bXbfkqbT+WR0TMvgODQdZAtRQIt5ERFpdhcnYc4tlJzfV23R0Ek3kpdA8Gduj4tHk0K6w== - -"@swc/core-linux-arm64-musl@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.39.tgz#74544b4fe31c708e5baad73a6ca52c6f9de4b4c1" - integrity sha512-N8tnynqBdRzY8m2blPAnLUtaln0m8gb96q6ipnY+XoHQ3Z6uZoUq8jWAeFDhD+MCzM7qD2HyBDN7sEqiwMRO/g== - -"@swc/core-linux-x64-gnu@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.39.tgz#8b8345d7080dbbda3e673ce21419bae4fc7cd214" - integrity sha512-Jif56kWHOjQexCib4FVbGeUcBUc56cgNW7ELEKAUCID70z20JHMVTd5utcmfi1L9tywGMvfzqD5z+NQtrFV8GQ== - -"@swc/core-linux-x64-musl@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.39.tgz#70d00f78ec1695b8d6581b0a885ac9ba1bca3867" - integrity sha512-ZiGERr/mdsEwfSiWn2Qokd8a4TTJkLVta6Nan39Bozo6J789u4uDF9Cj5TWWMSanHYAK/oRDaUm1yo2/DSecAA== - -"@swc/core-win32-arm64-msvc@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.39.tgz#9f35782f008a722f8ae230766e16e426f2b146f9" - integrity sha512-eUAk12LZ6RQHhe0ikZZsi0CPbRA6qsvoNQQ/6uwVF60CT0UnJrLiX3w3q30aXK3WjVR6uUlVEn7ze5t7HUeGyQ== - -"@swc/core-win32-ia32-msvc@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.39.tgz#3964c477d542ac41990c8cb12558d6f616cc3d64" - integrity sha512-c3MIt+0gvZD0hmPOyoIJtdgx1ubP7E+uUnljw2+Nk8rO6qhIrWI08tWRNbT0HNLXHfHhKMJHvSAg3DGW8vG3Rg== - -"@swc/core-win32-x64-msvc@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.39.tgz#81344093a5e4b4e24894b1abcf35689f3838b5c2" - integrity sha512-c4xGToLavhHjrE0Um0GyXCilL3sKNRP71GgQTVvqTFHxMmdUCBdug28olMDE1gYsCqXHaF6rPtg3QmD6dhTzKQ== - -"@swc/core@1.3.39": - version "1.3.39" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.39.tgz#c59f92dc116cf32a08d788aa5e0ce7eb856e3d40" - integrity sha512-r5oIySPo2OkC14+gmhK5H1HnDEgOvj5kx6Ogxa+Og7KyWIHE8l1JjjW+4wzYdjxtdhRjVRhvoI6mPQNQz/btBg== - optionalDependencies: - "@swc/core-darwin-arm64" "1.3.39" - "@swc/core-darwin-x64" "1.3.39" - "@swc/core-linux-arm-gnueabihf" "1.3.39" - "@swc/core-linux-arm64-gnu" "1.3.39" - "@swc/core-linux-arm64-musl" "1.3.39" - "@swc/core-linux-x64-gnu" "1.3.39" - "@swc/core-linux-x64-musl" "1.3.39" - "@swc/core-win32-arm64-msvc" "1.3.39" - "@swc/core-win32-ia32-msvc" "1.3.39" - "@swc/core-win32-x64-msvc" "1.3.39" - "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1229,6 +1214,18 @@ dependencies: "@types/node" "*" +"@types/lodash.difference@^4.5.8": + version "4.5.8" + resolved "https://registry.yarnpkg.com/@types/lodash.difference/-/lodash.difference-4.5.8.tgz#25acd0acfd3472c61b9d5629b014c21b921905fe" + integrity sha512-oamKsq2RK81RuwvG32/E8wRu/ldOz5XH04zeIyFDcJyGeebg17h0WOtyrkhDmINhr/2Noz6geO2AYfnQDxtapQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.200" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.200.tgz#435b6035c7eba9cdf1e039af8212c9e9281e7149" + integrity sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q== + "@types/minimatch@*": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" @@ -1359,6 +1356,14 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" +"@typescript-eslint/scope-manager@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz#b0276118b13d16f72809e3cecc86a72c93708540" + integrity sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg== + dependencies: + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/visitor-keys" "6.10.0" + "@typescript-eslint/scope-manager@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz#e96afeb9a68ad1cd816dba233351f61e13956b75" @@ -1382,6 +1387,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.10.0.tgz#f4f0a84aeb2ac546f21a66c6e0da92420e921367" + integrity sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg== + "@typescript-eslint/types@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.1.tgz#a6cfc20db0fcedcb2f397ea728ef583e0ee72459" @@ -1400,6 +1410,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz#667381eed6f723a1a8ad7590a31f312e31e07697" + integrity sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg== + dependencies: + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/visitor-keys" "6.10.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/typescript-estree@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz#8c77910a49a04f0607ba94d78772da07dab275ad" @@ -1440,6 +1463,19 @@ eslint-scope "^5.1.1" semver "^7.3.7" +"@typescript-eslint/utils@^6.7.5": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.10.0.tgz#4d76062d94413c30e402c9b0df8c14aef8d77336" + integrity sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.10.0" + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/typescript-estree" "6.10.0" + semver "^7.5.4" + "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" @@ -1448,6 +1484,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz#b9eaf855a1ac7e95633ae1073af43d451e8f84e3" + integrity sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg== + dependencies: + "@typescript-eslint/types" "6.10.0" + eslint-visitor-keys "^3.4.1" + "@typescript-eslint/visitor-keys@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz#6753a9225a0ba00459b15d6456b9c2780b66707d" @@ -1769,11 +1813,6 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atomic-sleep@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" @@ -2110,7 +2149,12 @@ chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -change-case@^4.1.2: +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case@^4, change-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== @@ -2215,6 +2259,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2374,21 +2423,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concurrently@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.6.0.tgz#531a6f5f30cf616f355a4afb8f8fcb2bba65a49a" - integrity sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw== - dependencies: - chalk "^4.1.0" - date-fns "^2.29.1" - lodash "^4.17.21" - rxjs "^7.0.0" - shell-quote "^1.7.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^17.3.1" - console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -2530,11 +2564,6 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -date-fns@^2.29.1: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== - dateformat@^4.5.0, dateformat@^4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" @@ -2740,6 +2769,13 @@ ejs@^3.1.8: dependencies: jake "^10.8.5" +ejs@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + electron-to-chromium@^1.4.284: version "1.4.305" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.305.tgz#e4dfe3e06ab783f33171f9bde9e8ed092510fcd0" @@ -2876,6 +2912,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-config-prettier@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" @@ -2886,7 +2927,7 @@ eslint-config-salesforce-license@^0.2.0: resolved "https://registry.yarnpkg.com/eslint-config-salesforce-license/-/eslint-config-salesforce-license-0.2.0.tgz#323193f1aa15dd33fbf108d25fc1210afc11065e" integrity sha512-DJdBvgj82Erum82YMe+YvG/o6ukna3UA++lRl0HSTldj0VlBl3Q8hzCp97nRXZHra6JH1I912yievZzklXDw6w== -eslint-config-salesforce-typescript@^3.0.1: +eslint-config-salesforce-typescript@^3.0.1, eslint-config-salesforce-typescript@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-3.0.2.tgz#25e9e8797a109828a63a3893a15613c8ecefa1bf" integrity sha512-3eNN2dKojedhxbsOGocXaU+83XoeOzc8pCiDjOvlUc7B9IYTgv7UwOgmIIoESmuHKcvsCDDFDttfLCSOCOaRtQ== @@ -2966,6 +3007,15 @@ eslint-plugin-jsdoc@^46.8.2: semver "^7.5.4" spdx-expression-parse "^3.0.1" +eslint-plugin-perfectionist@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.2.0.tgz#a1b1f1407ce9bc20a4f0e2b8113fb84e5b9dfb9f" + integrity sha512-/nG2Uurd6AY7CI6zlgjHPOoiPY8B7EYMUWdNb5w+EzyauYiQjjD5lQwAI1FlkBbCCFFZw/CdZIPQhXumYoiyaw== + dependencies: + "@typescript-eslint/utils" "^6.7.5" + minimatch "^9.0.3" + natural-compare-lite "^1.4.0" + eslint-plugin-sf-plugin@^1.16.11: version "1.16.11" resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.11.tgz#cc30f8b3ac42d1ca3b33bec9b9d0d0eba1913e37" @@ -3152,7 +3202,7 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -external-editor@^3.0.3: +external-editor@^3.0.3, external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -3247,6 +3297,14 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3380,16 +3438,6 @@ fs-extra@^8.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -3960,7 +4008,7 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" -inquirer@^8.0.0, inquirer@^8.2.5, inquirer@^8.2.6: +inquirer@^8.0.0, inquirer@^8.2.5: version "8.2.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== @@ -3981,6 +4029,27 @@ inquirer@^8.0.0, inquirer@^8.2.5, inquirer@^8.2.6: through "^2.3.6" wrap-ansi "^6.0.1" +inquirer@^9.2.11: + version "9.2.11" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.11.tgz#e9003755c233a414fceda1891c23bd622cad4a95" + integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== + dependencies: + "@ljharb/through" "^2.3.9" + 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" + internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -4221,6 +4290,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -4610,11 +4684,21 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -4685,11 +4769,31 @@ lodash.snakecase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + lodash.startcase@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -4953,6 +5057,13 @@ minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -5136,11 +5247,21 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5451,28 +5572,27 @@ object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" -oclif@^3.17.2: - version "3.17.2" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-3.17.2.tgz#f13756c9b1968047e76b99cb09db9725e96fb2f6" - integrity sha512-+vFXxgmR7dGGz+g6YiqSZu2LXVkBMaS9/rhtsLGkYw45e53CW/3kBgPRnOvxcTDM3Td9JPeBD2JWxXnPKGQW3A== +oclif@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.0.3.tgz#2ff8fab10c29b2cd0bbf8e9c87640a64151b65ff" + integrity sha512-Bq7t1bJvAKYwW3DKQIzok3jkXv7yUIMneoSec1qUr9wfSqzRTZQB0UUDovwlT/L+3TBMVoRyw1WeX+YDvfRJNA== dependencies: - "@oclif/core" "^2.11.4" + "@oclif/core" "^3.0.4" "@oclif/plugin-help" "^5.2.14" "@oclif/plugin-not-found" "^2.3.32" - "@oclif/plugin-warn-if-update-available" "^2.0.44" + "@oclif/plugin-warn-if-update-available" "^3.0.0" async-retry "^1.3.3" aws-sdk "^2.1231.0" - concurrently "^7.6.0" + change-case "^4" debug "^4.3.3" + eslint-plugin-perfectionist "^2.1.0" find-yarn-workspace-root "^2.0.0" fs-extra "^8.1" github-slugger "^1.5.0" got "^11" - lodash "^4.17.21" + lodash.template "^4.5.0" normalize-package-data "^3.0.3" semver "^7.3.8" - shelljs "^0.8.5" - tslib "^2.3.1" yeoman-environment "^3.15.1" yeoman-generator "^5.8.0" @@ -6260,6 +6380,11 @@ run-async@^2.0.0, run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -6274,13 +6399,20 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.2.0, rxjs@^7.5.5: +rxjs@^7.2.0, rxjs@^7.5.5: version "7.8.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" @@ -6443,11 +6575,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" - integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== - shelljs@^0.8.4, shelljs@^0.8.5, shelljs@~0.8.4: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" @@ -6593,11 +6720,6 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - spawn-wrap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" @@ -6773,7 +6895,7 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.1.0, supports-color@^8.1.1: +supports-color@8.1.1, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -6896,11 +7018,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - treeverse@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" @@ -6916,10 +7033,10 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== -ts-json-schema-generator@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-json-schema-generator/-/ts-json-schema-generator-1.3.0.tgz#0d5c672cce47e4c438323e3bd85f2be72f62d0ac" - integrity sha512-Y2smEgpxtWat8ICaLbUENXZ/o/SqvVy85X48V/7qOarOTu6XgVs+lr6k0OPFljVhZX5gEMrGPT3q7Ql7JKnexw== +ts-json-schema-generator@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ts-json-schema-generator/-/ts-json-schema-generator-1.4.0.tgz#f341b36792c372d3d09245414a4f3a6efa2697f8" + integrity sha512-wm8vyihmGgYpxrqRshmYkWGNwEk+sf3xV2rUgxv8Ryeh7bSpMO7pZQOht+2rS002eDkFTxR7EwRPXVzrS0WJTg== dependencies: "@types/json-schema" "^7.0.12" commander "^11.0.0" @@ -6927,7 +7044,7 @@ ts-json-schema-generator@^1.3.0: json5 "^2.2.3" normalize-path "^3.0.0" safe-stable-stringify "^2.4.3" - typescript "~5.1.6" + typescript "~5.2.2" ts-node@^10.8.1, ts-node@^10.9.1: version "10.9.1" @@ -6953,6 +7070,11 @@ ts-retry-promise@^0.7.1: resolved "https://registry.yarnpkg.com/ts-retry-promise/-/ts-retry-promise-0.7.1.tgz#176d6eee6415f07b6c7c286d3657355e284a6906" integrity sha512-NhHOCZ2AQORvH42hOPO5UZxShlcuiRtm7P2jIq2L2RY3PBxw2mLnUsEdHrIslVBFya1v5aZmrR55lWkzo13LrQ== +tsconfck@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.0.0.tgz#b469f1ced12973bbec3209a55ed8de3bb04223c9" + integrity sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A== + tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" @@ -6968,7 +7090,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: +tslib@^2, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -7090,16 +7212,11 @@ typescript@^4.6.4, typescript@^4.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@^5.2.2: +typescript@^5.2.2, typescript@~5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== -typescript@~5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -7580,7 +7697,7 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.0, yargs@^17.3.1: +yargs@^17.0.0: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==