diff --git a/.husky/pre-commit b/.husky/pre-commit index d2902b1c..6ee1faca 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,2 @@ #!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - pnpm pre-commit diff --git a/cli/publish-spec/package.json b/cli/publish-spec/package.json index a2cf00c3..cc73b444 100644 --- a/cli/publish-spec/package.json +++ b/cli/publish-spec/package.json @@ -47,7 +47,7 @@ "homepage": "https://github.com/withfig/autocomplete-tools#readme", "dependencies": { "commander": "^11.1.0", - "esbuild": "^0.23.1", + "esbuild": "^0.24.2", "node-fetch": "^3.3.2", "prettier": "^3.3.3", "prompts": "^2.4.2" diff --git a/cli/tools-cli/.eslintrc.cjs b/cli/tools-cli/.eslintrc.cjs new file mode 100644 index 00000000..5739ce8a --- /dev/null +++ b/cli/tools-cli/.eslintrc.cjs @@ -0,0 +1,5 @@ +module.exports = { + rules: { + "import/no-unresolved": "off", + }, +}; diff --git a/cli/tools-cli/README.md b/cli/tools-cli/README.md index 9a13386a..7f1f3cd2 100644 --- a/cli/tools-cli/README.md +++ b/cli/tools-cli/README.md @@ -1,84 +1,3 @@ -

- -

+# `@withfig/autocomplete-tools` ---- - -![os](https://img.shields.io/badge/os-%20macOS-light) -[![Signup](https://img.shields.io/badge/signup-private%20beta-blueviolet)](https://fig.io?ref=github_autocomplete) -[![Documentation](https://img.shields.io/badge/documentation-black)](https://fig.io/docs/) -[![Discord](https://img.shields.io/discord/837809111248535583?color=768ad4&label=discord)](https://fig.io/community) -[![Twitter](https://img.shields.io/twitter/follow/fig.svg?style=social&label=Follow)](https://twitter.com/intent/follow?screen_name=fig) - - -# Fig Autocomplete Boilerplate Repo - -Looking to build [Fig](https://fig.io) autocomplete for private CLI tools, scripts, or NPM packages? This npx module makes it easy to **build** [Fig autocomplete specs](https://fig.io/docs) and **share** them specs with your team. - -This repo is similar to a minimal version of our public specs repo, -[withfig/autocomplete](https://github.com/withfig/autocomplete), except with an empty `src/` folder. - - - -## Usage - -### Init the .fig folder - -Go to the directory that contains your CLI tool, script, or NPM package and run the following - -```bash -npx @withfig/autocomplete-tools init -``` -This will create initialise a `.fig/` folder in your current working directory like the following -```bash -cli/ -├── .fig/ -│   └── autocomplete/ -│   ├── src/ # where you edit your completion specs -│   ├── build/ # where your specs compile to -│   ├── .eslintrc.js -│   ├── README.md -│   ├── package-lock.json -│   ├── package.json -│   └── tsconfig.json -├── node_mod/ -└── my_cli_tool.sh -``` - -### Create, test, and compile specs - -`cd` into the `.fig/autocomplete/` folder and run the remaining commands as package.json scripts - -```bash -# Make a new empty completion spec object in src/ -npm run create-spec - -# Start dev mode to see live updates to your spec in your terminal as you edit. -npm run dev - -# Compile your specs from the src/ folder to build/ -npm run build -``` - -### Push Specs to Fig's Cloud -Coming soon - -## Documentation - -- [Building your first autocomplete spec](https://fig.io/docs/) -- [Personal shortcut autocomplete](https://fig.io/docs/tutorials/visual-shortcuts) -- [Autocomplete for teams / internal CLI tools](https://fig.io/docs/tutorials/building-internal-clis) -- [Autocomplete for local scripts](https://fig.io/docs/tutorials/autocomplete-for-internal-scripts) - - -## 😊 Need Help? - -Email [hello@fig.io](mailto:hello@fig.io) - -

- Join our community -
- - - -

+The `@withfig/autocomplete-tools` is a CLI used to build and manage the withfig/autocomplete repo. diff --git a/cli/tools-cli/package.json b/cli/tools-cli/package.json index 34c3ac85..272f976a 100644 --- a/cli/tools-cli/package.json +++ b/cli/tools-cli/package.json @@ -1,11 +1,11 @@ { "name": "@withfig/autocomplete-tools", - "version": "2.10.0", + "version": "2.11.0", "description": "Command line tools for working with fig autocomplete specs", "author": "The Fig Team", "scripts": { "build": "rm -rf build/ && pnpm run build:bin && pnpm run build:lib", - "build:bin": "esbuild src/bin.ts --bundle --platform=node --packages=external --outdir=build --minify", + "build:bin": "esbuild src/bin.ts --bundle --platform=node --packages=external --outdir=build --minify --format=esm", "build:lib": "tsc", "test": "tsx test/index.ts", "test:overwrite": "OVERWRITE=true pnpm test", @@ -13,6 +13,7 @@ "generate-spec": "tsx generate-spec.ts generate-fig-spec" }, "license": "MIT", + "type": "module", "bin": "./build/bin.js", "main": "./build/index.js", "types": "./build/index.d.ts", @@ -24,11 +25,11 @@ "@fig/autocomplete-helpers": "workspace:^", "@fig/autocomplete-merge": "workspace:^", "@types/semver": "^7.5.8", - "chalk": "^4.1.2", + "chalk": "^5.4.1", "chokidar": "^4.0.1", - "commander": "^11.1.0", + "commander": "^13.0.0", "create-completion-spec": "workspace:^", - "esbuild": "^0.23.1", + "esbuild": "^0.24.2", "fast-glob": "^3.3.2", "module-from-string": "^3.3.1", "prettier": "^3.3.3", diff --git a/cli/tools-cli/src/scripts/compile.ts b/cli/tools-cli/src/scripts/compile.ts index 8171b20f..5ea661db 100644 --- a/cli/tools-cli/src/scripts/compile.ts +++ b/cli/tools-cli/src/scripts/compile.ts @@ -1,10 +1,11 @@ +import fs from "node:fs/promises"; +import fsSync from "node:fs"; +import path from "node:path"; import { build } from "esbuild"; import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill"; import chokidar from "chokidar"; import { Command } from "commander"; import glob from "fast-glob"; -import fs from "node:fs/promises"; -import path from "node:path"; import SpecLogger, { Level } from "./log"; import { setSetting } from "./settings"; @@ -33,33 +34,55 @@ async function generateIndex(outdir: string, files: string[]) { .concat(diffVersionedSpecNames); specNames.sort(); - await fs.mkdir(outdir, { recursive: true }); + const modules = files + .filter((p) => fsSync.statSync(p).isFile()) + .map(path.parse) + .map((p) => `${p.dir}/${p.name}`.replace(/^src\//, "")); - Promise.all([ - // index.js - await fs.writeFile( - path.join(outdir, "index.js"), - `var e=${JSON.stringify(specNames)},diffVersionedCompletions=${JSON.stringify( - diffVersionedSpecNames - )};export{e as default,diffVersionedCompletions};` - ), - // index.json - fs.writeFile( - path.join(outdir, "index.json"), - JSON.stringify({ - completions: specNames, - diffVersionedCompletions: diffVersionedSpecNames, - }) - ), - // index.d.ts - fs.writeFile( - path.join(outdir, "index.d.ts"), - `declare const completions: string[] + await fs.mkdir(outdir, { recursive: true }); + await fs.mkdir(path.join(outdir, "dynamic"), { recursive: true }); + + // index.js + await fs.writeFile( + path.join(outdir, "index.js"), + `var e=${JSON.stringify(specNames)},diffVersionedCompletions=${JSON.stringify( + diffVersionedSpecNames + )};export{e as default,diffVersionedCompletions};` + ); + // index.json + await fs.writeFile( + path.join(outdir, "index.json"), + JSON.stringify({ + completions: specNames, + diffVersionedCompletions: diffVersionedSpecNames, + }) + ); + // index.d.ts + await fs.writeFile( + path.join(outdir, "index.d.ts"), + `declare const completions: string[] declare const diffVersionedCompletions: string[] export { completions as default, diffVersionedCompletions } - ` - ), - ]); +` + ); + // dynamic/index.js + await fs.writeFile( + path.join(outdir, "dynamic/index.js"), + `var e={${modules + .map((mod) => `${JSON.stringify(mod)}:()=>import(${JSON.stringify(`../${mod}.js`)})`) + .join(",")}};export{e as default};` + ); + // dynamic/index.d.ts + await fs.writeFile( + path.join(outdir, "dynamic/index.d.ts"), + `declare const completions: { + [key: string]: () => Promise<{ + default: any; + }> +} +export { completions as default } +` + ); } /** diff --git a/cli/tools-cli/src/scripts/create-spec.ts b/cli/tools-cli/src/scripts/create-spec.ts index f1b29109..36906958 100644 --- a/cli/tools-cli/src/scripts/create-spec.ts +++ b/cli/tools-cli/src/scripts/create-spec.ts @@ -1,7 +1,7 @@ +import path from "node:path"; +import readline from "node:readline"; import { createCompletionSpec } from "create-completion-spec"; import { Command } from "commander"; -import readline from "readline"; -import path from "path"; import chalk from "chalk"; const program = new Command("create-spec") diff --git a/cli/tools-cli/src/scripts/dev.ts b/cli/tools-cli/src/scripts/dev.ts index 8cfcbe4c..4c3c1b46 100644 --- a/cli/tools-cli/src/scripts/dev.ts +++ b/cli/tools-cli/src/scripts/dev.ts @@ -1,6 +1,6 @@ -import os from "os"; -import fs from "fs"; -import path from "path"; +import os from "node:os"; +import fs from "node:fs"; +import path from "node:path"; import chalk from "chalk"; import { Command } from "commander"; import { runCompiler } from "./compile"; diff --git a/cli/tools-cli/src/scripts/merge.ts b/cli/tools-cli/src/scripts/merge.ts index 819e8f02..7d320707 100644 --- a/cli/tools-cli/src/scripts/merge.ts +++ b/cli/tools-cli/src/scripts/merge.ts @@ -1,4 +1,4 @@ -import fs from "fs"; +import fs from "node:fs"; import { Command, Option } from "commander"; import { merge, presets, PresetName } from "@fig/autocomplete-merge"; diff --git a/cli/tools-cli/src/scripts/version.ts b/cli/tools-cli/src/scripts/version.ts index 6ff52034..6c6f6c2a 100644 --- a/cli/tools-cli/src/scripts/version.ts +++ b/cli/tools-cli/src/scripts/version.ts @@ -1,12 +1,12 @@ +import fs from "node:fs"; +import path from "node:path"; import { Command } from "commander"; import semver from "semver"; import { applySpecDiff, diffSpecs } from "@fig/autocomplete-helpers"; import { importFromStringSync } from "module-from-string"; import prettier from "prettier"; -import fs from "fs"; import ts from "typescript"; import { build } from "esbuild"; -import path from "path"; export const copyDirectorySync = (oldPath: string, newPath: string) => { if (!fs.existsSync(newPath)) { diff --git a/cli/tools-cli/test/versioning/index.ts b/cli/tools-cli/test/versioning/index.ts index 1d7472c0..27378fb2 100644 --- a/cli/tools-cli/test/versioning/index.ts +++ b/cli/tools-cli/test/versioning/index.ts @@ -1,10 +1,12 @@ -import fs from "fs"; -import child from "child_process"; -import path from "path"; +import fs from "node:fs"; +import child from "node:child_process"; +import path from "node:path"; +import url from "node:url"; import { copyDirectorySync } from "../../src/scripts/version"; -const cliPath = path.join(__dirname, "..", "..", "src", "bin.ts"); -const fixturesPath = path.join(__dirname, "fixtures"); +const dirname = path.dirname(url.fileURLToPath(import.meta.url)); +const cliPath = path.join(dirname, "..", "..", "src", "bin.ts"); +const fixturesPath = path.join(dirname, "fixtures"); const dirs = fs .readdirSync(fixturesPath, { withFileTypes: true }) .filter((file) => file.isDirectory() && file.name !== ".DS_Store"); @@ -58,7 +60,7 @@ export function runFixtures() { } fs.rmSync(updatedSpecPath, { recursive: true, force: true }); - const cmd = `node -r tsx/cjs ${cliPath} version add-diff old-spec ${newSpecPath} ${newVersion} --cwd ${fixtureDirPath} --new-path ${updatedSpecPath}`; + const cmd = `tsx ${cliPath} version add-diff old-spec ${newSpecPath} ${newVersion} --cwd ${fixtureDirPath} --new-path ${updatedSpecPath}`; try { child.execSync(cmd); diff --git a/helpers/.eslintrc.cjs b/helpers/.eslintrc.cjs new file mode 100644 index 00000000..5739ce8a --- /dev/null +++ b/helpers/.eslintrc.cjs @@ -0,0 +1,5 @@ +module.exports = { + rules: { + "import/no-unresolved": "off", + }, +}; diff --git a/helpers/index.ts b/helpers/index.ts deleted file mode 100644 index 39c3b3ed..00000000 --- a/helpers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./src/versions"; diff --git a/helpers/package.json b/helpers/package.json index 2594c2bb..f669596b 100644 --- a/helpers/package.json +++ b/helpers/package.json @@ -1,29 +1,21 @@ { "name": "@fig/autocomplete-helpers", - "version": "1.0.7", + "version": "2.0.0", "description": "Helper functions for fig completion specs", - "main": "./dist/cjs/index.js", - "module": "./dist/esm/index.js", - "typings": "./dist/cjs/index.d.ts", - "exports": { - "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js" - }, + "type": "module", + "exports": "./dist/index.js", "files": [ "dist/" ], "scripts": { "clean": "rm -rf dist/", - "build": "pnpm clean && pnpm build:cjs && pnpm build:esm", - "build:cjs": "tsc --declaration --outDir dist/cjs", - "build:esm": "tsc --declaration --module esnext --outDir dist/esm", + "build": "pnpm clean && tsc", "prepack": "pnpm build", "test": "tsx test/index.ts && vitest --run" }, "author": "Fig Team", "dependencies": { - "semver": "^7.6.3", - "typescript": "^5.5.4" + "semver": "^7.6.3" }, "devDependencies": { "@tsconfig/recommended": "^1.0.7", @@ -32,6 +24,7 @@ "@withfig/autocomplete-types": "workspace:^", "prettier": "^3.3.3", "tsx": "^4.19.2", + "typescript": "^5.5.4", "vitest": "^2.1.4" }, "publishConfig": { diff --git a/helpers/src/index.ts b/helpers/src/index.ts new file mode 100644 index 00000000..32430235 --- /dev/null +++ b/helpers/src/index.ts @@ -0,0 +1 @@ +export * from "./versions.js"; diff --git a/helpers/test/fixtures/fig-cli/spec/1.0.0.js b/helpers/test/fixtures/fig-cli/spec/1.0.0.js index 2bd99868..b66696c1 100644 --- a/helpers/test/fixtures/fig-cli/spec/1.0.0.js +++ b/helpers/test/fixtures/fig-cli/spec/1.0.0.js @@ -1911,5 +1911,4 @@ versions["1.3.1"] = { ], }; -exports.versions = versions; -exports.completion = completion; +export { versions, completion }; diff --git a/helpers/test/index.ts b/helpers/test/index.ts index aac7e95c..757538fc 100644 --- a/helpers/test/index.ts +++ b/helpers/test/index.ts @@ -1,9 +1,11 @@ -import fs from "fs"; -import path from "path"; +import fs from "node:fs"; +import path from "node:path"; +import url from "node:url"; import prettier from "prettier"; import { getVersionFromVersionedSpec } from "../src/versions"; -const fixturesPath = path.join(__dirname, "fixtures"); +const dirname = path.dirname(url.fileURLToPath(import.meta.url)); +const fixturesPath = path.join(dirname, "fixtures"); const dirs = fs .readdirSync(fixturesPath, { withFileTypes: true }) .filter((file) => file.isDirectory() && file.name !== ".DS_Store"); diff --git a/helpers/tsconfig.json b/helpers/tsconfig.json index b62d858e..629b2023 100644 --- a/helpers/tsconfig.json +++ b/helpers/tsconfig.json @@ -2,11 +2,11 @@ "extends": "@tsconfig/recommended", "compilerOptions": { "lib": ["ESNext", "DOM"], - "moduleResolution": "node", - "esModuleInterop": true, + "moduleResolution": "node16", + "module": "node16", + "outDir": "dist", "sourceMap": true, "allowSyntheticDefaultImports": true, - "baseUrl": "./", "declaration": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, @@ -14,6 +14,6 @@ "noUnusedParameters": true, "types": ["@withfig/autocomplete-types", "node"] }, - "exclude": ["node_modules/", "dist/", "test/"], - "include": ["./"], + "exclude": ["node_modules", "dist", "test"], + "include": ["src"], } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0e9150b..f4806c40 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,8 +70,8 @@ importers: specifier: ^11.1.0 version: 11.1.0 esbuild: - specifier: ^0.23.1 - version: 0.23.1 + specifier: ^0.24.2 + version: 0.24.2 node-fetch: specifier: ^3.3.2 version: 3.3.2 @@ -120,7 +120,7 @@ importers: dependencies: '@esbuild-plugins/node-modules-polyfill': specifier: ^0.2.2 - version: 0.2.2(esbuild@0.23.1) + version: 0.2.2(esbuild@0.24.2) '@fig/autocomplete-helpers': specifier: workspace:^ version: link:../../helpers @@ -131,20 +131,20 @@ importers: specifier: ^7.5.8 version: 7.5.8 chalk: - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^5.4.1 + version: 5.4.1 chokidar: specifier: ^4.0.1 version: 4.0.3 commander: - specifier: ^11.1.0 - version: 11.1.0 + specifier: ^13.0.0 + version: 13.0.0 create-completion-spec: specifier: workspace:^ version: link:../create-completion-spec esbuild: - specifier: ^0.23.1 - version: 0.23.1 + specifier: ^0.24.2 + version: 0.24.2 fast-glob: specifier: ^3.3.2 version: 3.3.2 @@ -220,9 +220,6 @@ importers: semver: specifier: ^7.6.3 version: 7.6.3 - typescript: - specifier: ^5.5.4 - version: 5.7.2 devDependencies: '@tsconfig/recommended': specifier: ^1.0.7 @@ -242,6 +239,9 @@ importers: tsx: specifier: ^4.19.2 version: 4.19.2 + typescript: + specifier: ^5.5.4 + version: 5.7.2 vitest: specifier: ^2.1.4 version: 2.1.8(@types/node@22.10.2) @@ -651,6 +651,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -663,6 +669,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -675,6 +687,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -687,6 +705,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -699,6 +723,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -711,6 +741,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -723,6 +759,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -735,6 +777,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -747,6 +795,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -759,6 +813,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -771,6 +831,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -783,6 +849,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -795,6 +867,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -807,6 +885,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -819,6 +903,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -831,6 +921,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -843,6 +939,18 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -855,12 +963,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.23.1': resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -873,6 +993,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -885,6 +1011,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -897,6 +1029,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -909,6 +1047,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -921,6 +1065,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1821,6 +1971,10 @@ packages: resolution: {integrity: sha512-ZkD35Mx92acjB2yNJgziGqT9oKHEOxjTBTDRpOsRWtdecL/0jM3z5kM/CTzHWvHIen1GvkM85p6TuFfDGfc8/Q==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -1938,6 +2092,10 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@13.0.0: + resolution: {integrity: sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==} + engines: {node: '>=18'} + commander@7.1.0: resolution: {integrity: sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==} engines: {node: '>= 10'} @@ -2273,6 +2431,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5118,9 +5281,9 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.23.1)': + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.24.2)': dependencies: - esbuild: 0.23.1 + esbuild: 0.24.2 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 @@ -5130,141 +5293,216 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm64@0.23.1': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-arm@0.23.1': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.21.5': optional: true '@esbuild/android-x64@0.23.1': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-arm64@0.23.1': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/darwin-x64@0.23.1': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.23.1': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/freebsd-x64@0.23.1': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm64@0.23.1': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-arm@0.23.1': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-ia32@0.23.1': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-loong64@0.23.1': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-mips64el@0.23.1': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-ppc64@0.23.1': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-riscv64@0.23.1': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-s390x@0.23.1': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/linux-x64@0.23.1': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.23.1': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + '@esbuild/openbsd-arm64@0.23.1': optional: true + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.23.1': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.23.1': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-arm64@0.23.1': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-ia32@0.23.1': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true '@esbuild/win32-x64@0.23.1': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -6423,7 +6661,7 @@ snapshots: chalk-template@1.1.0: dependencies: - chalk: 5.4.0 + chalk: 5.4.1 chalk@4.1.2: dependencies: @@ -6434,6 +6672,8 @@ snapshots: chalk@5.4.0: {} + chalk@5.4.1: {} + chardet@0.7.0: {} check-error@2.1.1: {} @@ -6530,6 +6770,8 @@ snapshots: commander@12.1.0: {} + commander@13.0.0: {} + commander@7.1.0: {} comment-json@4.2.5: @@ -6664,7 +6906,7 @@ snapshots: '@cspell/cspell-types': 8.17.1 '@cspell/dynamic-import': 8.17.1 '@cspell/url': 8.17.1 - chalk: 5.4.0 + chalk: 5.4.1 chalk-template: 1.1.0 commander: 12.1.0 cspell-dictionary: 8.17.1 @@ -6983,6 +7225,34 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + escalade@3.2.0: {} escape-html@1.0.3: {}