From 3a3d2e03330ae47c066ed3da26e03dc829dd5078 Mon Sep 17 00:00:00 2001 From: "Marcus R. Brown" Date: Wed, 27 Mar 2024 00:22:55 -0700 Subject: [PATCH] feat: add `@bfra.me/prettier-plugins` package (#168) --- .changeset/honest-hats-switch.md | 6 ++ .github/workflows/ci.yaml | 6 +- package.json | 2 +- packages/prettier-config/package.json | 2 +- packages/prettier-config/prettier.config.js | 28 +------- packages/prettier-config/prettier.config.ts | 32 ++------- packages/prettier-plugins/package.json | 60 +++++++++++++++++ packages/prettier-plugins/readme.md | 35 ++++++++++ packages/prettier-plugins/src/index.ts | 1 + .../src/package-json/index.ts | 25 +++++++ packages/prettier-plugins/tsconfig.json | 11 +++ packages/prettier-plugins/tsup.config.ts | 11 +++ pnpm-lock.yaml | 67 ++++++------------- 13 files changed, 182 insertions(+), 104 deletions(-) create mode 100644 .changeset/honest-hats-switch.md create mode 100644 packages/prettier-plugins/package.json create mode 100644 packages/prettier-plugins/readme.md create mode 100644 packages/prettier-plugins/src/index.ts create mode 100644 packages/prettier-plugins/src/package-json/index.ts create mode 100644 packages/prettier-plugins/tsconfig.json create mode 100644 packages/prettier-plugins/tsup.config.ts diff --git a/.changeset/honest-hats-switch.md b/.changeset/honest-hats-switch.md new file mode 100644 index 0000000..f1ecbef --- /dev/null +++ b/.changeset/honest-hats-switch.md @@ -0,0 +1,6 @@ +--- +"@bfra.me/prettier-plugins": minor +"@bfra.me/prettier-config": minor +--- + +Add `@bfra.me/prettier-plugins` and move inline `package.json` plugin from `@bfra.me/prettier-config` diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 14660b7..591805e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,8 +34,10 @@ jobs: cache: pnpm node-version-file: '.node-version' - - name: Install dependencies - run: pnpm install --frozen-lockfile + - name: Install dependencies and build packages + env: + HUSKY: 0 + run: pnpm bootstrap - name: Check formatting run: pnpm run check-format diff --git a/package.json b/package.json index b9f22fd..415e4a0 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "author": "Marcus R. Brown ", "scripts": { - "bootstrap": "pnpm install --frozen-lockfile && pnpm -r build", + "bootstrap": "pnpm install && pnpm -r build", "build": "pnpm -r run build", "check-format": "prettier --check .", "clean": "rimraf --glob \"packages/**/lib\" \"**/*.tsbuildinfo\"", diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index 8e23148..0a24b44 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -29,7 +29,7 @@ }, "types": "prettier.config.d.ts", "dependencies": { - "prettier-package-json": "2.8.0" + "@bfra.me/prettier-plugins": "workspace:*" }, "peerDependencies": { "prettier": "^3.0.0" diff --git a/packages/prettier-config/prettier.config.js b/packages/prettier-config/prettier.config.js index e0277c2..6d1b153 100644 --- a/packages/prettier-config/prettier.config.js +++ b/packages/prettier-config/prettier.config.js @@ -1,6 +1,5 @@ -import {parsers} from 'prettier/plugins/babel' -import {format} from 'prettier-package-json' -const jsonStringifyParser = parsers['json-stringify'] +import {createRequire} from 'module' +const {resolve} = createRequire(import.meta.url) /** * Shared Prettier configuration for bfra.me projects. */ @@ -60,28 +59,7 @@ const config = { }, }, ], - plugins: [ - { - parsers: { - 'json-stringify': { - ...jsonStringifyParser, - preprocess(text, options) { - if (jsonStringifyParser.preprocess) { - text = jsonStringifyParser.preprocess(text, options) - } - if (/package.*json$/u.test(options.filepath)) { - text = format(JSON.parse(text), { - tabWidth: options.tabWidth, - useTabs: options.useTabs === true, - ...(options['prettier-package-json'] ?? {}), - }) - } - return text - }, - }, - }, - }, - ], + plugins: ['@bfra.me/prettier-plugins/package-json'].map(plugin => resolve(plugin)), } export default config //# sourceMappingURL=prettier.config.js.map diff --git a/packages/prettier-config/prettier.config.ts b/packages/prettier-config/prettier.config.ts index cfab7de..9769774 100644 --- a/packages/prettier-config/prettier.config.ts +++ b/packages/prettier-config/prettier.config.ts @@ -1,8 +1,7 @@ -import type {Config, ParserOptions} from 'prettier' -import {parsers} from 'prettier/plugins/babel' -import {format, type Options as PrettierPackageJsonOptions} from 'prettier-package-json' +import {createRequire} from 'module' +import type {Config} from 'prettier' -const jsonStringifyParser = parsers['json-stringify'] +const {resolve} = createRequire(import.meta.url) /** * Shared Prettier configuration for bfra.me projects. @@ -69,30 +68,7 @@ const config: Config = { }, ], - plugins: [ - { - parsers: { - 'json-stringify': { - ...jsonStringifyParser, - - preprocess(text: string, options: ParserOptions) { - if (jsonStringifyParser.preprocess) { - text = jsonStringifyParser.preprocess(text, options) - } - if (/package.*json$/u.test(options.filepath)) { - text = format(JSON.parse(text), { - tabWidth: options.tabWidth, - useTabs: options.useTabs === true, - ...((options['prettier-package-json'] ?? - {}) as Partial), - }) - } - return text - }, - }, - }, - }, - ], + plugins: ['@bfra.me/prettier-plugins/package-json'].map(plugin => resolve(plugin)), } export default config diff --git a/packages/prettier-plugins/package.json b/packages/prettier-plugins/package.json new file mode 100644 index 0000000..bc15f9f --- /dev/null +++ b/packages/prettier-plugins/package.json @@ -0,0 +1,60 @@ +{ + "name": "@bfra.me/prettier-plugins", + "version": "0.0.0", + "description": "Plugins for Prettier used across bfra.me.", + "license": "MIT", + "author": "Marcus R. Brown ", + "homepage": "https://github.com/bfra-me/works/tree/main/packages/prettier-plugins#readme", + "repository": { + "directory": "packages/prettier-plugins", + "type": "git", + "url": "https://github.com/bfra-me/works.git" + }, + "bugs": "https://github.com/bfra-me/works/issues", + "type": "module", + "exports": { + ".": { + "default": "./lib/index.js", + "types": "./lib/index.d.ts" + }, + "./package-json": { + "default": "./lib/package-json/index.js", + "types": "./lib/package-json/index.d.ts" + }, + "./package.json": "./package.json" + }, + "main": "lib/index.js", + "files": [ + "lib", + "!**/*.map" + ], + "scripts": { + "build": "tsup" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "dependencies": { + "prettier-package-json": "2.8.0" + }, + "peerDependencies": { + "prettier": "^3.0.0" + }, + "devDependencies": { + "@bfra.me/prettier-plugins": "workspace:*", + "@bfra.me/tsconfig": "workspace:*", + "prettier": "3.2.5", + "tsup": "8.0.2" + }, + "keywords": [ + "bfra.me", + "plugins", + "prettier", + "prettier-plugins", + "shared", + "works" + ], + "publishConfig": { + "access": "public", + "provenance": true + } +} diff --git a/packages/prettier-plugins/readme.md b/packages/prettier-plugins/readme.md new file mode 100644 index 0000000..d7a3927 --- /dev/null +++ b/packages/prettier-plugins/readme.md @@ -0,0 +1,35 @@ +# @bfra.me/prettier-plugins + +> Plugins for Prettier used across bfra.me. + +## Install + +### NPM + +```sh +npm install --save-dev @bfra.me/prettier-plugins prettier +``` + +### PNPM + +```sh +pnpm add --save-dev @bfra.me/prettier-plugins prettier +``` + +### Yarn + +```sh +yarn add --dev @bfra.me/prettier-plugins prettier +``` + +## Usage + +Add the following entry to your `.prettierrc` file: + +```json +"plugins": ["@bfra.me/prettier-plugins/package-json"] +``` + +## License + +[MIT](../../LICENSE.md) diff --git a/packages/prettier-plugins/src/index.ts b/packages/prettier-plugins/src/index.ts new file mode 100644 index 0000000..6c2aeee --- /dev/null +++ b/packages/prettier-plugins/src/index.ts @@ -0,0 +1 @@ +export * from './package-json' diff --git a/packages/prettier-plugins/src/package-json/index.ts b/packages/prettier-plugins/src/package-json/index.ts new file mode 100644 index 0000000..0f8f96c --- /dev/null +++ b/packages/prettier-plugins/src/package-json/index.ts @@ -0,0 +1,25 @@ +import type {Parser, ParserOptions} from 'prettier' +import {parsers as babelParsers} from 'prettier/plugins/babel' +import {format, type Options as PrettierPackageJsonOptions} from 'prettier-package-json' + +const jsonStringifyParser = babelParsers['json-stringify'] + +export const parsers = { + 'json-stringify': { + ...jsonStringifyParser, + + preprocess(text: string, options: ParserOptions) { + if (jsonStringifyParser.preprocess) { + text = jsonStringifyParser.preprocess(text, options) + } + if (/package.*json$/u.test(options.filepath)) { + text = format(JSON.parse(text), { + tabWidth: options.tabWidth, + useTabs: options.useTabs === true, + ...((options['prettier-package-json'] ?? {}) as Partial), + }) + } + return text + }, + }, +} satisfies Record diff --git a/packages/prettier-plugins/tsconfig.json b/packages/prettier-plugins/tsconfig.json new file mode 100644 index 0000000..d8c5e7c --- /dev/null +++ b/packages/prettier-plugins/tsconfig.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + "extends": "@bfra.me/tsconfig", + "compilerOptions": { + "composite": false, + "incremental": false, + "noEmit": true, + "outDir": "lib" + }, + "exclude": ["lib", "node_modules"] +} diff --git a/packages/prettier-plugins/tsup.config.ts b/packages/prettier-plugins/tsup.config.ts new file mode 100644 index 0000000..f87501b --- /dev/null +++ b/packages/prettier-plugins/tsup.config.ts @@ -0,0 +1,11 @@ +import {defineConfig} from 'tsup' + +export default defineConfig({ + entry: ['src/**/*.ts'], + bundle: false, + clean: true, + dts: true, + format: 'esm', + outDir: 'lib', + sourcemap: true, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4eb440d..f2c842d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,12 +46,28 @@ importers: version: 5.4.3 packages/prettier-config: + dependencies: + '@bfra.me/prettier-plugins': + specifier: workspace:* + version: link:../prettier-plugins + devDependencies: + '@bfra.me/prettier-config': + specifier: workspace:* + version: 'link:' + '@bfra.me/tsconfig': + specifier: workspace:* + version: link:../tsconfig + prettier: + specifier: 3.2.5 + version: 3.2.5 + + packages/prettier-plugins: dependencies: prettier-package-json: specifier: 2.8.0 version: 2.8.0 devDependencies: - '@bfra.me/prettier-config': + '@bfra.me/prettier-plugins': specifier: workspace:* version: 'link:' '@bfra.me/tsconfig': @@ -60,6 +76,9 @@ importers: prettier: specifier: 3.2.5 version: 3.2.5 + tsup: + specifier: 8.0.2 + version: 8.0.2(@swc/core@1.4.11)(ts-node@10.9.2)(typescript@5.4.3) packages/semantic-release: devDependencies: @@ -174,7 +193,6 @@ packages: /@changesets/cli@2.27.1: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} - hasBin: true dependencies: '@babel/runtime': 7.24.1 '@changesets/apply-release-plan': 7.0.0 @@ -872,7 +890,6 @@ packages: /@manypkg/cli@0.21.3: resolution: {integrity: sha512-ro6j5b+44dN2AfId23voWxdlOqUCSbCwUHrUwq0LpoN/oZy6zQFAHDwYHbw50j2nL9EgpwIA03ZjaBceuUcMrw==} engines: {node: '>=14.18.0'} - hasBin: true dependencies: '@manypkg/get-packages': 2.2.1 chalk: 2.4.2 @@ -1532,7 +1549,6 @@ packages: /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true dependencies: jsonparse: 1.3.1 through: 2.3.8 @@ -1553,7 +1569,6 @@ packages: /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} - hasBin: true /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -1920,7 +1935,6 @@ packages: /cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true dependencies: chalk: 4.1.2 highlight.js: 10.7.3 @@ -2016,7 +2030,6 @@ packages: /conventional-changelog-writer@7.0.1: resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} engines: {node: '>=16'} - hasBin: true dependencies: conventional-commits-filter: 4.0.0 handlebars: 4.7.8 @@ -2034,7 +2047,6 @@ packages: /conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} - hasBin: true dependencies: JSONStream: 1.3.5 is-text-path: 2.0.0 @@ -2409,7 +2421,6 @@ packages: /esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} - hasBin: true requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 @@ -2440,7 +2451,6 @@ packages: /esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} - hasBin: true requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 @@ -2502,7 +2512,6 @@ packages: /eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 @@ -2558,7 +2567,6 @@ packages: /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} - hasBin: true dev: false /esquery@1.5.0: @@ -2901,7 +2909,6 @@ packages: /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} - hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -2997,7 +3004,6 @@ packages: /handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} - hasBin: true dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -3431,7 +3437,6 @@ packages: /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 @@ -3439,7 +3444,6 @@ packages: /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true dependencies: argparse: 2.0.1 @@ -3681,7 +3685,6 @@ packages: /marked@12.0.1: resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} engines: {node: '>= 18'} - hasBin: true dev: true /meow@12.1.1: @@ -3724,7 +3727,6 @@ packages: /mime@4.0.1: resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} engines: {node: '>=16'} - hasBin: true dev: true /mimic-fn@2.1.0: @@ -3808,7 +3810,6 @@ packages: /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true dev: true /natural-compare@1.4.0: @@ -3889,7 +3890,6 @@ packages: /npm@10.5.0: resolution: {integrity: sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==} engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true dev: true bundledDependencies: - '@isaacs/string-locale-compare' @@ -4157,7 +4157,6 @@ packages: /parse-github-url@1.0.2: resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} engines: {node: '>=0.10.0'} - hasBin: true dev: false /parse-json@4.0.0: @@ -4345,7 +4344,6 @@ packages: /prettier-package-json@2.8.0: resolution: {integrity: sha512-WxtodH/wWavfw3MR7yK/GrS4pASEQ+iSTkdtSxPJWvqzG55ir5nvbLt9rw5AOiEcqqPCRM92WCtR1rk3TG3JSQ==} - hasBin: true dependencies: '@types/parse-author': 2.0.3 commander: 4.1.1 @@ -4361,13 +4359,11 @@ packages: /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} - hasBin: true dev: false /prettier@3.2.5: resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} - hasBin: true /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} @@ -4408,7 +4404,6 @@ packages: /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 @@ -4549,7 +4544,6 @@ packages: /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 @@ -4569,7 +4563,6 @@ packages: /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true dependencies: glob: 7.2.3 dev: false @@ -4577,7 +4570,6 @@ packages: /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} - hasBin: true dependencies: glob: 10.3.10 dev: false @@ -4585,7 +4577,6 @@ packages: /rollup@4.13.0: resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -4640,7 +4631,6 @@ packages: /semantic-release@23.0.6(typescript@5.4.3): resolution: {integrity: sha512-/r62F4PNhJZhyZYMobcpcACGwpFNQyaVcSmqZQXG50GMbHSBVZQLCvwafqxO1lDQKVgmGmyCEtOVYzwvzvyhVw==} engines: {node: '>=20.8.1'} - hasBin: true dependencies: '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.6) '@semantic-release/error': 4.0.0 @@ -4702,13 +4692,11 @@ packages: /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true dev: false /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} - hasBin: true dependencies: lru-cache: 6.0.0 @@ -4809,7 +4797,6 @@ packages: /smartwrap@2.0.2: resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} engines: {node: '>=6'} - hasBin: true dependencies: array.prototype.flat: 1.3.2 breakword: 1.0.6 @@ -5009,7 +4996,6 @@ packages: /sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} - hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 @@ -5142,7 +5128,6 @@ packages: /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true dev: true /trim-newlines@3.0.1: @@ -5156,7 +5141,6 @@ packages: /ts-node@10.9.2(@types/node@20.11.30)(typescript@5.4.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' @@ -5187,7 +5171,6 @@ packages: /tsup@8.0.2(@swc/core@1.4.11)(ts-node@10.9.2)(typescript@5.4.3): resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} engines: {node: '>=18'} - hasBin: true peerDependencies: '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 @@ -5227,7 +5210,6 @@ packages: /tty-table@4.2.3: resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} engines: {node: '>=8.0.0'} - hasBin: true dependencies: chalk: 4.1.2 csv: 5.5.3 @@ -5332,7 +5314,6 @@ packages: /typescript@5.4.3: resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} - hasBin: true /ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} @@ -5341,7 +5322,6 @@ packages: /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} - hasBin: true requiresBuild: true dev: true optional: true @@ -5420,7 +5400,6 @@ packages: /vite-node@1.4.0(@types/node@20.11.30): resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 @@ -5441,7 +5420,6 @@ packages: /vite@5.2.6(@types/node@20.11.30): resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==} engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true peerDependencies: '@types/node': ^18.0.0 || >=20.0.0 less: '*' @@ -5477,7 +5455,6 @@ packages: /vitest@1.4.0(@types/node@20.11.30): resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 @@ -5594,7 +5571,6 @@ packages: /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true dependencies: isexe: 2.0.0 dev: false @@ -5602,14 +5578,12 @@ packages: /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} - hasBin: true dependencies: isexe: 2.0.0 /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} - hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -5676,7 +5650,6 @@ packages: /yaml@2.4.1: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} - hasBin: true dev: true /yargs-parser@18.1.3: