diff --git a/package.json b/package.json index 23b4084f..b55e51d3 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ } }, "dependencies": { - "@inquirer/select": "^2.3.5", + "@inquirer/select": "^5.0.6", "@oclif/core": "4.8.0", "@oclif/plugin-autocomplete": "3.2.40", "@oclif/plugin-commands": "4.1.40", @@ -175,8 +175,7 @@ "@salesforce/plugin-templates": "56.8.2", "@salesforce/plugin-trust": "3.7.113", "@salesforce/plugin-user": "3.6.50", - "@salesforce/sf-plugins-core": "12.2.6", - "ansis": "^3.12.0" + "@salesforce/sf-plugins-core": "12.2.6" }, "pinnedDependencies": [ "@oclif/core", diff --git a/src/help/sfHelp.ts b/src/help/sfHelp.ts index 40b2c339..bebae257 100644 --- a/src/help/sfHelp.ts +++ b/src/help/sfHelp.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 util from 'node:util'; import { Command } from '@oclif/core/command'; import { CommandHelp, Help } from '@oclif/core/help'; import Interfaces from '@oclif/core/interfaces'; import { toConfiguredId } from '@oclif/core/util/ids'; -import { Ansis } from 'ansis'; import { colorize } from '@oclif/core/ux'; import { SfCommandHelp } from './sfCommandHelp.js'; -const ansis = new Ansis(); - export default class SfHelp extends Help { protected CommandHelpClass: typeof CommandHelp = SfCommandHelp; protected commandHelpClass: SfCommandHelp | undefined; @@ -68,7 +66,7 @@ export default class SfHelp extends Help { protected log(...args: string[]): void { const formatted = args.map((arg) => { let formattedArg = arg.slice(); - const matches = ansis.strip(formattedArg).match(this.commandIdRegex) ?? []; + const matches = util.stripVTControlCharacters(formattedArg).match(this.commandIdRegex) ?? []; for (const match of matches) { formattedArg = formattedArg.replaceAll(match, colorize('dim', match)); } diff --git a/src/hooks/incomplete.ts b/src/hooks/incomplete.ts index 768f894b..66790d15 100644 --- a/src/hooks/incomplete.ts +++ b/src/hooks/incomplete.ts @@ -41,7 +41,6 @@ async function determineCommand(config: Interfaces.Config, matches: Command.Load }); const timeout = setTimeout(60_000, undefined, { ref: false }).then(() => { - answer.cancel(); throw new SfError('Prompt timed out.'); }); return Promise.race([answer, timeout]); diff --git a/yarn.lock b/yarn.lock index 752d8bc3..16e86aed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1101,6 +1101,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e" integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== +"@inquirer/ansi@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-2.0.3.tgz#3c4c5b587894278996c2750db83d89fb547b796b" + integrity sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw== + "@inquirer/checkbox@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz#41c5c9dd332c0a8fa159be23982ce080d0b199d4" @@ -1153,6 +1158,19 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.3" +"@inquirer/core@^11.1.4": + version "11.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.4.tgz#f9505ede59d7a19ac8857f4085f4b39f1f7d5c35" + integrity sha512-1HvwyASF0tE/7W8geTTn0ydiWb463pq4SBIpaWcVabTrw55+CiRmytV9eZoqt3ohchsPw4Vv60jfNiI6YljVUg== + dependencies: + "@inquirer/ansi" "^2.0.3" + "@inquirer/figures" "^2.0.3" + "@inquirer/type" "^4.0.3" + cli-width "^4.1.0" + fast-wrap-ansi "^0.2.0" + mute-stream "^3.0.0" + signal-exit "^4.1.0" + "@inquirer/core@^3.1.1": version "3.1.2" resolved "https://registry.npmjs.org/@inquirer/core/-/core-3.1.2.tgz" @@ -1222,6 +1240,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a" integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g== +"@inquirer/figures@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-2.0.3.tgz#9d0cd242fbdb4ed8f1f52836a977eb7071e6c512" + integrity sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g== + "@inquirer/input@^2.2.4", "@inquirer/input@^2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.3.0.tgz#9b99022f53780fecc842908f3f319b52a5a16865" @@ -1299,7 +1322,7 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/select@^2.3.5", "@inquirer/select@^2.5.0": +"@inquirer/select@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.5.0.tgz#345c6908ecfaeef3d84ddd2f9feb2f487c558efb" integrity sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA== @@ -1321,6 +1344,16 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/select@^5.0.6": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.0.7.tgz#141c17352fd9226f16155cd45eefa7f8b3492e24" + integrity sha512-1JUJIR+Z2PsvwP6VWty7aE0aCPaT2cy2c4Vp3LPhL2Pi3+aXewAld/AyJ/CW9XWx1JbKxmdElfvls/G/7jG7ZQ== + dependencies: + "@inquirer/ansi" "^2.0.3" + "@inquirer/core" "^11.1.4" + "@inquirer/figures" "^2.0.3" + "@inquirer/type" "^4.0.3" + "@inquirer/type@^1.1.2", "@inquirer/type@^1.5.3": version "1.5.3" resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.3.tgz#220ae9f3d5ae17dd3b2ce5ffd6b48c4a30c73181" @@ -1333,6 +1366,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.10.tgz#11ed564ec78432a200ea2601a212d24af8150d50" integrity sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA== +"@inquirer/type@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-4.0.3.tgz#219b8c29afe366067f90705d156d1b395c9e2af0" + integrity sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw== + "@isaacs/balanced-match@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" @@ -3830,7 +3868,7 @@ ansicolors@~0.3.2: resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== -ansis@^3.12.0, ansis@^3.16.0, ansis@^3.17.0, ansis@^3.2.0, ansis@^3.3.1, ansis@^3.3.2: +ansis@^3.16.0, ansis@^3.17.0, ansis@^3.2.0, ansis@^3.3.1, ansis@^3.3.2: version "3.17.0" resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== @@ -5887,11 +5925,30 @@ fast-safe-stringify@^2.1.1: resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-string-truncated-width@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz#23afe0da67d752ca0727538f1e6967759728ce49" + integrity sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g== + +fast-string-width@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/fast-string-width/-/fast-string-width-3.0.2.tgz#16dbabb491ce5585b5ecb675b65c165d71688eeb" + integrity sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg== + dependencies: + fast-string-truncated-width "^3.0.2" + fast-uri@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== +fast-wrap-ansi@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz#c0ae3f3982d061c3d657ec927196fbb47e22fe64" + integrity sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w== + dependencies: + fast-string-width "^3.0.2" + fast-xml-parser@5.3.4: version "5.3.4" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz#06f39aafffdbc97bef0321e626c7ddd06a043ecf" @@ -8441,6 +8498,11 @@ mute-stream@^2.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== +mute-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-3.0.0.tgz#cd8014dd2acb72e1e91bb67c74f0019e620ba2d1" + integrity sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"