From e4bc755b9ca3af0f3fc306dc7bcf3cf493e3232c Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 14 Nov 2023 09:55:10 -0700 Subject: [PATCH 01/11] feat!: migrate to ESM BREAKING CHANGES: ESM and node 18 minimum --- .eslintignore | 1 + .eslintrc.js => .eslintrc.cjs | 0 .lintstagedrc.cjs | 3 + .lintstagedrc.js | 3 - .mocharc.json | 5 +- bin/dev | 21 - bin/dev.cmd | 4 +- bin/dev.js | 8 + bin/run | 5 - bin/run.js | 9 + commitlint.config.js => commitlint.config.cjs | 0 messages/plugin.generator.md | 6 +- package.json | 66 +- src/commands/dev/audit/messages.ts | 11 +- src/commands/dev/configure/repo.ts | 6 +- src/commands/dev/configure/secrets.ts | 18 +- src/commands/dev/convert/messages.ts | 14 +- src/commands/dev/convert/script.ts | 12 +- src/commands/dev/generate/command.ts | 6 +- src/commands/dev/generate/flag.ts | 21 +- src/commands/dev/generate/library.ts | 6 +- src/commands/dev/generate/plugin.ts | 6 +- src/generators/command.ts | 42 +- src/generators/library.ts | 28 +- src/generators/plugin.ts | 47 +- src/index.ts | 2 +- src/types.ts | 1 + src/util.ts | 10 +- .../{command.ts.ejs => cjs-command.ts.ejs} | 0 templates/src/esm-command.ts.ejs | 36 + test/{.eslintrc.js => .eslintrc.cjs} | 2 +- test/commands/dev/audit/messages.test.ts | 49 +- test/commands/dev/convert/messages.nut.ts | 4 +- test/commands/dev/convert/script.nut.ts | 4 +- test/commands/dev/generate/command2PP.nut.ts | 20 +- test/commands/dev/generate/command3PP.nut.ts | 16 +- test/commands/dev/generate/flag.nut.ts | 8 +- test/commands/dev/generate/plugin.nut.ts | 6 +- test/commands/dev/generate/plugin.test.ts | 82 ++- .../dev/generate/pluginGenerateSetup.ts | 6 +- test/shared/commandGenerator.test.ts | 4 +- test/tsconfig.json | 2 +- test/util.test.ts | 8 +- tsconfig.json | 2 +- yarn.lock | 615 +++++++----------- 45 files changed, 618 insertions(+), 607 deletions(-) create mode 100644 .eslintignore rename .eslintrc.js => .eslintrc.cjs (100%) create mode 100644 .lintstagedrc.cjs delete mode 100644 .lintstagedrc.js 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%) rename templates/src/{command.ts.ejs => cjs-command.ts.ejs} (100%) create mode 100644 templates/src/esm-command.ts.ejs rename test/{.eslintrc.js => .eslintrc.cjs} (96%) diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..ee638464 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +*.cjs/ diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.lintstagedrc.cjs b/.lintstagedrc.cjs new file mode 100644 index 00000000..9a99d41c --- /dev/null +++ b/.lintstagedrc.cjs @@ -0,0 +1,3 @@ +module.exports = { + '**/*.{js,json,md}?(x)': () => 'npm run reformat', +}; diff --git a/.lintstagedrc.js b/.lintstagedrc.js deleted file mode 100644 index d7fab80d..00000000 --- a/.lintstagedrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - '**/*.{js,json,md}?(x)': () => 'npm run reformat' -}; diff --git a/.mocharc.json b/.mocharc.json index 7cfc7ca7..e298c3a4 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": 440000 + "timeout": 440000, + "node-option": ["loader=ts-node/esm"] } diff --git a/bin/dev b/bin/dev deleted file mode 100755 index deaf49a0..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')); \ No newline at end of file diff --git a/bin/dev.cmd b/bin/dev.cmd old mode 100644 new mode 100755 index d7ee75da..cec553be --- a/bin/dev.cmd +++ b/bin/dev.cmd @@ -1,3 +1,3 @@ @echo off -set NODE_ENV=development -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..89a549a7 --- /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 789e3312..00000000 --- a/bin/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -require('@oclif/core').run() -.then(require('@oclif/core/flush')) -.catch(require('@oclif/core/handle')) \ No newline at end of file diff --git a/bin/run.js b/bin/run.js new file mode 100755 index 00000000..cf13fb93 --- /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/messages/plugin.generator.md b/messages/plugin.generator.md index 820a1ef4..c3780bc3 100644 --- a/messages/plugin.generator.md +++ b/messages/plugin.generator.md @@ -1,6 +1,6 @@ # info.start -Time to build an sf plugin! Version %s +Time to build an sf plugin! # question.internal @@ -26,9 +26,9 @@ The name must be a valid npm package name: - All the characters in the package name must be lowercase i.e., no uppercase or mixed case names are allowed - Package name can consist of hyphens - Package name must not contain any non-url-safe characters (since name ends up being part of a URL) -- Package name should not start with . or _ +- Package name should not start with . or \_ - Package name should not contain any spaces -- Package name should not contain any of the following characters: ~)('!* +- Package name should not contain any of the following characters: ~)('!\* - Package name cannot be the same as a node.js/io.js core module nor a reserved/blacklisted name - Package name length cannot exceed 214 diff --git a/package.json b/package.json index d188e740..f29d2212 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { "name": "@salesforce/plugin-dev", "description": "commands for sf plugin development", - "version": "1.3.3", + "version": "2.0.0", "author": "Salesforce", "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": { - "@oclif/core": "^2.11.8", + "@oclif/core": "^3.11.0", "@octokit/rest": "^19.0.13", "@salesforce/core": "^5.3.14", "@salesforce/kit": "^3.0.9", - "@salesforce/sf-plugins-core": "^3.1.20", + "@salesforce/sf-plugins-core": "^4.1.2", "@salesforce/ts-types": "^2.0.8", "change-case": "^4.1.2", "fast-glob": "^3.3.2", @@ -19,47 +19,25 @@ "lodash.defaultsdeep": "^4.6.1", "replace-in-file": "^6.3.2", "shelljs": "^0.8.5", - "tslib": "^2", "yeoman-environment": "^3.19.3", "yeoman-generator": "^5.8.0" }, "devDependencies": { - "@oclif/plugin-command-snapshot": "^4.0.16", - "@salesforce/cli-plugins-testkit": "^4.3.6", - "@salesforce/dev-config": "^4.1.0", - "@salesforce/dev-scripts": "^6.0.3", + "@oclif/plugin-command-snapshot": "^5.0.2", + "@salesforce/cli-plugins-testkit": "^5.0.4", + "@salesforce/dev-scripts": "^6.0.4", "@salesforce/plugin-command-reference": "^3.0.45", - "@salesforce/prettier-config": "^0.0.3", "@salesforce/ts-sinon": "1.4.12", - "@swc/core": "1.3.20", "@types/js-yaml": "^4.0.5", "@types/lodash.defaultsdeep": "^4.6.7", "@types/shelljs": "^0.8.14", "@types/yeoman-generator": "^5.2.10", "@types/yeoman-test": "^4.0.3", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "chai": "^4.3.10", - "eslint": "^8.52.0", - "eslint-config-prettier": "^8.10.0", - "eslint-config-salesforce": "^2.0.1", - "eslint-config-salesforce-license": "^0.2.0", - "eslint-config-salesforce-typescript": "^1.1.1", - "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "2.28.0", - "eslint-plugin-jsdoc": "^43.0.5", "eslint-plugin-sf-plugin": "^1.16.5", - "husky": "^7.0.4", - "mocha": "^9.1.3", - "nyc": "^15.1.0", - "oclif": "^3.15.0", - "prettier": "^2.8.8", - "pretty-quick": "^3.1.3", + "oclif": "^4.0.3", "shx": "^0.3.3", - "sinon": "10.0.0", - "ts-node": "^10.4.0", - "typescript": "^4.9.5", - "wireit": "^0.14.0", + "ts-node": "^10.9.1", + "typescript": "^5.2.2", "yeoman-test": "^6.3.0" }, "config": { @@ -68,7 +46,7 @@ } }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "files": [ "/lib", @@ -82,14 +60,13 @@ "keywords": [ "force", "salesforce", - "sfdx", "salesforcedx", - "sfdx-plugin", + "sf", "sf-plugin", - "sf" + "sfdx", + "sfdx-plugin" ], "license": "BSD-3-Clause", - "main": "lib/index.js", "oclif": { "commands": "./lib/commands", "bin": "sf", @@ -117,19 +94,20 @@ } } } - } + }, + "flexibleTaxonomy": true }, "repository": "salesforcecli/plugin-dev", "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", "test": "wireit", "test:nuts": "nyc mocha \"test/**/*.nut.ts\" --slow 4500 --timeout 600000 --parallel --jobs 10", @@ -215,7 +193,7 @@ "output": [] }, "test:command-reference": { - "command": "\"./bin/dev\" commandreference:generate --erroronwarnings", + "command": "ts-node \"./bin/dev.js\" commandreference:generate --erroronwarnings", "files": [ "src/**/*.ts", "messages/**", @@ -226,7 +204,7 @@ ] }, "test:deprecation-policy": { - "command": "\"./bin/dev\" snapshot:compare", + "command": "ts-node \"./bin/dev.js\" snapshot:compare", "files": [ "src/**/*.ts" ], @@ -236,12 +214,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/commands/dev/audit/messages.ts b/src/commands/dev/audit/messages.ts index 8bcb34d9..bdfed4e2 100644 --- a/src/commands/dev/audit/messages.ts +++ b/src/commands/dev/audit/messages.ts @@ -4,12 +4,13 @@ * 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 * as fs from 'fs'; -import { join, parse, relative, resolve } from 'path'; +import fs from 'node:fs'; +import { dirname, join, parse, relative, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { ensureString } from '@salesforce/ts-types'; import { Logger, Messages } from '@salesforce/core'; import { Flags, SfCommand } from '@salesforce/sf-plugins-core'; -import { MultiDirectedGraph } from 'graphology'; +import graphology from 'graphology'; import { Interfaces } from '@oclif/core'; export type AuditResults = { @@ -49,7 +50,7 @@ type MessageRefNode = NodeType & { type Node = FileNode | BundleNode | MessageNode | MessageRefNode | BundleRefNode; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'audit.messages'); export default class AuditMessages extends SfCommand { @@ -94,7 +95,7 @@ export default class AuditMessages extends SfCommand { }; private package?: string; private projectDir?: string; - private graph: MultiDirectedGraph = new MultiDirectedGraph(); + private graph: graphology.MultiDirectedGraph = new graphology.MultiDirectedGraph(); public async run(): Promise { this.logger = Logger.childFromRoot(this.constructor.name); diff --git a/src/commands/dev/configure/repo.ts b/src/commands/dev/configure/repo.ts index f3b390f2..4cb78152 100644 --- a/src/commands/dev/configure/repo.ts +++ b/src/commands/dev/configure/repo.ts @@ -7,12 +7,14 @@ // because github api isn't camelcased /* eslint-disable camelcase */ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Flags, SfCommand } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { Octokit } from '@octokit/rest'; -import { OctokitError } from '../../../types'; +import { OctokitError } from '../../../types.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'configure.repo'); export type ConfigureRepoResult = { diff --git a/src/commands/dev/configure/secrets.ts b/src/commands/dev/configure/secrets.ts index 124b8427..3f15c32b 100644 --- a/src/commands/dev/configure/secrets.ts +++ b/src/commands/dev/configure/secrets.ts @@ -8,18 +8,20 @@ // because github api isn't camelcased /* eslint-disable camelcase */ -import * as fs from 'fs'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import fs from 'node:fs'; import { ux } from '@oclif/core'; import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { Octokit } from '@octokit/rest'; -import { exec } from 'shelljs'; -import * as yaml from 'js-yaml'; -import { OctokitError } from '../../../types'; +import shelljs from 'shelljs'; +import yaml from 'js-yaml'; +import { OctokitError } from '../../../types.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'configure.secrets'); type SecretClassification = @@ -83,10 +85,10 @@ export default class ConfigureSecrets extends SfCommand { repo: flags.repository.split('/')[1], }; // make sure repo got removed from previous attempt - exec(`rm -rf ${repoBase.repo}`); + shelljs.exec(`rm -rf ${repoBase.repo}`); // clone repo so we can review its yaml - exec(`git clone https://github.com/${flags.repository} --depth 1`); + shelljs.exec(`git clone https://github.com/${flags.repository} --depth 1`); // part 1: what secrets does this repo need? const publish = yaml.load( @@ -150,7 +152,7 @@ export default class ConfigureSecrets extends SfCommand { this.styledJSON(output); - exec(`rm -rf ${repoBase.repo}`); + shelljs.exec(`rm -rf ${repoBase.repo}`); return output; } } diff --git a/src/commands/dev/convert/messages.ts b/src/commands/dev/convert/messages.ts index 4537ffb9..f9b98a64 100644 --- a/src/commands/dev/convert/messages.ts +++ b/src/commands/dev/convert/messages.ts @@ -4,14 +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 * as fs from 'fs'; -import { EOL } from 'os'; -import * as path from 'path'; -import { resolve } from 'path'; +import fs from 'node:fs'; +import { EOL } from 'node:os'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(path.dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.convert.messages'); export type DevConvertMessagesResult = { @@ -46,9 +46,9 @@ export default class DevConvertMessages extends SfCommand { const { flags } = await this.parse(DevConvertMessages); - const projectDir = resolve(flags['project-dir']); + const projectDir = path.resolve(flags['project-dir']); const { name: pluginName } = JSON.parse( - await fs.promises.readFile(resolve(projectDir, 'package.json'), 'utf8') + await fs.promises.readFile(path.resolve(projectDir, 'package.json'), 'utf8') ) as { name: string; }; diff --git a/src/commands/dev/convert/script.ts b/src/commands/dev/convert/script.ts index 6ecaf285..703b3964 100644 --- a/src/commands/dev/convert/script.ts +++ b/src/commands/dev/convert/script.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 * as fs from 'fs'; -import * as os from 'os'; +import fs from 'node:fs'; +import os from 'node:os'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { Flags, SfCommand } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.convert.script'); type Flag = { @@ -168,7 +170,7 @@ export default class ConvertScript extends SfCommand { const depMessage = replacement.deprecationOptions?.message; const depTo = replacement.deprecationOptions?.to; - if (depTo?.includes('/') || (!depTo && depMessage)) { + if (depTo?.includes('/') ?? (!depTo && depMessage)) { this.warn(messages.getMessage('cannotDetermine', [commandId])); if (depMessage) { this.warn(depMessage); @@ -195,7 +197,7 @@ export default class ConvertScript extends SfCommand { // from the plugin find the command that matches the commandId or the alias const pluginName = this.config.commands.find((c) => c.id === commandId)?.pluginName; - const plugin = this.config.plugins.find((p) => p.name === pluginName); + const plugin = this.config.plugins.get(pluginName ?? ''); return plugin?.commands.find((c) => c.id === commandId || c.aliases.includes(commandId)) as Snapshot; } } diff --git a/src/commands/dev/generate/command.ts b/src/commands/dev/generate/command.ts index 4610d0c7..52f59f16 100644 --- a/src/commands/dev/generate/command.ts +++ b/src/commands/dev/generate/command.ts @@ -4,11 +4,13 @@ * 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 } from '@salesforce/core'; import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; -import { fileExists, generate } from '../../../util'; +import { fileExists, generate } from '../../../util.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.generate.command'); export default class GenerateCommand extends SfCommand { diff --git a/src/commands/dev/generate/flag.ts b/src/commands/dev/generate/flag.ts index de03373b..5cd2a07c 100644 --- a/src/commands/dev/generate/flag.ts +++ b/src/commands/dev/generate/flag.ts @@ -5,21 +5,22 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; -import * as os from 'os'; -import * as fs from 'fs/promises'; -import { exec } from 'shelljs'; +import path from 'node:path'; +import os from 'node:os'; +import fs from 'node:fs/promises'; +import { fileURLToPath } from 'node:url'; +import shelljs from 'shelljs'; import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; // eslint-disable-next-line sf-plugin/no-oclif-flags-command-import import { Config, Command, toStandardizedId } from '@oclif/core'; -import * as fg from 'fast-glob'; -import { fileExists, FlagBuilder } from '../../../util'; -import { FlagAnswers } from '../../../types'; +import fg from 'fast-glob'; +import { fileExists, FlagBuilder } from '../../../util.js'; +import { FlagAnswers } from '../../../types.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(path.dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.generate.flag'); const toLowerKebabCase = (str: string): string => @@ -80,9 +81,9 @@ export default class DevGenerateFlag extends SfCommand { await updateMarkdownFile(answers, standardizedCommandId); - exec(`yarn prettier --write ${commandFilePath}`); + shelljs.exec(`yarn prettier --write ${commandFilePath}`); - exec('yarn compile'); + shelljs.exec('yarn compile'); this.log(`Added ${answers.name} flag to ${commandFilePath}`); } diff --git a/src/commands/dev/generate/library.ts b/src/commands/dev/generate/library.ts index a9e12293..83c00bad 100644 --- a/src/commands/dev/generate/library.ts +++ b/src/commands/dev/generate/library.ts @@ -4,11 +4,13 @@ * 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 } from '@salesforce/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import { generate } from '../../../util'; +import { generate } from '../../../util.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.generate.library'); export default class GenerateLibrary extends SfCommand { diff --git a/src/commands/dev/generate/plugin.ts b/src/commands/dev/generate/plugin.ts index 4d94f422..34af3578 100644 --- a/src/commands/dev/generate/plugin.ts +++ b/src/commands/dev/generate/plugin.ts @@ -4,11 +4,13 @@ * 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 } from '@salesforce/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import { generate } from '../../../util'; +import { generate } from '../../../util.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'dev.generate.plugin'); export default class GeneratePlugin extends SfCommand { diff --git a/src/generators/command.ts b/src/generators/command.ts index 255aa8f6..a279ffd8 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -5,17 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; -import * as Generator from 'yeoman-generator'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import Generator from 'yeoman-generator'; import { pascalCase } from 'change-case'; import { set } from '@salesforce/kit'; import { get } from '@salesforce/ts-types'; -import { exec } from 'shelljs'; +import shelljs from 'shelljs'; import defaultsDeep = require('lodash.defaultsdeep'); -import { PackageJson, Topic } from '../types'; - -// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment -const { version } = require('../../package.json'); +import { PackageJson, Topic } from '../types.js'; export interface CommandGeneratorOptions extends Generator.GeneratorOptions { name: string; @@ -23,6 +21,8 @@ export interface CommandGeneratorOptions extends Generator.GeneratorOptions { unit: boolean; } +const TEMPLATES_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../templates'); + /** returns the modifications that need to be made for the oclif pjson topics information. Returns an empty object for "don't change anything" */ export function addTopics( newCmd: string, @@ -78,11 +78,11 @@ export default class Command extends Generator { // eslint-disable-next-line @typescript-eslint/require-await public async prompting(): Promise { this.pjson = this.fs.readJSON('package.json') as unknown as PackageJson; - this.log(`Adding a command to ${this.pjson.name}! Version: ${version as string}`); + this.log(`Adding a command to ${this.pjson.name}!`); if (Object.keys(this.pjson.devDependencies).includes('@salesforce/plugin-command-reference')) { // Get a list of all commands in `sf`. We will use this to determine if a topic is internal or external. - const sfCommandsStdout = exec('sf commands --json', { silent: true }).stdout; + const sfCommandsStdout = shelljs.exec('sf commands --json', { silent: true }).stdout; const commandsJson = JSON.parse(sfCommandsStdout) as Array<{ id: string }>; const commands = commandsJson.map((command) => command.id.replace(/:/g, '.').replace(/ /g, '.')); @@ -104,18 +104,18 @@ export default class Command extends Generator { } public end(): void { - exec('yarn format'); - exec('yarn lint -- --fix'); - exec('yarn compile'); + shelljs.exec('yarn format'); + shelljs.exec('yarn lint -- --fix'); + shelljs.exec('yarn compile'); const localExecutable = process.platform === 'win32' ? path.join('bin', 'dev.cmd') : path.join('bin', 'dev'); if (this.pjson.scripts['test:deprecation-policy']) { - exec(`${localExecutable} snapshot:generate`); + shelljs.exec(`${localExecutable} snapshot:generate`); } if (this.pjson.scripts['test:json-schema']) { - exec(`${localExecutable} schema:generate`); + shelljs.exec(`${localExecutable} schema:generate`); } } @@ -124,7 +124,7 @@ export default class Command extends Generator { } private writeCmdFile(): void { - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const cmdPath = this.options.name.split(':').join('/'); const commandPath = this.destinationPath(`src/commands/${cmdPath}.ts`); const className = pascalCase(this.options.name); @@ -137,11 +137,15 @@ export default class Command extends Generator { pluginName: this.pjson.name, messageFile: this.getMessageFileName(), }; - this.fs.copyTpl(this.templatePath('src/command.ts.ejs'), commandPath, opts); + this.fs.copyTpl( + this.templatePath(this.pjson.type === 'module' ? 'src/esm-command.ts.ejs' : 'src/cjs-command.ts.ejs'), + commandPath, + opts + ); } private writeMessageFile(): void { - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const filename = this.getMessageFileName(); const messagePath = this.destinationPath(`messages/${filename}.md`); this.fs.copyTpl(this.templatePath('messages/message.md.ejs'), messagePath, this.options); @@ -149,7 +153,7 @@ export default class Command extends Generator { private writeNutFile(): void { if (!this.options.nuts) return; - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const cmdPath = this.options.name.split(':').join('/'); const nutPath = this.destinationPath(`test/commands/${cmdPath}.nut.ts`); const opts = { @@ -163,7 +167,7 @@ export default class Command extends Generator { private writeUnitTestFile(): void { if (!this.options.unit) return; - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const cmdPath = this.options.name.split(':').join('/'); const commandPath = this.destinationPath(`src/commands/${cmdPath}.ts`); const className = pascalCase(this.options.name); diff --git a/src/generators/library.ts b/src/generators/library.ts index 9fdb7c0f..e96f4ecc 100644 --- a/src/generators/library.ts +++ b/src/generators/library.ts @@ -5,16 +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 'fs'; -import * as path from 'path'; -import * as Generator from 'yeoman-generator'; -import { exec } from 'shelljs'; +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import Generator from 'yeoman-generator'; +import shelljs from 'shelljs'; import replace = require('replace-in-file'); -import { PackageJson } from '../types'; -import { readJson } from '../util'; - -// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment -const { version } = require('../../package.json'); +import { PackageJson } from '../types.js'; +import { readJson } from '../util.js'; type Answers = { name: string; @@ -27,6 +25,8 @@ function containsInvalidChars(input: string): boolean { return input.split('').some((i) => '!#$%^&*() ?/\\,.";\':|{}[]~`'.includes(i)); } +const TEMPLATES_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../templates'); + export default class Library extends Generator { private answers!: Answers; @@ -36,9 +36,7 @@ export default class Library extends Generator { } public async prompting(): Promise { - const msg = 'Time to build a library!'; - - this.log(`${msg} Version: ${version as string}`); + this.log('Time to build a library!'); this.answers = await this.prompt([ { @@ -83,7 +81,7 @@ export default class Library extends Generator { ]); const directory = path.resolve(this.answers.name); - exec(`git clone git@github.com:forcedotcom/library-template.git ${directory}`); + shelljs.exec(`git clone git@github.com:forcedotcom/library-template.git ${directory}`); fs.rmSync(`${path.resolve(this.answers.name, '.git')}`, { recursive: true }); this.destinationRoot(directory); this.env.cwd = this.destinationPath(); @@ -92,7 +90,7 @@ export default class Library extends Generator { public writing(): void { const pjson = readJson(path.join(this.env.cwd, 'package.json')); - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const updated = { name: `${this.answers.scope}/${this.answers.name}`, @@ -123,6 +121,6 @@ export default class Library extends Generator { } public end(): void { - exec('yarn build', { cwd: this.env.cwd }); + shelljs.exec('yarn build', { cwd: this.env.cwd }); } } diff --git a/src/generators/plugin.ts b/src/generators/plugin.ts index 358ec208..7f3630ee 100644 --- a/src/generators/plugin.ts +++ b/src/generators/plugin.ts @@ -5,20 +5,20 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'fs'; -import * as path from 'path'; -import * as Generator from 'yeoman-generator'; -import { exec } from 'shelljs'; +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import Generator from 'yeoman-generator'; +import shelljs from 'shelljs'; import replace = require('replace-in-file'); import { Messages } from '@salesforce/core'; -import { NYC, PackageJson } from '../types'; -import { readJson, validatePluginName } from '../util'; +import { NYC, PackageJson } from '../types.js'; +import { readJson, validatePluginName } from '../util.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(path.dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-dev', 'plugin.generator'); -// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment -const { version } = require('../../package.json'); +const TEMPLATES_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../templates'); type PluginAnswers = { internal: boolean; @@ -28,6 +28,14 @@ type PluginAnswers = { codeCoverage?: string; }; +function rm(filepath: string, options: { recursive?: boolean }): void { + try { + fs.rmSync(filepath, options); + } catch { + // do nothing + } +} + /** * See https://yeoman.io/authoring/running-context.html for the overridable methods */ @@ -41,7 +49,7 @@ export default class Plugin extends Generator { } public async prompting(): Promise { - this.log(messages.getMessage('info.start', [version as string])); + this.log(messages.getMessage('info.start')); this.githubUsername = await this.getGitUsername(); @@ -102,7 +110,7 @@ export default class Plugin extends Generator { const templateRepo = this.answers.internal ? 'git clone https://github.com/salesforcecli/plugin-template-sf.git' : 'git clone https://github.com/salesforcecli/plugin-template-sf-external.git'; - exec(`${templateRepo} ${directory}`); + shelljs.exec(`${templateRepo} ${directory}`); try { fs.rmSync(`${path.resolve(this.answers.name, '.git')}`, { recursive: true }); } catch { @@ -112,13 +120,13 @@ export default class Plugin extends Generator { this.destinationRoot(directory); this.env.cwd = this.destinationPath(); - exec('git init', { cwd: this.env.cwd }); + shelljs.exec('git init', { cwd: this.env.cwd }); } public writing(): void { const pjson = readJson(path.join(this.env.cwd, 'package.json')); - this.sourceRoot(path.join(__dirname, '../../templates')); + this.sourceRoot(TEMPLATES_DIR); const updated: Partial = this.answers.internal ? { @@ -154,21 +162,26 @@ export default class Plugin extends Generator { from: this.answers.internal ? /plugin-template-sf/g : /plugin-template-sf-external/g, to: this.answers.name, }); + + if (!this.answers.internal) { + rm(path.join(this.env.cwd, 'CODE_OF_CONDUCT.md'), { recursive: true }); + rm(path.join(this.env.cwd, 'LICENSE.txt'), { recursive: true }); + } } public install(): void { try { - exec('yarn install', { cwd: this.env.cwd }); + shelljs.exec('yarn install', { cwd: this.env.cwd }); } catch (e) { // Run yarn install in case dev-scripts detected changes during yarn build. - exec('yarn install', { cwd: this.env.cwd }); + shelljs.exec('yarn install', { cwd: this.env.cwd }); } } public end(): void { - exec('yarn build', { cwd: this.env.cwd }); + shelljs.exec('yarn build', { cwd: this.env.cwd }); if (this.answers.internal) { - exec(`${path.join(path.resolve(this.env.cwd), 'bin', 'dev')} schema generate`, { cwd: this.env.cwd }); + shelljs.exec(`${path.join(path.resolve(this.env.cwd), 'bin', 'dev')} schema generate`, { cwd: this.env.cwd }); } } diff --git a/src/index.ts b/src/index.ts index e5421d12..2434da0f 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/src/types.ts b/src/types.ts index 90b89018..257338fa 100644 --- a/src/types.ts +++ b/src/types.ts @@ -49,6 +49,7 @@ export type PackageJson = { dependencies: string; }; }; + type?: string; }; export type FlagAnswers = { diff --git a/src/util.ts b/src/util.ts index 171d0e8e..07257e7e 100644 --- a/src/util.ts +++ b/src/util.ts @@ -4,13 +4,13 @@ * 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 * as fs from 'fs'; -import * as os from 'os'; -import { createEnv } from 'yeoman-environment'; -import { FlagAnswers } from './types'; +import fs from 'node:fs'; +import os from 'node:os'; +import yeoman from 'yeoman-environment'; +import { FlagAnswers } from './types.js'; export function generate(type: string, generatorOptions: Record = {}): Promise { - const env = createEnv(); + const env = yeoman.createEnv(); env.register(require.resolve(`./generators/${type}`), `sf:${type}`); return env.run(`sf:${type}`, generatorOptions); } diff --git a/templates/src/command.ts.ejs b/templates/src/cjs-command.ts.ejs similarity index 100% rename from templates/src/command.ts.ejs rename to templates/src/cjs-command.ts.ejs diff --git a/templates/src/esm-command.ts.ejs b/templates/src/esm-command.ts.ejs new file mode 100644 index 00000000..926d9a0b --- /dev/null +++ b/templates/src/esm-command.ts.ejs @@ -0,0 +1,36 @@ +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; +import { Messages } from '@salesforce/core'; + +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); +const messages = Messages.loadMessages('<%- pluginName %>', '<%- messageFile %>'); + +export type <%- returnType %> = { + path: string; +}; + +export default class <%- className %> extends SfCommand<<%- returnType %>> { + public static readonly summary = messages.getMessage('summary'); + public static readonly description = messages.getMessage('description'); + public static readonly examples = messages.getMessages('examples'); + + public static readonly flags = { + name: Flags.string({ + summary: messages.getMessage('flags.name.summary'), + description: messages.getMessage('flags.name.description'), + char: 'n', + required: false, + }), + }; + + public async run(): Promise<<%- returnType %>> { + const { flags } = await this.parse(<%- className %>); + + const name = flags.name ?? 'world'; + this.log(`hello ${name} from <%- commandPath.replace(/\\/g, '\\\\') %>`); + return { + path: '<%- commandPath.replace(/\\/g, '\\\\') %>', + }; + } +} diff --git a/test/.eslintrc.js b/test/.eslintrc.cjs similarity index 96% rename from test/.eslintrc.js rename to test/.eslintrc.cjs index 79fd9f43..fadf2c90 100644 --- a/test/.eslintrc.js +++ b/test/.eslintrc.cjs @@ -6,7 +6,7 @@ */ module.exports = { - extends: '../.eslintrc.js', + extends: '../.eslintrc.cjs', // Allow describe and it env: { mocha: true }, rules: { diff --git a/test/commands/dev/audit/messages.test.ts b/test/commands/dev/audit/messages.test.ts index 659895c9..33833903 100644 --- a/test/commands/dev/audit/messages.test.ts +++ b/test/commands/dev/audit/messages.test.ts @@ -4,15 +4,16 @@ * 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 * as path from 'path'; -import * as fs from 'fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import fs from 'node:fs'; import { expect } from 'chai'; -import helpers = require('yeoman-test'); +import helpers from 'yeoman-test'; import { Config } from '@oclif/core'; -import AuditMessages, { fileReader, resolveFileContents } from '../../../../src/commands/dev/audit/messages'; +import AuditMessages, { fileReader, resolveFileContents } from '../../../../src/commands/dev/audit/messages.js'; describe('file reader', () => { - const testDir = path.join(__dirname, 'tmpFileReader'); + const testDir = path.join(path.dirname(fileURLToPath(import.meta.url)), 'tmpFileReader'); const subDir = path.join(testDir, 'subDir'); before(async () => { await fs.promises.mkdir(testDir, { recursive: true }); @@ -49,16 +50,40 @@ describe('file reader', () => { await fs.promises.rm(testDir, { recursive: true, force: true }); }); }); + describe('audit messages', () => { let runResult: helpers.RunResult; + const testDir = path.join(process.cwd(), 'tmp'); before(async () => { + try { + await fs.promises.rm(path.join(testDir, 'plugin-test'), { recursive: true, force: true }); + } catch { + // do nothing + } + + await fs.promises.mkdir(testDir, { recursive: true }); + runResult = await helpers - .run(path.join(__dirname, '..', '..', '..', '..', 'src', 'generators', 'plugin.ts')) + .create( + path.join( + path.dirname(fileURLToPath(import.meta.url)), + '..', + '..', + '..', + '..', + 'src', + 'generators', + 'plugin.ts' + ) + ) + .cd(testDir) .withPrompts({ internal: true, name: 'plugin-test', description: 'my plugin description', - }); + }) + .run(); + await fs.promises.writeFile( path.join(runResult.cwd, 'plugin-test', 'messages', 'my.unused.md'), '# unusedMessageInUnusedBundle\nunused message\n' @@ -85,6 +110,16 @@ describe('audit messages', () => { await fs.promises.writeFile(helloWorldPath, helloWorld.join('\n'), 'utf8'); }); + after(async () => { + runResult.restore(); + + try { + await fs.promises.rm(path.join(testDir, 'plugin-test'), { recursive: true, force: true }); + } catch { + // do nothing + } + }); + it('should audit messages', async () => { const cmd = new AuditMessages(['-p', path.join(runResult.cwd, 'plugin-test'), '--json'], {} as Config); const result = await cmd.run(); diff --git a/test/commands/dev/convert/messages.nut.ts b/test/commands/dev/convert/messages.nut.ts index fd4b2fae..69226262 100644 --- a/test/commands/dev/convert/messages.nut.ts +++ b/test/commands/dev/convert/messages.nut.ts @@ -4,8 +4,8 @@ * 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 * as fs from 'fs'; -import * as path from 'path'; +import fs from 'node:fs'; +import path from 'node:path'; import { execCmd } from '@salesforce/cli-plugins-testkit'; import { expect, config } from 'chai'; diff --git a/test/commands/dev/convert/script.nut.ts b/test/commands/dev/convert/script.nut.ts index 1fd376be..741f17e6 100644 --- a/test/commands/dev/convert/script.nut.ts +++ b/test/commands/dev/convert/script.nut.ts @@ -4,8 +4,8 @@ * 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 * as fs from 'fs'; -import * as path from 'path'; +import fs from 'node:fs'; +import path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; diff --git a/test/commands/dev/generate/command2PP.nut.ts b/test/commands/dev/generate/command2PP.nut.ts index 7a4a1537..960f5685 100644 --- a/test/commands/dev/generate/command2PP.nut.ts +++ b/test/commands/dev/generate/command2PP.nut.ts @@ -5,13 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; +import path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect, config } from 'chai'; -import { exec } from 'shelljs'; -import { PackageJson } from '../../../../src/types'; -import { readJson, fileExists } from '../../../../src/util'; -import { setup } from './pluginGenerateSetup'; +import shelljs from 'shelljs'; +import { PackageJson } from '../../../../src/types.js'; +import { readJson, fileExists } from '../../../../src/util.js'; +import { setup } from './pluginGenerateSetup.js'; config.truncateThreshold = 0; @@ -37,7 +37,7 @@ describe('2PP', () => { }); it('should generate a command that can be executed', () => { - const result = exec(`${pluginExecutable} do awesome stuff --name Astro`, { silent: true }); + const result = shelljs.exec(`${pluginExecutable} do awesome stuff --name Astro`, { silent: true }); expect(result.code).to.equal(0); expect(result.stdout).to.contain('hello Astro'); }); @@ -53,7 +53,7 @@ describe('2PP', () => { const nutFile = path.join(session.project.dir, 'test', 'commands', ...parts, `${cmd}.nut.ts`); expect(await fileExists(nutFile)).to.be.true; - const result = exec('yarn test:nuts', { + const result = shelljs.exec('yarn test:nuts', { cwd: session.project.dir, silent: true, env: { @@ -71,9 +71,9 @@ describe('2PP', () => { const cmd = parts.pop(); const unitTestFile = path.join(session.project.dir, 'test', 'commands', ...parts, `${cmd}.test.ts`); expect(await fileExists(unitTestFile)).to.be.true; - exec('bin/dev snapshot:generate', { silent: true }); - exec('bin/dev schema:generate', { silent: true }); - const result = exec('yarn test:only', { cwd: session.project.dir }); + shelljs.exec('bin/dev snapshot:generate', { silent: true }); + shelljs.exec('bin/dev schema:generate', { silent: true }); + const result = shelljs.exec('yarn test:only', { cwd: session.project.dir }); expect(result.code).to.equal(0); expect(result.stdout).include(name.replace(/:/g, ' ')); }); diff --git a/test/commands/dev/generate/command3PP.nut.ts b/test/commands/dev/generate/command3PP.nut.ts index 3bde4b3d..a3753926 100644 --- a/test/commands/dev/generate/command3PP.nut.ts +++ b/test/commands/dev/generate/command3PP.nut.ts @@ -5,13 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; +import path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect, config } from 'chai'; -import { exec } from 'shelljs'; -import { PackageJson } from '../../../../src/types'; -import { readJson, fileExists } from '../../../../src/util'; -import { setup } from './pluginGenerateSetup'; +import shelljs from 'shelljs'; +import { PackageJson } from '../../../../src/types.js'; +import { readJson, fileExists } from '../../../../src/util.js'; +import { setup } from './pluginGenerateSetup.js'; config.truncateThreshold = 0; @@ -37,7 +37,7 @@ describe('3PP', () => { }); it('should generate a command that can be executed', () => { - const result = exec(`${pluginExecutable} do awesome stuff --name Astro`, { silent: true }); + const result = shelljs.exec(`${pluginExecutable} do awesome stuff --name Astro`, { silent: true }); expect(result.code).to.equal(0); expect(result.stdout).to.contain('hello Astro'); }); @@ -53,7 +53,7 @@ describe('3PP', () => { const nutFile = path.join(session.project.dir, 'test', 'commands', ...parts, `${cmd}.nut.ts`); expect(await fileExists(nutFile)).to.be.true; - const result = exec('yarn test:nuts', { + const result = shelljs.exec('yarn test:nuts', { cwd: session.project.dir, silent: true, env: { @@ -70,7 +70,7 @@ describe('3PP', () => { const cmd = parts.pop(); const unitTestFile = path.join(session.project.dir, 'test', 'commands', ...parts, `${cmd}.test.ts`); expect(await fileExists(unitTestFile)).to.be.true; - const result = exec('yarn test:only', { cwd: session.project.dir }); + const result = shelljs.exec('yarn test:only', { cwd: session.project.dir }); expect(result.code).to.equal(0); expect(result.stdout).include(name.replace(/:/g, ' ')); }); diff --git a/test/commands/dev/generate/flag.nut.ts b/test/commands/dev/generate/flag.nut.ts index d94908ab..7be98059 100644 --- a/test/commands/dev/generate/flag.nut.ts +++ b/test/commands/dev/generate/flag.nut.ts @@ -5,9 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; +import path from 'node:path'; import { TestSession, execInteractiveCmd, Interaction } from '@salesforce/cli-plugins-testkit'; -import { exec } from 'shelljs'; +import shelljs from 'shelljs'; import { expect } from 'chai'; function getLocalBin(...parts: string[]): string { @@ -51,7 +51,7 @@ function getLocalBin(...parts: string[]): string { ); const localBin = getLocalBin(session.dir, 'plugin-awesome'); - const helpOutput = exec(`${localBin} hello world --help`, { silent: false }); + const helpOutput = shelljs.exec(`${localBin} hello world --help`, { silent: false }); expect(helpOutput.stdout).to.contain('-m, --my-boolean-flag'); }); @@ -74,7 +74,7 @@ function getLocalBin(...parts: string[]): string { ); const localBin = getLocalBin(session.dir, 'plugin-awesome'); - const helpOutput = exec(`${localBin} hello world --help`, { silent: false }); + const helpOutput = shelljs.exec(`${localBin} hello world --help`, { silent: false }); expect(helpOutput.stdout).to.contain('-i, --my-integer-flag=...'); }); }); diff --git a/test/commands/dev/generate/plugin.nut.ts b/test/commands/dev/generate/plugin.nut.ts index 2c0afa2e..b5d12bc6 100644 --- a/test/commands/dev/generate/plugin.nut.ts +++ b/test/commands/dev/generate/plugin.nut.ts @@ -4,11 +4,11 @@ * 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 * as path from 'path'; +import path from 'node:path'; import { TestSession, execInteractiveCmd, Interaction } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; -import { fileExists, readJson } from '../../../../src/util'; -import { NYC, PackageJson } from '../../../../src/types'; +import { fileExists, readJson } from '../../../../src/util.js'; +import { NYC, PackageJson } from '../../../../src/types.js'; describe('dev generate plugin NUTs', () => { let session: TestSession; diff --git a/test/commands/dev/generate/plugin.test.ts b/test/commands/dev/generate/plugin.test.ts index b4b051ac..7f71d7af 100644 --- a/test/commands/dev/generate/plugin.test.ts +++ b/test/commands/dev/generate/plugin.test.ts @@ -5,23 +5,70 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'path'; -import helpers = require('yeoman-test'); +import { mkdir, rm } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import helpers from 'yeoman-test'; import { expect } from 'chai'; -import { readJson } from '../../../../src/util'; -import { PackageJson } from '../../../../src/types'; +import { readJson } from '../../../../src/util.js'; +import { PackageJson } from '../../../../src/types.js'; describe('dev generate plugin', () => { + let runResult: helpers.RunResult; + const testDir = path.join(process.cwd(), 'tmp'); + + async function cleanup(): Promise { + try { + await rm(path.join(testDir, 'plugin-test'), { recursive: true, force: true }); + } catch { + // do nothing + } + + try { + await rm(path.join(testDir, 'my-plugin'), { recursive: true, force: true }); + } catch { + // do nothing + } + } + + before(async () => { + await cleanup(); + await mkdir(testDir, { recursive: true }); + }); + + afterEach(async () => { + if (runResult) { + runResult.restore(); + } + }); + + after(async () => { + await cleanup(); + }); + it('should generate a 3PP plugin', async () => { - const runResult = await helpers - .run(path.join(__dirname, '..', '..', '..', '..', 'src', 'generators', 'plugin.ts')) + runResult = await helpers + .create( + path.join( + path.dirname(fileURLToPath(import.meta.url)), + '..', + '..', + '..', + '..', + 'src', + 'generators', + 'plugin.ts' + ) + ) + .cd(testDir) .withPrompts({ internal: false, name: 'my-plugin', description: 'my plugin description', author: 'my name', codeCoverage: '50%', - }); + }) + .run(); runResult.assertFile(path.join(runResult.cwd, 'my-plugin', 'package.json')); runResult.assertFile(path.join(runResult.cwd, 'my-plugin', 'src', 'commands', 'hello', 'world.ts')); @@ -52,19 +99,32 @@ describe('dev generate plugin', () => { ); runResult.assertNoFileContent( - path.join(runResult.cwd, 'my-plugin', '.eslintrc.js'), + path.join(runResult.cwd, 'my-plugin', '.eslintrc.cjs'), /eslint-config-salesforce-license/g ); }); it('should generate a 2PP plugin', async () => { - const runResult = await helpers - .run(path.join(__dirname, '..', '..', '..', '..', 'src', 'generators', 'plugin.ts')) + runResult = await helpers + .create( + path.join( + path.dirname(fileURLToPath(import.meta.url)), + '..', + '..', + '..', + '..', + 'src', + 'generators', + 'plugin.ts' + ) + ) + .cd(testDir) .withPrompts({ internal: true, name: 'plugin-test', description: 'my plugin description', - }); + }) + .run(); runResult.assertFile(path.join(runResult.cwd, 'plugin-test', 'package.json')); runResult.assertFile(path.join(runResult.cwd, 'plugin-test', 'src', 'commands', 'hello', 'world.ts')); diff --git a/test/commands/dev/generate/pluginGenerateSetup.ts b/test/commands/dev/generate/pluginGenerateSetup.ts index a22f2249..38566bf0 100644 --- a/test/commands/dev/generate/pluginGenerateSetup.ts +++ b/test/commands/dev/generate/pluginGenerateSetup.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { TestSession } from '@salesforce/cli-plugins-testkit'; -import { exec } from 'shelljs'; +import shelljs from 'shelljs'; export async function setup(repo: string): Promise { const session = await TestSession.create({ @@ -13,7 +13,7 @@ export async function setup(repo: string): Promise { gitClone: repo, }, }); - exec('yarn', { cwd: session.project.dir, silent: true }); - exec('yarn build', { cwd: session.project.dir, silent: true }); + shelljs.exec('yarn', { cwd: session.project.dir, silent: true }); + shelljs.exec('yarn build', { cwd: session.project.dir, silent: true }); return session; } diff --git a/test/shared/commandGenerator.test.ts b/test/shared/commandGenerator.test.ts index 7cf9c2be..6463579a 100644 --- a/test/shared/commandGenerator.test.ts +++ b/test/shared/commandGenerator.test.ts @@ -6,8 +6,8 @@ */ import { expect } from 'chai'; -import { addTopics } from '../../src/generators/command'; -import { Topic } from '../../src/types'; +import { addTopics } from '../../src/generators/command.js'; +import { Topic } from '../../src/types.js'; describe('command generator', () => { describe('addTopics : external', () => { diff --git a/test/tsconfig.json b/test/tsconfig.json index 779a1b5f..a5f451cf 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/test/util.test.ts b/test/util.test.ts index 31a30942..0d228aa1 100644 --- a/test/util.test.ts +++ b/test/util.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 * as os from 'os'; -import * as sinon from 'sinon'; +import os from 'node:os'; +import sinon from 'sinon'; import { expect, config as chaiConfig } from 'chai'; -import { FlagBuilder, validatePluginName } from '../src/util'; -import { FlagAnswers } from '../src/types'; +import { FlagBuilder, validatePluginName } from '../src/util.js'; +import { FlagAnswers } from '../src/types.js'; chaiConfig.truncateThreshold = 0; diff --git a/tsconfig.json b/tsconfig.json index b88fd7e6..69e50b57 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 ce182d60..f598429f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -171,7 +171,7 @@ core-js-pure "^3.25.1" regenerator-runtime "^0.13.11" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.21.0": +"@babel/runtime@^7.12.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== @@ -380,15 +380,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@es-joy/jsdoccomment@~0.38.0": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.38.0.tgz#2e74f8d824b4a4ec831eaabd4c3548fb11eae5cd" - integrity sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw== - dependencies: - comment-parser "1.3.1" - esquery "^1.5.0" - jsdoc-type-pratt-parser "~4.0.0" - "@es-joy/jsdoccomment@~0.40.1": version "0.40.1" resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz#13acd77fb372ed1c83b7355edd865a3b370c9ec4" @@ -405,7 +396,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -692,7 +683,7 @@ node-gyp "^8.2.0" read-package-json-fast "^2.0.1" -"@oclif/core@^2.11.4", "@oclif/core@^2.11.8", "@oclif/core@^2.15.0": +"@oclif/core@^2.15.0": version "2.15.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.15.0.tgz#f27797b30a77d13279fba88c1698fc34a0bd0d2a" integrity sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA== @@ -726,10 +717,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^3.5.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.8.0.tgz#45f5f630b3b593c3486e7835953ad6fb2af01bcb" - integrity sha512-fKqg9QzjIflDcYljZkZEeY6zoRyk4AZ5e2V4LUIsSOR7+B78qpqNqDPJFTI8TvrEU3+Q+ssELntOL2VA3SMsqQ== +"@oclif/core@^3.0.0", "@oclif/core@^3.0.4", "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.3.1": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.11.0.tgz#dadfac39238af3b717e33b910dde1f1f0fd2105e" + integrity sha512-9A2LhDQATf1vrRqPoO0gGuBrey0jt3kDafC+eazxTNWV2EvlEpgY2587iyrxPK/fL2xg7f+0mtxYaSHdO2k8eg== dependencies: ansi-escapes "^4.3.2" ansi-styles "^4.3.0" @@ -753,16 +744,17 @@ 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@^4.0.16": - version "4.0.16" - resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-4.0.16.tgz#50ab214246088d16c86af7ae81b3c5084478571e" - integrity sha512-J4q2e7l7jNxzuS4qvmLPALoFftsRXczE54I2qnFpSp7YC9RyS9cUcBdoXklOsX2yZckj234o5gmGdkAmBAAqHA== +"@oclif/plugin-command-snapshot@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.0.2.tgz#41e88d245e1ffb1822b4cb127df39f61672cf2b1" + integrity sha512-4Aun0P/K9uVC5JLmG968OJhDT5HMiOs4mmw7A2cWmf1Paw8zp4xZ40PvYOOKN86gaKukKFDTQ1sDuLBzqNhZow== dependencies: - "@oclif/core" "^3.5.0" + "@oclif/core" "^3.10.8" "@types/lodash.difference" "^4.5.8" chalk "^5.3.0" just-diff "^5.2.0" @@ -788,18 +780,16 @@ chalk "^4" fast-levenshtein "^3.0.0" -"@oclif/plugin-warn-if-update-available@^2.0.44": - version "2.0.50" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.50.tgz#cfbec336089ca9f8bf9472cea18f1e2610e08b1d" - integrity sha512-+VtxuK31PX49suwkwcR8no0P55KUjvZzfKURTYhveLGAeGHSPLnA60TqB+94+FQN88nlPZncw3867zfwgw6rfw== +"@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.15.0" - 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" @@ -1010,22 +1000,22 @@ dependencies: "@octokit/openapi-types" "^18.0.0" -"@salesforce/cli-plugins-testkit@^4.3.6": - version "4.3.6" - resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-4.3.6.tgz#7d2258d34b1033af81e9531bd4613d2683327eb1" - integrity sha512-gcwXoMA6PtxzXL/Gd5XxlCpiV6Mbb8MehdAWWlmTb7ExfElHqvSPAwZEbim32ACcfJeqVVK0Y1CbRdbmNMNUYw== +"@salesforce/cli-plugins-testkit@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-5.0.4.tgz#523c459f43822d7b24bff5117aeda7f77ed5e26c" + integrity sha512-8pquViVBCd5sF6nBXgLgwymEBE6pSAS376R9qq7rxuV+PSFCC5bnzQaKm2ugY+s5vXKNcV6WcmBHNCQnGv+M7Q== dependencies: - "@salesforce/core" "^5.2.9" - "@salesforce/kit" "^3.0.11" + "@salesforce/core" "^5.3.20" + "@salesforce/kit" "^3.0.15" "@salesforce/ts-types" "^2.0.6" - "@types/shelljs" "^0.8.12" + "@types/shelljs" "^0.8.15" debug "^4.3.1" jszip "^3.10.1" shelljs "^0.8.4" strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.2.7", "@salesforce/core@^5.2.9", "@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.14": +"@salesforce/core@^5.2.7", "@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.14": version "5.3.17" resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.17.tgz#fe7e5b89bdfffc9c1634e0371fab6115b23fe312" integrity sha512-3BYdpRwQrtaTNHINk+NSrXwlr0xZjKSkJWhMeryjGyTGf9YPRu1JNawl6PPbEpGCQp2y+NLUdp6vMy64jwIDBg== @@ -1049,21 +1039,45 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/dev-config@^4.0.1", "@salesforce/dev-config@^4.1.0": +"@salesforce/core@^5.3.20": + version "5.3.20" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.20.tgz#4e934d4551bb70423cb1c4115615bc41cffca41e" + integrity sha512-y+O6O2c8OYFDrAy2qsG+pAcNxoyL14nmBXcBRRcYA7Huj8ikK+aLJK84PuVAYdQz+hNwImQF+69IWtDkpK4Irg== + dependencies: + "@salesforce/kit" "^3.0.15" + "@salesforce/schemas" "^1.6.1" + "@salesforce/ts-types" "^2.0.9" + "@types/semver" "^7.5.4" + ajv "^8.12.0" + change-case "^4.1.2" + faye "^1.4.0" + form-data "^4.0.0" + js2xmlparser "^4.0.1" + jsforce "^2.0.0-beta.28" + jsonwebtoken "9.0.2" + jszip "3.10.1" + pino "^8.16.0" + pino-abstract-transport "^1.0.0" + pino-pretty "^10.2.3" + proper-lockfile "^4.1.2" + semver "^7.5.4" + ts-retry-promise "^0.7.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== -"@salesforce/dev-scripts@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.3.tgz#6cf4504fd0ec8b4685e729b26685eed60f9c8b26" - integrity sha512-WLl1N07oNeRywdypwUrebX/kCkSm3IzmAQpUt4q4Sk8r4vTWv5b6F0pHLv0pGS8/QWNJT7xWGZDF1lgJBHOsmA== +"@salesforce/dev-scripts@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.4.tgz#0043b8ef4b970f8c2f945cc74eada3b1db52fa9a" + integrity sha512-/kdl99bHaNeCoVwfeQhIaKzorcmgpe/nZhlT7ru+If+18NRvBgW5OGmh++Q/NsraaYbsQ/0cDcGNz1dnQ11weA== dependencies: "@commitlint/cli" "^17.1.2" "@commitlint/config-conventional" "^17.1.0" - "@salesforce/dev-config" "^4.0.1" + "@salesforce/dev-config" "^4.1.0" "@salesforce/prettier-config" "^0.0.3" - "@types/chai" "^4.2.11" + "@types/chai" "^4.3.9" "@types/mocha" "^10.0.3" "@types/node" "^18" "@types/sinon" "^10.0.20" @@ -1085,7 +1099,7 @@ typescript "^4.9.5" wireit "^0.14.1" -"@salesforce/kit@^3.0.11", "@salesforce/kit@^3.0.13", "@salesforce/kit@^3.0.15", "@salesforce/kit@^3.0.9": +"@salesforce/kit@^3.0.13", "@salesforce/kit@^3.0.15", "@salesforce/kit@^3.0.9": version "3.0.15" resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.0.15.tgz#713df3f5767f874c70a2e731c7cb5ba677989559" integrity sha512-XkA8jsuLvVnyP460dAbU3pBFP2IkmmmsVxMQVifcKKbNWaIBbZBzAfj+vdaQfnvZyflLhsrFT3q2xkb0vHouPg== @@ -1117,7 +1131,7 @@ resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.6.1.tgz#7d1c071e1e509ca9d2d8a6e48ac7447dd67a534d" integrity sha512-eVy947ZMxCJReKJdgfddUIsBIbPTa/i8RwQGwxq4/ss38H5sLOAeSTaun9V7HpJ1hkpDznWKfgzYvjsst9K6ig== -"@salesforce/sf-plugins-core@^3.1.20", "@salesforce/sf-plugins-core@^3.1.28": +"@salesforce/sf-plugins-core@^3.1.28": version "3.1.28" resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-3.1.28.tgz#7714c5b1ce26052bb5cbc524c5990bc52eb601cd" integrity sha512-Z1fVS/pqLCX/3ESrjvtzyuvDFwXu8qxjqs5Gana0J7RKkhDL0f7w+pz3DR1/YfQPeHK8rk9pFDOKB3tOnXf9Lw== @@ -1129,6 +1143,19 @@ chalk "^4" inquirer "^8.2.5" +"@salesforce/sf-plugins-core@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-4.1.2.tgz#0e03ca012828de8dc30ffccd7ca289c6aa703a2d" + integrity sha512-mjb9mLyfLos4Y+/qhko2mrKgwxMzWipAnR/Inuu9cuw4dK9sCgHl79t4zU+6FyNT2T14Q9md/hDXN5QNg0eGJA== + dependencies: + "@oclif/core" "^3.0.0" + "@salesforce/core" "^5.3.1" + "@salesforce/kit" "^3.0.13" + "@salesforce/ts-types" "^2.0.7" + "@types/inquirer" "^8.2.3" + chalk "^4" + inquirer "^8.2.5" + "@salesforce/ts-sinon@1.4.12": version "1.4.12" resolved "https://registry.yarnpkg.com/@salesforce/ts-sinon/-/ts-sinon-1.4.12.tgz#32ace1c823312d48566a1e32b21afddd9e68eff7" @@ -1232,72 +1259,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.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.20.tgz#e713ed63ef7b8096fb820b7cbd5aa776e824431f" - integrity sha512-ZLk5oVP4v/BAdC3FuBuyB0xpnkZStblIajiyo/kpp/7mq3YbABhOxTCUJGDozISbkaZlIZFXjqvHHnIS42tssw== - -"@swc/core-darwin-x64@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.20.tgz#8f8fe3562da7472be87346ae4a6c1919705b5b9b" - integrity sha512-yM11/3n8PwougalAi9eWkz1r5QRDAg1qdXMSCn7sWlVGr0RvdPL20viKddm38yn+X3FzZzgdoajh7NGfEeqCIQ== - -"@swc/core-linux-arm-gnueabihf@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.20.tgz#3fa68f374f04e9331b3aa7ba1cdc4d59a1cb9cd8" - integrity sha512-Y8YX7Ma7/xdvCR+hwqhU2lNKF7Qevlx3qZ+eGEpz2fP6k5iu8C5arUBjFWdC2OTY11OuD00TH43TgYfbWpU/Sw== - -"@swc/core-linux-arm64-gnu@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.20.tgz#998adffd8d21b63ce6b447cbcc3fa1fae0c2c5d1" - integrity sha512-XCjQj4zo2T4QIqxVgzXkKxTLw4adqMgFG2iXBRRu1kOZXJor7Yzc0wH0B4rGtlkcZnh57MBbo+N1TNzH1leSFw== - -"@swc/core-linux-arm64-musl@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.20.tgz#cb22719d615cd42ab9d89192ead228b2be983238" - integrity sha512-f+fIixoNNaDjmHX0kJn8Lm1Z+CJPHqcYocGaPrXETRAv+8F3Q0rUtxO9FhDKtsG4pI6HRLmS5nBQtBBJWOmfvw== - -"@swc/core-linux-x64-gnu@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.20.tgz#0090804c384ea343f8a39bbeee7a46d93cada714" - integrity sha512-F5TKwsZh3F7CzfYoTAiNwhZazQ02NCgFZSqSwO4lOYbT7RU+zXI3OfLoi2R8f0dzfqh26QSdeeMFPdMb3LpzXg== - -"@swc/core-linux-x64-musl@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.20.tgz#64ed5e489f0bcde67aae973bca5eb94ab16fa8d8" - integrity sha512-svbrCeaWU2N9saeg5yKZ2aQh+eYE6vW7y+ptZHgLIriuhnelg38mNqNjKK9emhshUNqOPLFJbW8kA1P+jOyyLw== - -"@swc/core-win32-arm64-msvc@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.20.tgz#1a0c27cca7a43932fd123d699e67741f9cc73129" - integrity sha512-rFrC8JtVlnyfj5wTAIMvNWqPv0KXUA8/TmEKUlg7jgF/IweFPOFvF509tiAstz16Ui2JKL9xaA566/I+XLd+og== - -"@swc/core-win32-ia32-msvc@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.20.tgz#7873119494214fdc079be4aba17e7851261833e7" - integrity sha512-xIkBDw0Rd0G0SQ/g9FOUqrcmwcq/Iy7ScBQVV/NzziIGIUlrj9l4nYe3VyoMEH2lwAcyGo9AxwiNB0vq6vDjiQ== - -"@swc/core-win32-x64-msvc@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.20.tgz#21b03ea39ea3e2af1a88fa35c0e7ae49adc89d87" - integrity sha512-1/vxiNasPvpCnVdMxGXEXYhRI65l7yNg/AQ9fYLQn3O5ouWJcd60+6ZoeVrnR5i/R87Fyu/A9fMhOJuOKLHXmA== - -"@swc/core@1.3.20": - version "1.3.20" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.20.tgz#1a290a3020cc272ea57f784e7d7669733b25eda2" - integrity sha512-wSuy5mFTbAPYGlo1DGWkTbXwUubpyYxY2Sf10Y861c4EPtwK7D1nbj35Zg0bsIQvcFG5Y2Q4sXNV5QpsnT0+1A== - optionalDependencies: - "@swc/core-darwin-arm64" "1.3.20" - "@swc/core-darwin-x64" "1.3.20" - "@swc/core-linux-arm-gnueabihf" "1.3.20" - "@swc/core-linux-arm64-gnu" "1.3.20" - "@swc/core-linux-arm64-musl" "1.3.20" - "@swc/core-linux-x64-gnu" "1.3.20" - "@swc/core-linux-x64-musl" "1.3.20" - "@swc/core-win32-arm64-msvc" "1.3.20" - "@swc/core-win32-ia32-msvc" "1.3.20" - "@swc/core-win32-x64-msvc" "1.3.20" - "@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" @@ -1345,10 +1306,10 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@^4.2.11": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== +"@types/chai@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.10.tgz#2ad2959d1767edee5b0e4efb1a0cd2b500747317" + integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== "@types/cli-progress@^3.11.0": version "3.11.0" @@ -1400,6 +1361,14 @@ "@types/through" "*" rxjs "^7.2.0" +"@types/inquirer@^8.2.3": + version "8.2.10" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.10.tgz#9444dce2d764c35bc5bb4d742598aaa4acb6561b" + integrity sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA== + dependencies: + "@types/through" "*" + rxjs "^7.2.0" + "@types/js-yaml@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" @@ -1530,7 +1499,12 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== -"@types/shelljs@^0.8.12", "@types/shelljs@^0.8.14": +"@types/semver@^7.5.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" + integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== + +"@types/shelljs@^0.8.14": version "0.8.14" resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.14.tgz#87b8817b2397ffe97b86a4d844036ee0d2a1f0ca" integrity sha512-eqKaGPi60riuxI9pUVeCT02EGo94Y6HT119h7w5bXSELsis6+JqzdEy6H/w2xXl881wcN3VDnb/D0WlgSety5w== @@ -1538,6 +1512,14 @@ "@types/glob" "~7.2.0" "@types/node" "*" +"@types/shelljs@^0.8.15": + version "0.8.15" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.15.tgz#22c6ab9dfe05cec57d8e6cb1a95ea173aee9fcac" + integrity sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q== + dependencies: + "@types/glob" "~7.2.0" + "@types/node" "*" + "@types/sinon@^10.0.20": version "10.0.20" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.20.tgz#f1585debf4c0d99f9938f4111e5479fb74865146" @@ -1608,22 +1590,6 @@ "@types/yeoman-environment" "*" "@types/yeoman-generator" "*" -"@typescript-eslint/eslint-plugin@^5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/eslint-plugin@^6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.1.tgz#d8ce497dc0ed42066e195c8ecc40d45c7b1254f4" @@ -1641,16 +1607,6 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - "@typescript-eslint/parser@^6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.9.1.tgz#4f685f672f8b9580beb38d5fb99d52fc3e34f7a3" @@ -1670,6 +1626,14 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" +"@typescript-eslint/scope-manager@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" + integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== + dependencies: + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.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" @@ -1678,16 +1642,6 @@ "@typescript-eslint/types" "6.9.1" "@typescript-eslint/visitor-keys" "6.9.1" -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - "@typescript-eslint/type-utils@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.9.1.tgz#efd5db20ed35a74d3c7d8fba51b830ecba09ce32" @@ -1703,6 +1657,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" + integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== + "@typescript-eslint/types@6.9.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.1.tgz#a6cfc20db0fcedcb2f397ea728ef583e0ee72459" @@ -1721,6 +1680,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" + integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== + dependencies: + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.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" @@ -1734,7 +1706,20 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.59.11": +"@typescript-eslint/utils@6.9.1": + version "6.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.9.1.tgz#763da41281ef0d16974517b5f0d02d85897a1c1e" + integrity sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.9.1" + "@typescript-eslint/types" "6.9.1" + "@typescript-eslint/typescript-estree" "6.9.1" + semver "^7.5.4" + +"@typescript-eslint/utils@^5.59.11": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== @@ -1748,17 +1733,17 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.9.1.tgz#763da41281ef0d16974517b5f0d02d85897a1c1e" - integrity sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA== +"@typescript-eslint/utils@^6.10.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" + integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.9.1" - "@typescript-eslint/types" "6.9.1" - "@typescript-eslint/typescript-estree" "6.9.1" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/typescript-estree" "6.11.0" semver "^7.5.4" "@typescript-eslint/visitor-keys@5.62.0": @@ -1769,6 +1754,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" + integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== + dependencies: + "@typescript-eslint/types" "6.11.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" @@ -1777,11 +1770,6 @@ "@typescript-eslint/types" "6.9.1" eslint-visitor-keys "^3.4.1" -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -1993,7 +1981,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.6, array-includes@^3.1.7: +array-includes@^3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -2009,7 +1997,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.2, array.prototype.findlastindex@^1.2.3: +array.prototype.findlastindex@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== @@ -2020,7 +2008,7 @@ array.prototype.findlastindex@^1.2.2, array.prototype.findlastindex@^1.2.3: es-shim-unscopables "^1.0.0" get-intrinsic "^1.2.1" -array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: +array.prototype.flat@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== @@ -2030,7 +2018,7 @@ array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: +array.prototype.flatmap@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -2078,6 +2066,13 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" @@ -2088,11 +2083,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" @@ -2434,7 +2424,7 @@ chalk@^5.3.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -change-case@^4.1.2: +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== @@ -2675,11 +2665,6 @@ commander@^9.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -comment-parser@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== - comment-parser@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.0.tgz#0f8c560f59698193854f12884c20c0e39a26d32c" @@ -2708,21 +2693,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" @@ -2864,13 +2834,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.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" - integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== - dependencies: - "@babel/runtime" "^7.21.0" - dateformat@^4.5.0, dateformat@^4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" @@ -2883,13 +2846,6 @@ debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, de dependencies: ms "2.1.2" -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3214,11 +3170,6 @@ 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== -eslint-config-prettier@^8.10.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== - 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" @@ -3229,11 +3180,6 @@ 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@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-1.1.1.tgz#fb038f6423c5472d6439e9f780184b00ebcd2685" - integrity sha512-cjj2tU5wkushOUynecjg0JQtb/y61pWSjtOKKnNzWEdtbZEs7pe1/w5hsaZ79urdeFFUHQW2mr3qpzsWzUjgxQ== - eslint-config-salesforce-typescript@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-3.0.2.tgz#25e9e8797a109828a63a3893a15613c8ecefa1bf" @@ -3250,12 +3196,12 @@ eslint-config-salesforce-typescript@^3.0.1: eslint-plugin-jsdoc "^46.8.2" eslint-plugin-unicorn "^49.0.0" -eslint-config-salesforce@^2.0.1, eslint-config-salesforce@^2.0.2: +eslint-config-salesforce@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/eslint-config-salesforce/-/eslint-config-salesforce-2.0.2.tgz#38eb2d8eb2824c66967ed9b45bc92082eba2f225" integrity sha512-3jbrI+QFu/KaQbPYIBxItB3okqUtA4EBCGiR6s2kcUMIZBLBBGAURW0k62f9WAv1EagR3eUoO0m9ru7LTj2F5Q== -eslint-import-resolver-node@^0.3.7, eslint-import-resolver-node@^0.3.9: +eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -3276,30 +3222,6 @@ eslint-plugin-header@^3.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== -eslint-plugin-import@2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" - integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== - dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.12.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" - resolve "^1.22.3" - semver "^6.3.1" - tsconfig-paths "^3.14.2" - eslint-plugin-import@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" @@ -3323,20 +3245,6 @@ eslint-plugin-import@^2.29.0: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-jsdoc@^43.0.5: - version "43.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.2.0.tgz#9d0df2329100a6956635f26211d0723c3ff91f15" - integrity sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ== - dependencies: - "@es-joy/jsdoccomment" "~0.38.0" - are-docs-informative "^0.0.2" - comment-parser "1.3.1" - debug "^4.3.4" - escape-string-regexp "^4.0.0" - esquery "^1.5.0" - semver "^7.5.0" - spdx-expression-parse "^3.0.1" - eslint-plugin-jsdoc@^46.8.2: version "46.8.2" resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz#3e6b1c93e91e38fe01874d45da121b56393c54a5" @@ -3352,6 +3260,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.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.3.0.tgz#c01388fb7b9aa4fa036be879ed06bfd581f9f50d" + integrity sha512-T/1HOysrsyExPr/N5apy3XFhejYqIturtejlSbTGy0WCw5dt72FDT92NOvRRKJvx8lftZDJ8AEIs5nHk9Pfa9Q== + dependencies: + "@typescript-eslint/utils" "^6.10.0" + minimatch "^9.0.3" + natural-compare-lite "^1.4.0" + eslint-plugin-sf-plugin@^1.16.5: version "1.16.5" resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.5.tgz#41a9153e270625776e2a05ef6add3f27090b091f" @@ -3766,16 +3683,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" @@ -4054,11 +3961,6 @@ grouped-queue@^2.0.0: resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - handlebars@^4.7.8: version "4.7.8" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" @@ -4460,7 +4362,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -5019,6 +4921,11 @@ 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" @@ -5114,6 +5021,21 @@ lodash.startcase@^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" @@ -5356,13 +5278,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - minimatch@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -5391,6 +5306,13 @@ minimatch@^7.2.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" @@ -5524,36 +5446,6 @@ mocha@^10.2.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -mocha@^9.1.3: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.3" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - growl "1.10.5" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "4.2.1" - ms "2.1.3" - nanoid "3.3.1" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - workerpool "6.2.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - mri@^1.1.5: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -5604,11 +5496,6 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -5912,7 +5799,7 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.fromentries@^2.0.6, object.fromentries@^2.0.7: +object.fromentries@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== @@ -5921,7 +5808,7 @@ object.fromentries@^2.0.6, object.fromentries@^2.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -object.groupby@^1.0.0, object.groupby@^1.0.1: +object.groupby@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== @@ -5931,7 +5818,7 @@ object.groupby@^1.0.0, object.groupby@^1.0.1: es-abstract "^1.22.1" get-intrinsic "^1.2.1" -object.values@^1.1.6, object.values@^1.1.7: +object.values@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -5945,27 +5832,27 @@ obliterator@^2.0.2: resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== -oclif@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-3.15.0.tgz#8e421f97cddd0c355cbd0aad3b68410a92a480b8" - integrity sha512-iwIjseO6Zuw1X66bN268yVuT6U7Qfwcp4CP4FZ/fd/a81eqQ6CTSCfeInjn/uDhfC/U01KrbNZPIZCMkjWHzxA== +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" @@ -6363,7 +6250,7 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-quick@^3.1.0, pretty-quick@^3.1.3: +pretty-quick@^3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== @@ -6702,7 +6589,7 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.3, resolve@^1.22.4: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -6726,6 +6613,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -6762,7 +6654,7 @@ rxjs@^6.4.0, 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.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -6850,7 +6742,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0, semver@^7.5.4: +semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -6931,11 +6823,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.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - 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" @@ -7093,11 +6980,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" @@ -7273,7 +7155,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== @@ -7401,11 +7283,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" @@ -7434,7 +7311,7 @@ ts-json-schema-generator@^1.4.0: safe-stable-stringify "^2.4.3" typescript "~5.2.2" -ts-node@^10.4.0, ts-node@^10.8.1, ts-node@^10.9.1: +ts-node@^10.8.1, ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -7458,6 +7335,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" @@ -7473,7 +7355,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.0, tslib@^2.6.2: +tslib@^2, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.0, 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== @@ -7590,7 +7472,7 @@ typedoc@0.23.16: minimatch "^5.1.0" shiki "^0.11.1" -"typescript@^4.6.4 || ^5.0.0", typescript@~5.2.2: +"typescript@^4.6.4 || ^5.0.0", 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== @@ -7871,13 +7753,6 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@2.0.2, which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -7885,6 +7760,13 @@ which@^1.2.9: dependencies: isexe "^2.0.0" +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.2, wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" @@ -7899,7 +7781,7 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -wireit@^0.14.0, wireit@^0.14.1: +wireit@^0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/wireit/-/wireit-0.14.1.tgz#83b63598503573db6722ad49b1fe15b57ee71890" integrity sha512-q5sixPM/vKQEpyaub6J9QoHAFAF9g4zBdnjoYelH9/RLAekcUf3x1dmFLACGZ6nYjqehCsTlXC1irmzU7znPhA== @@ -7915,11 +7797,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== - workerpool@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" @@ -8072,7 +7949,7 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.0, yargs@^17.2.1, yargs@^17.3.1: +yargs@^17.0.0, yargs@^17.2.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From 63c8b2b10781105e1f601517661bbb33d02306e4 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 14 Nov 2023 10:16:11 -0700 Subject: [PATCH 02/11] fix: remove all requires --- src/generators/command.ts | 2 +- src/generators/library.ts | 2 +- src/generators/plugin.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/generators/command.ts b/src/generators/command.ts index a279ffd8..6e076c6e 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -12,7 +12,7 @@ import { pascalCase } from 'change-case'; import { set } from '@salesforce/kit'; import { get } from '@salesforce/ts-types'; import shelljs from 'shelljs'; -import defaultsDeep = require('lodash.defaultsdeep'); +import defaultsDeep from 'lodash.defaultsdeep'; import { PackageJson, Topic } from '../types.js'; export interface CommandGeneratorOptions extends Generator.GeneratorOptions { diff --git a/src/generators/library.ts b/src/generators/library.ts index e96f4ecc..96bf3d00 100644 --- a/src/generators/library.ts +++ b/src/generators/library.ts @@ -10,7 +10,7 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import Generator from 'yeoman-generator'; import shelljs from 'shelljs'; -import replace = require('replace-in-file'); +import replace from 'replace-in-file'; import { PackageJson } from '../types.js'; import { readJson } from '../util.js'; diff --git a/src/generators/plugin.ts b/src/generators/plugin.ts index 7f3630ee..ddbf3718 100644 --- a/src/generators/plugin.ts +++ b/src/generators/plugin.ts @@ -10,7 +10,7 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import Generator from 'yeoman-generator'; import shelljs from 'shelljs'; -import replace = require('replace-in-file'); +import replace from 'replace-in-file'; import { Messages } from '@salesforce/core'; import { NYC, PackageJson } from '../types.js'; import { readJson, validatePluginName } from '../util.js'; From 00ff1cc0fc2b14b50848d3f3499aaba2348d5491 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 14 Nov 2023 11:39:29 -0700 Subject: [PATCH 03/11] fix: replace require.resolve --- src/util.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/util.ts b/src/util.ts index 07257e7e..c72af5a2 100644 --- a/src/util.ts +++ b/src/util.ts @@ -6,12 +6,13 @@ */ import fs from 'node:fs'; import os from 'node:os'; +import { createRequire } from 'node:module'; import yeoman from 'yeoman-environment'; import { FlagAnswers } from './types.js'; export function generate(type: string, generatorOptions: Record = {}): Promise { const env = yeoman.createEnv(); - env.register(require.resolve(`./generators/${type}`), `sf:${type}`); + env.register(createRequire(import.meta.url).resolve(`./generators/${type}`), `sf:${type}`); return env.run(`sf:${type}`, generatorOptions); } From ff487146484f43ad7b228042383245b1ed4807ab Mon Sep 17 00:00:00 2001 From: mshanemc Date: Mon, 20 Nov 2023 14:37:28 -0600 Subject: [PATCH 04/11] chore: major version bumps --- package.json | 5 +- yarn.lock | 169 ++++++++++----------------------------------------- 2 files changed, 34 insertions(+), 140 deletions(-) diff --git a/package.json b/package.json index f29d2212..3488849f 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "dependencies": { "@oclif/core": "^3.11.0", "@octokit/rest": "^19.0.13", - "@salesforce/core": "^5.3.14", + "@salesforce/core": "^6.1.4", "@salesforce/kit": "^3.0.9", - "@salesforce/sf-plugins-core": "^4.1.2", + "@salesforce/sf-plugins-core": "^5.0.2", "@salesforce/ts-types": "^2.0.8", "change-case": "^4.1.2", "fast-glob": "^3.3.2", @@ -27,7 +27,6 @@ "@salesforce/cli-plugins-testkit": "^5.0.4", "@salesforce/dev-scripts": "^6.0.4", "@salesforce/plugin-command-reference": "^3.0.45", - "@salesforce/ts-sinon": "1.4.12", "@types/js-yaml": "^4.0.5", "@types/lodash.defaultsdeep": "^4.6.7", "@types/shelljs": "^0.8.14", diff --git a/yarn.lock b/yarn.lock index f598429f..0d115dd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -717,7 +717,7 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^3.0.0", "@oclif/core@^3.0.4", "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.3.1": +"@oclif/core@^3.0.4", "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.3.1": version "3.11.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.11.0.tgz#dadfac39238af3b717e33b910dde1f1f0fd2105e" integrity sha512-9A2LhDQATf1vrRqPoO0gGuBrey0jt3kDafC+eazxTNWV2EvlEpgY2587iyrxPK/fL2xg7f+0mtxYaSHdO2k8eg== @@ -1015,15 +1015,15 @@ strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.2.7", "@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.14": - version "5.3.17" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.17.tgz#fe7e5b89bdfffc9c1634e0371fab6115b23fe312" - integrity sha512-3BYdpRwQrtaTNHINk+NSrXwlr0xZjKSkJWhMeryjGyTGf9YPRu1JNawl6PPbEpGCQp2y+NLUdp6vMy64jwIDBg== +"@salesforce/core@^5.2.7", "@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.20": + version "5.3.20" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.20.tgz#4e934d4551bb70423cb1c4115615bc41cffca41e" + integrity sha512-y+O6O2c8OYFDrAy2qsG+pAcNxoyL14nmBXcBRRcYA7Huj8ikK+aLJK84PuVAYdQz+hNwImQF+69IWtDkpK4Irg== dependencies: "@salesforce/kit" "^3.0.15" "@salesforce/schemas" "^1.6.1" "@salesforce/ts-types" "^2.0.9" - "@types/semver" "^7.5.3" + "@types/semver" "^7.5.4" ajv "^8.12.0" change-case "^4.1.2" faye "^1.4.0" @@ -1039,10 +1039,10 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.3.20": - version "5.3.20" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.20.tgz#4e934d4551bb70423cb1c4115615bc41cffca41e" - integrity sha512-y+O6O2c8OYFDrAy2qsG+pAcNxoyL14nmBXcBRRcYA7Huj8ikK+aLJK84PuVAYdQz+hNwImQF+69IWtDkpK4Irg== +"@salesforce/core@^6.1.3", "@salesforce/core@^6.1.4": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-6.1.4.tgz#5c9d90490ab8688f9497fef63134a43f1cbe0f70" + integrity sha512-/1hhcpMyx3DaFrxZ/il0a8yUapRRuWzUlxUntahp9ELo/Fx7FiE7o2g0jh8AxAqfb4LKu1mV8sV656liClx6sA== dependencies: "@salesforce/kit" "^3.0.15" "@salesforce/schemas" "^1.6.1" @@ -1056,8 +1056,8 @@ jsforce "^2.0.0-beta.28" jsonwebtoken "9.0.2" jszip "3.10.1" - pino "^8.16.0" - pino-abstract-transport "^1.0.0" + pino "^8.16.2" + pino-abstract-transport "^1.1.0" pino-pretty "^10.2.3" proper-lockfile "^4.1.2" semver "^7.5.4" @@ -1143,29 +1143,20 @@ chalk "^4" inquirer "^8.2.5" -"@salesforce/sf-plugins-core@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-4.1.2.tgz#0e03ca012828de8dc30ffccd7ca289c6aa703a2d" - integrity sha512-mjb9mLyfLos4Y+/qhko2mrKgwxMzWipAnR/Inuu9cuw4dK9sCgHl79t4zU+6FyNT2T14Q9md/hDXN5QNg0eGJA== +"@salesforce/sf-plugins-core@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-5.0.2.tgz#e102e10a3db4fbcccc2dd22d60acaecef7e0af25" + integrity sha512-76mARkIufJJ4HAW5p2UVrF17g1Fqy5Gc5NuXt/GOsxROqj281o3x4DBSrEhJE3zrD9cqfboiMa8OB9CGpMJ74Q== dependencies: - "@oclif/core" "^3.0.0" - "@salesforce/core" "^5.3.1" - "@salesforce/kit" "^3.0.13" - "@salesforce/ts-types" "^2.0.7" + "@oclif/core" "^3.11.0" + "@salesforce/core" "^6.1.3" + "@salesforce/kit" "^3.0.15" + "@salesforce/ts-types" "^2.0.9" "@types/inquirer" "^8.2.3" chalk "^4" inquirer "^8.2.5" -"@salesforce/ts-sinon@1.4.12": - version "1.4.12" - resolved "https://registry.yarnpkg.com/@salesforce/ts-sinon/-/ts-sinon-1.4.12.tgz#32ace1c823312d48566a1e32b21afddd9e68eff7" - integrity sha512-PSksX6flCKbWenghItnX8PvKepTlb/Ax8cgSyr8Y46xTDiE/UwmTBNnrf23HkgsNihwRhNbPXlucG1rDerO00A== - dependencies: - "@salesforce/ts-types" "^2.0.5" - sinon "^5.1.1" - tslib "^2.6.0" - -"@salesforce/ts-types@^2.0.5", "@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.7", "@salesforce/ts-types@^2.0.8", "@salesforce/ts-types@^2.0.9": +"@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.7", "@salesforce/ts-types@^2.0.8", "@salesforce/ts-types@^2.0.9": version "2.0.9" resolved "https://registry.yarnpkg.com/@salesforce/ts-types/-/ts-types-2.0.9.tgz#66bff7b41720065d6b01631b6f6a3ccca02857c5" integrity sha512-boUD9jw5vQpTCPCCmK/NFTWjSuuW+lsaxOynkyNXLW+zxOc4GDjhtKc4j0vWZJQvolpafbyS8ZLFHZJvs12gYA== @@ -1177,7 +1168,7 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== @@ -1212,30 +1203,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== - dependencies: - samsam "1.3.0" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - "@sinonjs/samsam@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" @@ -1353,15 +1320,7 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/inquirer@^8": - version "8.2.6" - resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.6.tgz#abd41a5fb689c7f1acb12933d787d4262a02a0ab" - integrity sha512-3uT88kxg8lNzY8ay2ZjP44DKcRaTGztqeIvN2zHvhzIBH/uAPaL75aBtdNRKbA7xXoMbBt5kX0M00VKAnfOYlA== - dependencies: - "@types/through" "*" - rxjs "^7.2.0" - -"@types/inquirer@^8.2.3": +"@types/inquirer@^8", "@types/inquirer@^8.2.3": version "8.2.10" resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.10.tgz#9444dce2d764c35bc5bb4d742598aaa4acb6561b" integrity sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA== @@ -1494,25 +1453,12 @@ dependencies: "@types/node" "*" -"@types/semver@^7.3.12", "@types/semver@^7.5.0", "@types/semver@^7.5.3": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== - -"@types/semver@^7.5.4": +"@types/semver@^7.3.12", "@types/semver@^7.5.0", "@types/semver@^7.5.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== -"@types/shelljs@^0.8.14": - version "0.8.14" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.14.tgz#87b8817b2397ffe97b86a4d844036ee0d2a1f0ca" - integrity sha512-eqKaGPi60riuxI9pUVeCT02EGo94Y6HT119h7w5bXSELsis6+JqzdEy6H/w2xXl881wcN3VDnb/D0WlgSety5w== - dependencies: - "@types/glob" "~7.2.0" - "@types/node" "*" - -"@types/shelljs@^0.8.15": +"@types/shelljs@^0.8.14", "@types/shelljs@^0.8.15": version "0.8.15" resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.15.tgz#22c6ab9dfe05cec57d8e6cb1a95ea173aee9fcac" integrity sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q== @@ -1971,11 +1917,6 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -2969,11 +2910,6 @@ diff@5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diff@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diff@^4.0.1, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -5059,18 +4995,6 @@ log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -lolex@^2.4.2: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" - integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== - -lolex@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - loupe@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" @@ -5531,17 +5455,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^1.3.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" - integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - nise@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" @@ -6163,7 +6076,7 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pino-abstract-transport@^1.0.0, pino-abstract-transport@v1.1.0: +pino-abstract-transport@^1.0.0, pino-abstract-transport@^1.1.0, pino-abstract-transport@v1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz#083d98f966262164504afb989bccd05f665937a8" integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== @@ -6196,10 +6109,10 @@ pino-std-serializers@^6.0.0: resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== -pino@^8.16.0: - version "8.16.1" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.1.tgz#dcaf82764b1a27f24101317cdd6453e96290f1d9" - integrity sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA== +pino@^8.16.0, pino@^8.16.2: + version "8.16.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" + integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" @@ -6700,11 +6613,6 @@ safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== - sax@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -6887,19 +6795,6 @@ sinon@^10.0.0: nise "^5.0.1" supports-color "^7.1.0" -sinon@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" - integrity sha512-h/3uHscbt5pQNxkf7Y/Lb9/OM44YNCicHakcq73ncbrIS8lXg+ZGOZbtuU+/km4YnyiCYfQQEwANaReJz7KDfw== - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.5.0" - lodash.get "^4.4.2" - lolex "^2.4.2" - nise "^1.3.3" - supports-color "^5.4.0" - type-detect "^4.0.8" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -7162,7 +7057,7 @@ supports-color@8.1.1, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -7355,7 +7250,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.5.0, tslib@^2.6.0, tslib@^2.6.2: +tslib@^2, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, 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== From 2f9543f50a667ae0d1976f6fe8f1b9c354227f95 Mon Sep 17 00:00:00 2001 From: mshanemc Date: Mon, 20 Nov 2023 14:56:21 -0600 Subject: [PATCH 05/11] chore: bump some deps --- package.json | 12 +- yarn.lock | 392 +++++++++++++++++++++++++-------------------------- 2 files changed, 199 insertions(+), 205 deletions(-) diff --git a/package.json b/package.json index 3488849f..f5b84a33 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "author": "Salesforce", "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": { - "@oclif/core": "^3.11.0", + "@oclif/core": "^3.12.0", "@octokit/rest": "^19.0.13", "@salesforce/core": "^6.1.4", - "@salesforce/kit": "^3.0.9", + "@salesforce/kit": "^3.0.15", "@salesforce/sf-plugins-core": "^5.0.2", - "@salesforce/ts-types": "^2.0.8", - "change-case": "^4.1.2", + "@salesforce/ts-types": "^2.0.9", + "change-case": "^5.2.0", "fast-glob": "^3.3.2", "graphology": "^0.25.1", "graphology-types": "^0.24.7", @@ -25,8 +25,8 @@ "devDependencies": { "@oclif/plugin-command-snapshot": "^5.0.2", "@salesforce/cli-plugins-testkit": "^5.0.4", - "@salesforce/dev-scripts": "^6.0.4", - "@salesforce/plugin-command-reference": "^3.0.45", + "@salesforce/dev-scripts": "^7.1.1", + "@salesforce/plugin-command-reference": "^3.0.47", "@types/js-yaml": "^4.0.5", "@types/lodash.defaultsdeep": "^4.6.7", "@types/shelljs": "^0.8.14", diff --git a/yarn.lock b/yarn.lock index 0d115dd5..d61f910a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -380,12 +380,12 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@es-joy/jsdoccomment@~0.40.1": - version "0.40.1" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz#13acd77fb372ed1c83b7355edd865a3b370c9ec4" - integrity sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg== +"@es-joy/jsdoccomment@~0.41.0": + version "0.41.0" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz#4a2f7db42209c0425c71a1476ef1bdb6dcd836f6" + integrity sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw== dependencies: - comment-parser "1.4.0" + comment-parser "1.4.1" esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" @@ -401,10 +401,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -416,10 +416,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.52.0": - version "8.52.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" - integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" @@ -717,10 +717,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^3.0.4", "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.3.1": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.11.0.tgz#dadfac39238af3b717e33b910dde1f1f0fd2105e" - integrity sha512-9A2LhDQATf1vrRqPoO0gGuBrey0jt3kDafC+eazxTNWV2EvlEpgY2587iyrxPK/fL2xg7f+0mtxYaSHdO2k8eg== +"@oclif/core@^3.0.0", "@oclif/core@^3.0.4", "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.12.0", "@oclif/core@^3.3.1": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.12.0.tgz#4b38b1b5dab2f7585f89c3927a8a157b258b4bd6" + integrity sha512-mT1Vpd1E20IJ7P6GDYOivylPdTHq/xVgFjeCDjitFW86UAklFM8BEFyFB7KpsTvpmjRbCoda3yU10lSI1224lw== dependencies: ansi-escapes "^4.3.2" ansi-styles "^4.3.0" @@ -728,6 +728,7 @@ chalk "^4.1.2" clean-stack "^3.0.1" cli-progress "^3.12.0" + color "^4.2.3" debug "^4.3.4" ejs "^3.1.9" get-package-type "^0.1.0" @@ -1015,7 +1016,7 @@ strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.2.7", "@salesforce/core@^5.3.1", "@salesforce/core@^5.3.10", "@salesforce/core@^5.3.20": +"@salesforce/core@^5.2.7", "@salesforce/core@^5.3.20": version "5.3.20" resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.20.tgz#4e934d4551bb70423cb1c4115615bc41cffca41e" integrity sha512-y+O6O2c8OYFDrAy2qsG+pAcNxoyL14nmBXcBRRcYA7Huj8ikK+aLJK84PuVAYdQz+hNwImQF+69IWtDkpK4Irg== @@ -1039,7 +1040,7 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/core@^6.1.3", "@salesforce/core@^6.1.4": +"@salesforce/core@^6.1.0", "@salesforce/core@^6.1.3", "@salesforce/core@^6.1.4": version "6.1.4" resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-6.1.4.tgz#5c9d90490ab8688f9497fef63134a43f1cbe0f70" integrity sha512-/1hhcpMyx3DaFrxZ/il0a8yUapRRuWzUlxUntahp9ELo/Fx7FiE7o2g0jh8AxAqfb4LKu1mV8sV656liClx6sA== @@ -1068,38 +1069,38 @@ resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-4.1.0.tgz#e529576466d074e7a5f1441236510fef123da01e" integrity sha512-2iDDepiIwjXHS5IVY7pwv8jMo4xWosJ7p/UTj+lllpB/gnJiYLhjJPE4Z3FCGFKyvfg5jGaimCd8Ca6bLGsCQA== -"@salesforce/dev-scripts@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.4.tgz#0043b8ef4b970f8c2f945cc74eada3b1db52fa9a" - integrity sha512-/kdl99bHaNeCoVwfeQhIaKzorcmgpe/nZhlT7ru+If+18NRvBgW5OGmh++Q/NsraaYbsQ/0cDcGNz1dnQ11weA== +"@salesforce/dev-scripts@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-7.1.1.tgz#549b58fb7e8c2410ce594c46f780a0907618f19f" + integrity sha512-6SL+QDOMZCnmU4Lu2ZCjqsMRcHw96mnjUOPE7b2HcfmfPo2a/hAYUtv8v7UsZ/+3UPbSf+XsLJfUsF15QIUWrg== dependencies: "@commitlint/cli" "^17.1.2" "@commitlint/config-conventional" "^17.1.0" "@salesforce/dev-config" "^4.1.0" "@salesforce/prettier-config" "^0.0.3" - "@types/chai" "^4.3.9" - "@types/mocha" "^10.0.3" + "@types/chai" "^4.3.10" + "@types/mocha" "^10.0.4" "@types/node" "^18" "@types/sinon" "^10.0.20" chai "^4.3.10" chalk "^4.0.0" cosmiconfig "^7.0.0" - eslint-config-salesforce-typescript "^3.0.1" + eslint-config-salesforce-typescript "^3.0.5" husky "^7.0.4" mocha "^10.2.0" nyc "^15.1.0" prettier "^2.8.8" - pretty-quick "^3.1.0" - shelljs "~0.8.4" + pretty-quick "^3.1.3" + shelljs "^0.8.5" sinon "10.0.0" - source-map-support "~0.5.19" + source-map-support "^0.5.21" ts-node "^10.9.1" - typedoc "0.23.16" + typedoc "^0.25.3" typedoc-plugin-missing-exports "0.23.0" typescript "^4.9.5" wireit "^0.14.1" -"@salesforce/kit@^3.0.13", "@salesforce/kit@^3.0.15", "@salesforce/kit@^3.0.9": +"@salesforce/kit@^3.0.15": version "3.0.15" resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.0.15.tgz#713df3f5767f874c70a2e731c7cb5ba677989559" integrity sha512-XkA8jsuLvVnyP460dAbU3pBFP2IkmmmsVxMQVifcKKbNWaIBbZBzAfj+vdaQfnvZyflLhsrFT3q2xkb0vHouPg== @@ -1107,15 +1108,15 @@ "@salesforce/ts-types" "^2.0.9" tslib "^2.6.2" -"@salesforce/plugin-command-reference@^3.0.45": - version "3.0.45" - resolved "https://registry.yarnpkg.com/@salesforce/plugin-command-reference/-/plugin-command-reference-3.0.45.tgz#6606df9f59bdd62acd091a4e5e7f9ea10681f1da" - integrity sha512-qtUO0TL2wf9Pk023k0YsmgnAcVs3tWilhH37rUTHPBsXBI655u+iwj1Da8hh28zOgd6Nb3hZJmrsUsMaruiEYQ== +"@salesforce/plugin-command-reference@^3.0.47": + version "3.0.47" + resolved "https://registry.yarnpkg.com/@salesforce/plugin-command-reference/-/plugin-command-reference-3.0.47.tgz#477c3384402ef08458f4259b100447e136384e85" + integrity sha512-A3syaw8bf8Bovne6WDiYOcOeLFKTqf1T+MXlxXPwDkDM0X5squkwVvE6wun7S54Q3n4gCSlCPiAMbJfpF8wwaw== dependencies: - "@oclif/core" "^2.15.0" - "@salesforce/core" "^5.3.10" + "@oclif/core" "^3.0.0" + "@salesforce/core" "^5.3.20" "@salesforce/kit" "^3.0.15" - "@salesforce/sf-plugins-core" "^3.1.28" + "@salesforce/sf-plugins-core" "^4" "@salesforce/ts-types" "^2.0.9" chalk "^4" handlebars "^4.7.8" @@ -1131,15 +1132,16 @@ resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.6.1.tgz#7d1c071e1e509ca9d2d8a6e48ac7447dd67a534d" integrity sha512-eVy947ZMxCJReKJdgfddUIsBIbPTa/i8RwQGwxq4/ss38H5sLOAeSTaun9V7HpJ1hkpDznWKfgzYvjsst9K6ig== -"@salesforce/sf-plugins-core@^3.1.28": - version "3.1.28" - resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-3.1.28.tgz#7714c5b1ce26052bb5cbc524c5990bc52eb601cd" - integrity sha512-Z1fVS/pqLCX/3ESrjvtzyuvDFwXu8qxjqs5Gana0J7RKkhDL0f7w+pz3DR1/YfQPeHK8rk9pFDOKB3tOnXf9Lw== +"@salesforce/sf-plugins-core@^4": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-4.1.3.tgz#06fa96fec1903fe945def9303eb8c43058625a3d" + integrity sha512-cia0FRknxeQU0IK5gOxlP2KGxqc5zxwSmHLKJsd5+sUFWpn3Hnun/3rDO94UXIDjuGKV7HK08hQNBKkSLeYaRA== dependencies: - "@oclif/core" "^2.15.0" - "@salesforce/core" "^5.3.1" - "@salesforce/kit" "^3.0.13" - "@salesforce/ts-types" "^2.0.7" + "@oclif/core" "^3.11.0" + "@salesforce/core" "^6.1.0" + "@salesforce/kit" "^3.0.15" + "@salesforce/ts-types" "^2.0.9" + "@types/inquirer" "^8.2.3" chalk "^4" inquirer "^8.2.5" @@ -1156,7 +1158,7 @@ chalk "^4" inquirer "^8.2.5" -"@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.7", "@salesforce/ts-types@^2.0.8", "@salesforce/ts-types@^2.0.9": +"@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.9": version "2.0.9" resolved "https://registry.yarnpkg.com/@salesforce/ts-types/-/ts-types-2.0.9.tgz#66bff7b41720065d6b01631b6f6a3ccca02857c5" integrity sha512-boUD9jw5vQpTCPCCmK/NFTWjSuuW+lsaxOynkyNXLW+zxOc4GDjhtKc4j0vWZJQvolpafbyS8ZLFHZJvs12gYA== @@ -1273,7 +1275,7 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@^4.3.9": +"@types/chai@^4.3.10": version "4.3.10" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.10.tgz#2ad2959d1767edee5b0e4efb1a0cd2b500747317" integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== @@ -1404,10 +1406,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/mocha@^10.0.3": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.3.tgz#4804fe9cd39da26eb62fa65c15ea77615a187812" - integrity sha512-RsOPImTriV/OE4A9qKjMtk2MnXiuLLbcO3nCXK+kvq4nr0iMfFgpjaX3MPLb6f7+EL1FGSelYvuJMV6REH+ZPQ== +"@types/mocha@^10.0.4": + version "10.0.4" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.4.tgz#b5331955ebca216604691fd4fcd2dbdc2bd559a4" + integrity sha512-xKU7bUjiFTIttpWaIZ9qvgg+22O1nmbA+HRxdlR+u6TWsGfmFdXrheJoK4fFxrHNVIOBDvDNKZG+LYBpMHpX3w== "@types/ms@*": version "0.7.31" @@ -1536,16 +1538,16 @@ "@types/yeoman-environment" "*" "@types/yeoman-generator" "*" -"@typescript-eslint/eslint-plugin@^6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.1.tgz#d8ce497dc0ed42066e195c8ecc40d45c7b1254f4" - integrity sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg== +"@typescript-eslint/eslint-plugin@^6.10.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" + integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.9.1" - "@typescript-eslint/type-utils" "6.9.1" - "@typescript-eslint/utils" "6.9.1" - "@typescript-eslint/visitor-keys" "6.9.1" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/type-utils" "6.12.0" + "@typescript-eslint/utils" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1553,15 +1555,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.9.1.tgz#4f685f672f8b9580beb38d5fb99d52fc3e34f7a3" - integrity sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg== +"@typescript-eslint/parser@^6.10.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" + integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== dependencies: - "@typescript-eslint/scope-manager" "6.9.1" - "@typescript-eslint/types" "6.9.1" - "@typescript-eslint/typescript-estree" "6.9.1" - "@typescript-eslint/visitor-keys" "6.9.1" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -1572,29 +1574,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" - integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== - dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.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" - integrity sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg== +"@typescript-eslint/scope-manager@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" + integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== dependencies: - "@typescript-eslint/types" "6.9.1" - "@typescript-eslint/visitor-keys" "6.9.1" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" -"@typescript-eslint/type-utils@6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.9.1.tgz#efd5db20ed35a74d3c7d8fba51b830ecba09ce32" - integrity sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg== +"@typescript-eslint/type-utils@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" + integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== dependencies: - "@typescript-eslint/typescript-estree" "6.9.1" - "@typescript-eslint/utils" "6.9.1" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/utils" "6.12.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -1603,15 +1597,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" - integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== - -"@typescript-eslint/types@6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.1.tgz#a6cfc20db0fcedcb2f397ea728ef583e0ee72459" - integrity sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ== +"@typescript-eslint/types@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" + integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -1626,43 +1615,30 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" - integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== - dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.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" - integrity sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw== +"@typescript-eslint/typescript-estree@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" + integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== dependencies: - "@typescript-eslint/types" "6.9.1" - "@typescript-eslint/visitor-keys" "6.9.1" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.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/utils@6.9.1": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.9.1.tgz#763da41281ef0d16974517b5f0d02d85897a1c1e" - integrity sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA== +"@typescript-eslint/utils@6.12.0", "@typescript-eslint/utils@^6.10.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" + integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.9.1" - "@typescript-eslint/types" "6.9.1" - "@typescript-eslint/typescript-estree" "6.9.1" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" semver "^7.5.4" "@typescript-eslint/utils@^5.59.11": @@ -1679,19 +1655,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@^6.10.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" - integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/typescript-estree" "6.11.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" @@ -1700,20 +1663,12 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" - integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== - dependencies: - "@typescript-eslint/types" "6.11.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" - integrity sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw== +"@typescript-eslint/visitor-keys@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" + integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== dependencies: - "@typescript-eslint/types" "6.9.1" + "@typescript-eslint/types" "6.12.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -1822,6 +1777,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-sequence-parser@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" + integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2383,6 +2343,11 @@ change-case@^4, change-case@^4.1.2: snake-case "^3.0.4" tslib "^2.0.3" +change-case@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.2.0.tgz#6054e5400194d1a19fd90e136c2007daba62668d" + integrity sha512-L6VzznESnMIKKdKhVzCG+KPz4+x1FWbjOs1AdhoHStV3qo8aySMRGPUoqC0aL1ThKaQNGhAu6ZfHL/QAyQRuiw== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -2559,16 +2524,32 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + color-support@^1.1.2, color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^2.0.7: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -2606,10 +2587,10 @@ commander@^9.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -comment-parser@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.0.tgz#0f8c560f59698193854f12884c20c0e39a26d32c" - integrity sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw== +comment-parser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" + integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== common-ancestor-path@^1.0.1: version "1.0.1" @@ -3116,20 +3097,20 @@ 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: - 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== +eslint-config-salesforce-typescript@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-3.0.5.tgz#1fa7b224551255b520f19d208be5d1bb2410c2b4" + integrity sha512-p+Do1i8Al1HANKubYV9WnJl9P/ChP/gvM+1tjtYiGqVjaO2Gf6V1ejM51r//uw4OoiFEldqKJK/gyMzSvRHkaw== dependencies: - "@typescript-eslint/eslint-plugin" "^6.9.1" - "@typescript-eslint/parser" "^6.9.1" - eslint "^8.52.0" + "@typescript-eslint/eslint-plugin" "^6.10.0" + "@typescript-eslint/parser" "^6.10.0" + eslint "^8.53.0" eslint-config-prettier "^9.0.0" eslint-config-salesforce "^2.0.2" eslint-config-salesforce-license "^0.2.0" eslint-plugin-header "^3.1.1" eslint-plugin-import "^2.29.0" - eslint-plugin-jsdoc "^46.8.2" + eslint-plugin-jsdoc "^46.9.0" eslint-plugin-unicorn "^49.0.0" eslint-config-salesforce@^2.0.2: @@ -3181,14 +3162,14 @@ eslint-plugin-import@^2.29.0: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-jsdoc@^46.8.2: - version "46.8.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz#3e6b1c93e91e38fe01874d45da121b56393c54a5" - integrity sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ== +eslint-plugin-jsdoc@^46.9.0: + version "46.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz#9887569dbeef0a008a2770bfc5d0f7fc39f21f2b" + integrity sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q== dependencies: - "@es-joy/jsdoccomment" "~0.40.1" + "@es-joy/jsdoccomment" "~0.41.0" are-docs-informative "^0.0.2" - comment-parser "1.4.0" + comment-parser "1.4.1" debug "^4.3.4" escape-string-regexp "^4.0.0" esquery "^1.5.0" @@ -3254,15 +3235,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.52.0: - version "8.52.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" - integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== +eslint@^8.53.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.52.0" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4264,6 +4245,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4717,7 +4703,7 @@ json5@^2.2.2, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@^3.0.0: +jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== @@ -5104,7 +5090,7 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -marked@^4.0.19: +marked@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== @@ -5216,7 +5202,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -6163,7 +6149,7 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-quick@^3.1.0: +pretty-quick@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== @@ -6731,7 +6717,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.4, shelljs@^0.8.5, shelljs@~0.8.4: +shelljs@^0.8.4, shelljs@^0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== @@ -6740,14 +6726,15 @@ shelljs@^0.8.4, shelljs@^0.8.5, shelljs@~0.8.4: interpret "^1.0.0" rechoir "^0.6.2" -shiki@^0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.11.1.tgz#df0f719e7ab592c484d8b73ec10e215a503ab8cc" - integrity sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA== +shiki@^0.14.1: + version "0.14.5" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.5.tgz#375dd214e57eccb04f0daf35a32aa615861deb93" + integrity sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw== dependencies: - jsonc-parser "^3.0.0" - vscode-oniguruma "^1.6.1" - vscode-textmate "^6.0.0" + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" shx@^0.3.3: version "0.3.4" @@ -6771,6 +6758,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + sinon@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" @@ -6862,7 +6856,7 @@ sort-keys@^4.2.0: dependencies: is-plain-obj "^2.0.0" -source-map-support@~0.5.19: +source-map-support@^0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -7357,15 +7351,15 @@ typedoc-plugin-missing-exports@0.23.0: resolved "https://registry.yarnpkg.com/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-0.23.0.tgz#076df6ffce4d84e8097be009b7c62a17d58477a5" integrity sha512-9smahDSsFRno9ZwoEshQDuIYMHWGB1E6LUud5qMxR2wNZ0T4DlZz0QjoK3HzXtX34mUpTH0dYtt7NQUK4D6B6Q== -typedoc@0.23.16: - version "0.23.16" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.16.tgz#09881ada725c2190ac5d3bb0edadcc5bfeda4bfe" - integrity sha512-rumYsCeNRXlyuZVzefD7050n7ptL2uudsCJg50dY0v/stKniqIlRpvx/F/6expC0/Q6Dbab+g/JpZuB7Sw90FA== +typedoc@^0.25.3: + version "0.25.3" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.25.3.tgz#53c6d668e1001b3d488e9a750fcdfb05433554c0" + integrity sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw== dependencies: lunr "^2.3.9" - marked "^4.0.19" - minimatch "^5.1.0" - shiki "^0.11.1" + marked "^4.3.0" + minimatch "^9.0.3" + shiki "^0.14.1" "typescript@^4.6.4 || ^5.0.0", typescript@^5.2.2, typescript@~5.2.2: version "5.2.2" @@ -7564,15 +7558,15 @@ vinyl@^2.0.1: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vscode-oniguruma@^1.6.1: +vscode-oniguruma@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== -vscode-textmate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-6.0.0.tgz#a3777197235036814ac9a92451492f2748589210" - integrity sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ== +vscode-textmate@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" + integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== walk-up-path@^1.0.0: version "1.0.0" From 150bee645e793acdd96f587caf5c23fe1de98b20 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 20 Nov 2023 15:10:35 -0700 Subject: [PATCH 06/11] fix: dev.js --- README.md | 33 ++++++++++++++++++++------ src/generators/command.ts | 2 +- test/commands/dev/generate/flag.nut.ts | 2 +- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 435cea68..aa60ef5c 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,12 @@ - [CLA](#cla) - [Build](#build) - [Commands](#commands) + - [`sf dev generate command`](#sf-dev-generate-command) + - [`sf dev generate flag`](#sf-dev-generate-flag) + - [`sf dev generate hook`](#sf-dev-generate-hook) + - [`sf dev generate library`](#sf-dev-generate-library) + - [`sf dev generate plugin`](#sf-dev-generate-plugin) + - [`sf dev hook HOOK`](#sf-dev-hook-hook) ## Install @@ -86,7 +92,7 @@ git clone git@github.com:salesforcecli/plugin-dev yarn && yarn build ``` -To use your plugin, run using the local `./bin/dev` or `./bin/dev.cmd` file. +To use your plugin, run using the local `./bin/dev.js` or `./bin/dev.cmd` file. ```bash # Run using local run file. @@ -105,12 +111,24 @@ sf plugins ## Commands -* [`sf dev generate command`](#sf-dev-generate-command) -* [`sf dev generate flag`](#sf-dev-generate-flag) -* [`sf dev generate hook`](#sf-dev-generate-hook) -* [`sf dev generate library`](#sf-dev-generate-library) -* [`sf dev generate plugin`](#sf-dev-generate-plugin) -* [`sf dev hook HOOK`](#sf-dev-hook-hook) + +- [plugin-dev](#plugin-dev) + - [Install](#install) + - [Usage](#usage) + - [Generate a new `sf` plugin](#generate-a-new-sf-plugin) + - [Generate a new `sf` command in your plugin](#generate-a-new-sf-command-in-your-plugin) + - [Generate a hook that will be used for existing `sf` commands](#generate-a-hook-that-will-be-used-for-existing-sf-commands) + - [Issues](#issues) + - [Contributing](#contributing) + - [CLA](#cla) + - [Build](#build) + - [Commands](#commands) + - [`sf dev generate command`](#sf-dev-generate-command) + - [`sf dev generate flag`](#sf-dev-generate-flag) + - [`sf dev generate hook`](#sf-dev-generate-hook) + - [`sf dev generate library`](#sf-dev-generate-library) + - [`sf dev generate plugin`](#sf-dev-generate-plugin) + - [`sf dev hook HOOK`](#sf-dev-hook-hook) ## `sf dev generate command` @@ -271,4 +289,5 @@ EXAMPLES $ sf dev hook sf:env:list --plugin env ``` + diff --git a/src/generators/command.ts b/src/generators/command.ts index 6e076c6e..3c20e907 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -108,7 +108,7 @@ export default class Command extends Generator { shelljs.exec('yarn lint -- --fix'); shelljs.exec('yarn compile'); - const localExecutable = process.platform === 'win32' ? path.join('bin', 'dev.cmd') : path.join('bin', 'dev'); + const localExecutable = process.platform === 'win32' ? path.join('bin', 'dev.cmd') : path.join('bin', 'dev.js'); if (this.pjson.scripts['test:deprecation-policy']) { shelljs.exec(`${localExecutable} snapshot:generate`); diff --git a/test/commands/dev/generate/flag.nut.ts b/test/commands/dev/generate/flag.nut.ts index 7be98059..ada06201 100644 --- a/test/commands/dev/generate/flag.nut.ts +++ b/test/commands/dev/generate/flag.nut.ts @@ -11,7 +11,7 @@ import shelljs from 'shelljs'; import { expect } from 'chai'; function getLocalBin(...parts: string[]): string { - return path.join(...parts, 'bin', process.platform === 'win32' ? 'dev.cmd' : 'dev'); + return path.join(...parts, 'bin', process.platform === 'win32' ? 'dev.cmd' : 'dev.js'); } // Flag generator doesn't work on Windows (W-11823784) From dbb4678dfdc2e57b2ad03bf5a9ab08bc67b6da80 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 20 Nov 2023 15:44:59 -0700 Subject: [PATCH 07/11] fix: esm and cjs command test templates --- src/generators/command.ts | 20 ++++++---- src/generators/plugin.ts | 2 +- ...nd.test.ts.ejs => cjs-command.test.ts.ejs} | 0 templates/test/esm-command.test.ts.ejs | 40 +++++++++++++++++++ test/commands/dev/generate/command2PP.nut.ts | 2 +- test/commands/dev/generate/command3PP.nut.ts | 2 +- 6 files changed, 55 insertions(+), 11 deletions(-) rename templates/test/{command.test.ts.ejs => cjs-command.test.ts.ejs} (100%) create mode 100644 templates/test/esm-command.test.ts.ejs diff --git a/src/generators/command.ts b/src/generators/command.ts index 3c20e907..9d53c98b 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -174,13 +174,17 @@ export default class Command extends Generator { const unitPath = this.destinationPath(`test/commands/${cmdPath}.test.ts`); const relativeCmdPath = path.relative(path.dirname(unitPath), commandPath).replace('.ts', ''); - this.fs.copyTpl(this.templatePath('test/command.test.ts.ejs'), unitPath, { - ...this.options, - className, - commandPath, - relativeCmdPath, - name: this.options.name.replace(/:/g, ' '), - year: new Date().getFullYear(), - }); + this.fs.copyTpl( + this.templatePath(this.pjson.type === 'module' ? 'test/esm-command.test.ts.ejs' : 'test/cjs-command.test.ts.ejs'), + unitPath, + { + ...this.options, + className, + commandPath, + relativeCmdPath, + name: this.options.name.replace(/:/g, ' '), + year: new Date().getFullYear(), + } + ); } } diff --git a/src/generators/plugin.ts b/src/generators/plugin.ts index ddbf3718..1ac88d66 100644 --- a/src/generators/plugin.ts +++ b/src/generators/plugin.ts @@ -181,7 +181,7 @@ export default class Plugin extends Generator { shelljs.exec('yarn build', { cwd: this.env.cwd }); if (this.answers.internal) { - shelljs.exec(`${path.join(path.resolve(this.env.cwd), 'bin', 'dev')} schema generate`, { cwd: this.env.cwd }); + shelljs.exec(`${path.join(path.resolve(this.env.cwd), 'bin', 'dev.js')} schema generate`, { cwd: this.env.cwd }); } } diff --git a/templates/test/command.test.ts.ejs b/templates/test/cjs-command.test.ts.ejs similarity index 100% rename from templates/test/command.test.ts.ejs rename to templates/test/cjs-command.test.ts.ejs diff --git a/templates/test/esm-command.test.ts.ejs b/templates/test/esm-command.test.ts.ejs new file mode 100644 index 00000000..f20408bd --- /dev/null +++ b/templates/test/esm-command.test.ts.ejs @@ -0,0 +1,40 @@ +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { expect } from 'chai'; +import { stubSfCommandUx } from '@salesforce/sf-plugins-core'; +import <%- className %> from '<%- relativeCmdPath.replace(/\\/g, '\\\\') %>.js' + +describe('<%- name %>', () => { + const $$ = new TestContext(); + let sfCommandStubs: ReturnType; + + beforeEach(() => { + sfCommandStubs = stubSfCommandUx($$.SANDBOX); + }); + + afterEach(() => { + $$.restore(); + }); + + it('runs hello', async () => { + await <%- className %>.run([]) + const output = sfCommandStubs.log + .getCalls() + .flatMap((c) => c.args) + .join('\n'); + expect(output).to.include('hello world'); + }) + + it('runs hello with --json and no provided name', async () => { + const result = await <%- className %>.run([]); + expect(result.path).to.equal('<%- commandPath.replace(/\\/g, '\\\\') %>'); + }); + + it('runs hello world --name Astro', async () => { + await <%- className %>.run(['--name', 'Astro']); + const output = sfCommandStubs.log + .getCalls() + .flatMap((c) => c.args) + .join('\n'); + expect(output).to.include('hello Astro'); + }); +}); diff --git a/test/commands/dev/generate/command2PP.nut.ts b/test/commands/dev/generate/command2PP.nut.ts index 960f5685..f93dc6a4 100644 --- a/test/commands/dev/generate/command2PP.nut.ts +++ b/test/commands/dev/generate/command2PP.nut.ts @@ -21,7 +21,7 @@ describe('2PP', () => { before(async () => { session = await setup('https://github.com/salesforcecli/plugin-template-sf.git'); - pluginExecutable = path.join(session.project.dir, 'bin', 'dev'); + pluginExecutable = path.join(session.project.dir, 'bin', 'dev.js'); }); after(async () => { diff --git a/test/commands/dev/generate/command3PP.nut.ts b/test/commands/dev/generate/command3PP.nut.ts index a3753926..1efcb87e 100644 --- a/test/commands/dev/generate/command3PP.nut.ts +++ b/test/commands/dev/generate/command3PP.nut.ts @@ -21,7 +21,7 @@ describe('3PP', () => { before(async () => { session = await setup('https://github.com/salesforcecli/plugin-template-sf-external.git'); - pluginExecutable = path.join(session.project.dir, 'bin', 'dev'); + pluginExecutable = path.join(session.project.dir, 'bin', 'dev.js'); }); after(async () => { From d34926b281cae6b4c0550a4bb2db7dcb16302ae7 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 21 Nov 2023 09:31:50 -0700 Subject: [PATCH 08/11] test: proper windows bin script for nuts --- test/commands/dev/generate/command2PP.nut.ts | 5 ++++- test/commands/dev/generate/command3PP.nut.ts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/test/commands/dev/generate/command2PP.nut.ts b/test/commands/dev/generate/command2PP.nut.ts index f93dc6a4..a32d9206 100644 --- a/test/commands/dev/generate/command2PP.nut.ts +++ b/test/commands/dev/generate/command2PP.nut.ts @@ -21,7 +21,10 @@ describe('2PP', () => { before(async () => { session = await setup('https://github.com/salesforcecli/plugin-template-sf.git'); - pluginExecutable = path.join(session.project.dir, 'bin', 'dev.js'); + pluginExecutable = + process.platform === 'win32' + ? path.join(session.project.dir, 'bin', 'dev.cmd') + : path.join(session.project.dir, 'bin', 'dev.js'); }); after(async () => { diff --git a/test/commands/dev/generate/command3PP.nut.ts b/test/commands/dev/generate/command3PP.nut.ts index 1efcb87e..f6731741 100644 --- a/test/commands/dev/generate/command3PP.nut.ts +++ b/test/commands/dev/generate/command3PP.nut.ts @@ -21,7 +21,10 @@ describe('3PP', () => { before(async () => { session = await setup('https://github.com/salesforcecli/plugin-template-sf-external.git'); - pluginExecutable = path.join(session.project.dir, 'bin', 'dev.js'); + pluginExecutable = + process.platform === 'win32' + ? path.join(session.project.dir, 'bin', 'dev.cmd') + : path.join(session.project.dir, 'bin', 'dev.js'); }); after(async () => { From 019502922888aed1bfe93e45a850a5ec87b05f7a Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 21 Nov 2023 09:37:42 -0700 Subject: [PATCH 09/11] fix: use proper bin script for running schema generate on 2pp --- src/generators/plugin.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/generators/plugin.ts b/src/generators/plugin.ts index 1ac88d66..70ed12be 100644 --- a/src/generators/plugin.ts +++ b/src/generators/plugin.ts @@ -181,7 +181,8 @@ export default class Plugin extends Generator { shelljs.exec('yarn build', { cwd: this.env.cwd }); if (this.answers.internal) { - shelljs.exec(`${path.join(path.resolve(this.env.cwd), 'bin', 'dev.js')} schema generate`, { cwd: this.env.cwd }); + const dev = process.platform === 'win32' ? 'dev.cmd' : 'dev.js'; + shelljs.exec(`${path.join(path.resolve(this.env.cwd), 'bin', dev)} schema generate`, { cwd: this.env.cwd }); } } From a00812c6af491420cb2c1172c11d561b7041ee1c Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 21 Nov 2023 10:14:59 -0700 Subject: [PATCH 10/11] fix: no windows sep in imports --- src/generators/command.ts | 5 ++++- templates/test/cjs-command.test.ts.ejs | 2 +- templates/test/esm-command.test.ts.ejs | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/generators/command.ts b/src/generators/command.ts index 9d53c98b..25562c24 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -173,7 +173,10 @@ export default class Command extends Generator { const className = pascalCase(this.options.name); const unitPath = this.destinationPath(`test/commands/${cmdPath}.test.ts`); - const relativeCmdPath = path.relative(path.dirname(unitPath), commandPath).replace('.ts', ''); + const relativeCmdPath = path + .relative(path.dirname(unitPath), commandPath) + .replace('.ts', '') + .replace(path.sep, '/'); this.fs.copyTpl( this.templatePath(this.pjson.type === 'module' ? 'test/esm-command.test.ts.ejs' : 'test/cjs-command.test.ts.ejs'), unitPath, diff --git a/templates/test/cjs-command.test.ts.ejs b/templates/test/cjs-command.test.ts.ejs index 3e851de6..9c1b5cb0 100644 --- a/templates/test/cjs-command.test.ts.ejs +++ b/templates/test/cjs-command.test.ts.ejs @@ -1,7 +1,7 @@ import { TestContext } from '@salesforce/core/lib/testSetup'; import { expect } from 'chai'; import { stubSfCommandUx } from '@salesforce/sf-plugins-core'; -import <%- className %> from '<%- relativeCmdPath.replace(/\\/g, '\\\\') %>' +import <%- className %> from '<%- relativeCmdPath %>' describe('<%- name %>', () => { const $$ = new TestContext(); diff --git a/templates/test/esm-command.test.ts.ejs b/templates/test/esm-command.test.ts.ejs index f20408bd..9ff97921 100644 --- a/templates/test/esm-command.test.ts.ejs +++ b/templates/test/esm-command.test.ts.ejs @@ -1,7 +1,7 @@ import { TestContext } from '@salesforce/core/lib/testSetup.js'; import { expect } from 'chai'; import { stubSfCommandUx } from '@salesforce/sf-plugins-core'; -import <%- className %> from '<%- relativeCmdPath.replace(/\\/g, '\\\\') %>.js' +import <%- className %> from '<%- relativeCmdPath %>.js' describe('<%- name %>', () => { const $$ = new TestContext(); From d2585f2de6c147e4688490ffeadcec52085add60 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 21 Nov 2023 10:22:38 -0700 Subject: [PATCH 11/11] fix: use replaceAll --- src/generators/command.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generators/command.ts b/src/generators/command.ts index 25562c24..a8fcb64c 100644 --- a/src/generators/command.ts +++ b/src/generators/command.ts @@ -176,7 +176,7 @@ export default class Command extends Generator { const relativeCmdPath = path .relative(path.dirname(unitPath), commandPath) .replace('.ts', '') - .replace(path.sep, '/'); + .replaceAll(path.sep, '/'); this.fs.copyTpl( this.templatePath(this.pjson.type === 'module' ? 'test/esm-command.test.ts.ejs' : 'test/cjs-command.test.ts.ejs'), unitPath,