diff --git a/.autorc b/.autorc index 81526af..1b24f86 100644 --- a/.autorc +++ b/.autorc @@ -1,11 +1,11 @@ { "plugins": [ ".github/auto/crate-plugin.ts", + ".github/auto/vscode-plugin.ts", "all-contributors", "conventional-commits", "first-time-contributor", - "released", - "vscode" + "released" ], "owner": "michaelangeloio", "repo": "does-it-throw", diff --git a/.github/auto/vscode-plugin.ts b/.github/auto/vscode-plugin.ts new file mode 100644 index 0000000..8f6b524 --- /dev/null +++ b/.github/auto/vscode-plugin.ts @@ -0,0 +1,118 @@ +import { Auto, IPlugin, execPromise, validatePluginConfiguration } from '@auto-it/core' +import { getAuthor, getRepo, loadPackageJson } from '@auto-it/package-json-utils' +import { publish as vscePublish } from '@vscode/vsce' +import * as t from 'io-ts' +import { ReleaseType, inc } from 'semver' + +/** Get the current version from the package.json */ +const getVersion = async () => { + const { version } = await loadPackageJson() + + if (version) { + return version + } + + return '0.0.0' +} + +const pluginOptions = t.partial({ + /** Prepend all relative links in README.md with this url */ + baseContentUrl: t.string, + /** Prepend all relative image links in README.md with this url */ + baseImagesUrl: t.string, +}) + +export type IVscodePluginOptions = t.TypeOf + +/** Publish an vscode extension */ +export default class VscodePlugin implements IPlugin { + /** The name of the plugin */ + name = 'vscode' + + /** The options of the plugin */ + readonly options: IVscodePluginOptions + + /** Initialize the plugin with it's options */ + constructor(options: IVscodePluginOptions = {}) { + this.options = options + } + + /** Tap into auto plugin points. */ + apply(auto: Auto) { + const isQuiet = auto.logger.logLevel === 'quiet' + const isVerbose = auto.logger.logLevel === 'verbose' || auto.logger.logLevel === 'veryVerbose' + const verboseArgs = isQuiet ? ['--loglevel', 'silent'] : isVerbose ? ['--loglevel', 'silly'] : [] + + auto.hooks.validateConfig.tapPromise(this.name, async (name, options) => { + // If it's a string thats valid config + if (name === this.name && typeof options !== 'string') { + return validatePluginConfiguration(this.name, pluginOptions, options) + } + }) + + auto.hooks.getAuthor.tapPromise(this.name, async () => { + auto.logger.verbose.info(`${this.name}: Getting repo information from package.json`) + + const author = await getAuthor() + + if (author) { + return author + } + }) + + auto.hooks.getRepository.tapPromise(this.name, async () => { + auto.logger.verbose.info(`${this.name}: getting repo information from package.json`) + const repo = await getRepo() + + if (repo) { + return repo + } + }) + + auto.hooks.getPreviousVersion.tapPromise(this.name, async () => { + return auto.prefixRelease(await getVersion()) + }) + + auto.hooks.version.tapPromise(this.name, async ({ bump, dryRun, quiet }) => { + const newVersion = inc(await getVersion(), bump as ReleaseType) as string + + if (dryRun) { + if (quiet) { + console.log(newVersion) + } else { + auto.logger.log.info(`Would have published: ${newVersion}`) + } + + return + } + + await execPromise('git', ['add', '.']) + + await execPromise('git', ['commit', '-m', 'chore: update version [skip ci]']) + + await execPromise('npm', [ + 'version', + newVersion, + '--no-commit-hooks', + '-m', + '"Bump version to: %s [skip ci]"', + ...verboseArgs, + ]) + auto.logger.verbose.info('Successfully versioned repo') + }) + + auto.hooks.publish.tapPromise(this.name, async () => { + auto.logger.log.info('Pushing new tag to GitHub') + const version = await getVersion() + + await execPromise('git', ['push', '--follow-tags', '--set-upstream', auto.remote, auto.baseBranch]) + + await vscePublish({ + version, + pat: process.env.VSCE_TOKEN, + baseContentUrl: this.options.baseContentUrl, + baseImagesUrl: this.options.baseImagesUrl, + }) + }) + } +} diff --git a/package-lock.json b/package-lock.json index aa2ce16..dc39b56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,7 @@ "@auto-it/all-contributors": "^11.0.4", "@auto-it/conventional-commits": "^11.0.4", "@auto-it/core": "^11.0.4", - "@auto-it/crates": "^11.0.4", "@auto-it/first-time-contributor": "^11.0.4", - "@auto-it/vscode": "^11.0.4", "@types/mocha": "^9.1.0", "@types/node": "^16.18.34", "@typescript-eslint/eslint-plugin": "^6.9.1", @@ -32,6 +30,7 @@ "eslint": "^8.35.0", "mocha": "^9.2.1", "semver": "^7.5.4", + "toml": "^3.0.0", "tsx": "^3.14.0", "typescript": "5.2.2", "user-home": "^3.0.0" @@ -420,123 +419,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@auto-it/crates": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@auto-it/crates/-/crates-11.0.4.tgz", - "integrity": "sha512-t9NWWRCrZhv9Gl6e0dd/fs/f5qvZK/5heuSbGUXThYcojYSdsn91Fu5tk4u8p4KnTdqT38H2wWQ91/TVTWblVw==", - "dev": true, - "dependencies": { - "@auto-it/core": "11.0.4", - "env-ci": "^5.0.1", - "semver": "^7.0.0", - "toml": "^3.0.0", - "tslib": "2.1.0", - "user-home": "^2.0.0" - } - }, - "node_modules/@auto-it/crates/node_modules/env-ci": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", - "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "fromentries": "^1.3.2", - "java-properties": "^1.0.0" - }, - "engines": { - "node": ">=10.17" - } - }, - "node_modules/@auto-it/crates/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@auto-it/crates/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@auto-it/crates/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/@auto-it/crates/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@auto-it/crates/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@auto-it/crates/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@auto-it/crates/node_modules/user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@auto-it/first-time-contributor": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/@auto-it/first-time-contributor/-/first-time-contributor-11.0.4.tgz", @@ -722,21 +604,6 @@ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, - "node_modules/@auto-it/vscode": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@auto-it/vscode/-/vscode-11.0.4.tgz", - "integrity": "sha512-lpwDGUNtEnH/lb6lAjVnZC5vOpUplUrWGjjeRd/yHbWg0WbSchaBrhWOHsF+LSdUmeJPgeK+myBDkdf6ZJ7Zvw==", - "dev": true, - "dependencies": { - "@auto-it/core": "11.0.4", - "@auto-it/package-json-utils": "11.0.4", - "fp-ts": "^2.5.3", - "io-ts": "^2.1.2", - "semver": "^7.0.0", - "tslib": "2.1.0", - "vsce": "^1.83.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.22.13", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", @@ -2159,7 +2026,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/before-after-hook": { "version": "2.2.3", @@ -2179,6 +2047,7 @@ "version": "4.1.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -2189,6 +2058,7 @@ "version": "3.6.2", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -2202,6 +2072,7 @@ "version": "1.3.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -2260,6 +2131,7 @@ } ], "license": "MIT", + "optional": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -2462,7 +2334,8 @@ "node_modules/chownr": { "version": "1.1.4", "dev": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/cli-cursor": { "version": "3.1.0", @@ -2893,6 +2766,7 @@ "version": "6.0.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -2961,12 +2835,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", - "dev": true - }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", @@ -2977,6 +2845,7 @@ "version": "2.0.2", "dev": true, "license": "Apache-2.0", + "optional": true, "engines": { "node": ">=8" } @@ -3105,6 +2974,7 @@ "version": "1.4.4", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "once": "^1.4.0" } @@ -3573,6 +3443,7 @@ "version": "2.0.3", "dev": true, "license": "(MIT OR WTFPL)", + "optional": true, "engines": { "node": ">=6" } @@ -3800,7 +3671,8 @@ "node_modules/fs-constants": { "version": "1.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fs-extra": { "version": "10.1.0", @@ -4100,7 +3972,8 @@ "node_modules/github-from-package": { "version": "0.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/gitlog": { "version": "4.0.8", @@ -4425,7 +4298,8 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "optional": true }, "node_modules/ignore": { "version": "5.2.4", @@ -5150,6 +5024,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -5658,6 +5533,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">=10" }, @@ -5720,7 +5596,8 @@ "node_modules/mkdirp-classic": { "version": "0.5.3", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/mocha": { "version": "9.2.2", @@ -5865,7 +5742,8 @@ "node_modules/napi-build-utils": { "version": "1.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/natural-compare": { "version": "1.4.0", @@ -5888,6 +5766,7 @@ "version": "3.51.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "semver": "^7.3.5" }, @@ -5898,7 +5777,8 @@ "node_modules/node-addon-api": { "version": "4.3.0", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/node-fetch": { "version": "2.6.7", @@ -6052,16 +5932,6 @@ "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/p-limit": { "version": "3.1.0", "dev": true, @@ -6366,6 +6236,7 @@ "version": "7.1.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -6419,6 +6290,7 @@ "version": "3.0.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -7114,7 +6986,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/simple-get": { "version": "4.0.1", @@ -7134,6 +7007,7 @@ } ], "license": "MIT", + "optional": true, "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -7232,12 +7106,6 @@ "node": ">= 6" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, "node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -7449,6 +7317,7 @@ "version": "2.1.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -7460,6 +7329,7 @@ "version": "2.2.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -7475,6 +7345,7 @@ "version": "3.6.2", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7488,6 +7359,7 @@ "version": "1.3.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -7748,6 +7620,7 @@ "version": "0.6.0", "dev": true, "license": "Apache-2.0", + "optional": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -7978,112 +7851,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/vsce": { - "version": "1.103.1", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.103.1.tgz", - "integrity": "sha512-98oKQKKRp7J/vTIk1cuzom5cezZpYpRHs3WlySdsrTCrAEipB/HvaPTc4VZ3hGZHzHXS9P5p2L0IllntJeXwiQ==", - "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", - "dev": true, - "dependencies": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "denodeify": "^1.2.1", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "keytar": "^7.7.0", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "osenv": "^0.1.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^1.1.0", - "xml2js": "^0.4.23", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "bin": { - "vsce": "vsce" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/vsce/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/vsce/node_modules/entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true - }, - "node_modules/vsce/node_modules/linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/vsce/node_modules/markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/vsce/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/vsce/node_modules/url-join": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", - "integrity": "sha512-zz1wZk4Lb5PTVwZ3HWDmm8XnlPvmOof6/fjdDPA5yBrUcbtV64U6bV832Zf1BtU2WkBBWaUT46wCs+l0HP5nhg==", - "dev": true - }, - "node_modules/vsce/node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/vscode-jsonrpc": { "version": "8.1.0", "license": "MIT", diff --git a/package.json b/package.json index 0d836b9..1684405 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,7 @@ "@auto-it/all-contributors": "^11.0.4", "@auto-it/conventional-commits": "^11.0.4", "@auto-it/core": "^11.0.4", - "@auto-it/crates": "^11.0.4", "@auto-it/first-time-contributor": "^11.0.4", - "@auto-it/vscode": "^11.0.4", "@types/mocha": "^9.1.0", "@types/node": "^16.18.34", "@typescript-eslint/eslint-plugin": "^6.9.1", @@ -35,6 +33,7 @@ "eslint": "^8.35.0", "mocha": "^9.2.1", "semver": "^7.5.4", + "toml": "^3.0.0", "tsx": "^3.14.0", "typescript": "5.2.2", "user-home": "^3.0.0"