diff --git a/.editorconfig b/.editorconfig index 5fbb1cdc..0020fc03 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,5 @@ -[*.ts] +root = true + +[*] indent_style = space indent_size = 2 diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index a413cb13..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -packages/*/node_modules -**/*.d.ts diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 9bed3407..00000000 --- a/.eslintrc +++ /dev/null @@ -1,49 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/recommended", - "plugin:import/typescript", - "prettier" - ], - "plugins": ["@typescript-eslint", "import", "prettier"], - "rules": { - "prettier/prettier": ["error", { "singleQuote": true }], - "@typescript-eslint/array-type": ["error", { "default": "generic" }], - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/explicit-function-return-type": [ - "error", - { "allowExpressions": true } - ], - "@typescript-eslint/no-use-before-define": [ - "error", - { "functions": false } - ], - "@typescript-eslint/no-parameter-properties": "off", - "@typescript-eslint/no-object-literal-type-assertion": "off", - "@typescript-eslint/no-unused-vars": "error" - }, - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".jsx", ".ts", ".tsx"] - } - } - }, - "overrides": [ - { - "files": ["**/fixtures/**/*.ts"], - "rules": { - "no-console": "off" - } - }, - { - "files": ["**/bin/*"], - "env": { - "node": true - } - } - ] -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa843263..5b521d23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - cache: 'pnpm' + cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 886020e0..9eb5805f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,12 +1,12 @@ -name: "CodeQL" +name: CodeQL on: push: - branches: [ "main" ] + branches: [main] pull_request: - branches: [ "main" ] + branches: [main] schedule: - - cron: "54 14 * * 3" + - cron: '54 14 * * 3' jobs: analyze: @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ javascript ] + language: [javascript] steps: - name: Checkout @@ -38,4 +38,4 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 with: - category: "/language:${{ matrix.language }}" + category: '/language:${{ matrix.language }}' diff --git a/.gitignore b/.gitignore index d32e154e..3502ef7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,144 @@ -# ignore pack -*.tgz +# Created by https://www.toptal.com/developers/gitignore/api/node +# Edit at https://www.toptal.com/developers/gitignore?templates=node -# ignore development -node_modules +### Node ### +# Logs +logs *.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components -# ignore vim dotfiles -*.swp -*.swo +# node-waf configuration +.lock-wscript -# ignore idea directory -.idea/ +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release -# TypeScript build files -build +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache *.tsbuildinfo -# allow fixtures -!test/fixtures/**/*.js -test/fixtures/**/*-typescript.js +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test -# allow JS config files -!*.config.js +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* -# allow JS script files -!script/_utils/runCommand.js +### Node Patch ### +# Serverless Webpack directories +.webpack/ -# ignore tmp directory -tmp +# Optional stylelint cache -# ignore custom build files -packages/matchers/src/matchers.ts.expected +# SvelteKit build / generate output +.svelte-kit -# test coverage -coverage \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/node diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index fbd10372..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -pnpx commitlint --from="$(git merge-base HEAD main)" diff --git a/.node-version b/.node-version deleted file mode 100644 index 58a4133d..00000000 --- a/.node-version +++ /dev/null @@ -1 +0,0 @@ -16.13.0 diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index fd496a82..00000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "singleQuote": true, - "semi": false -} diff --git a/commitlint.config.js b/commitlint.config.js index 98ee7dfc..d179c690 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,3 +1,3 @@ -module.exports = { +export default { extends: ['@commitlint/config-conventional'], } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..4be066cb --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,5 @@ +import antfu from '@antfu/eslint-config' + +export default antfu( + { type: 'lib', ignores: ['**/fixtures', 'packages/matchers/src/matchers/generated.ts'], typescript: { tsconfigPath: 'tsconfig.json' } }, +) diff --git a/package.json b/package.json index 7c5db461..978b069f 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { - "name": "codemod", + "name": "codemod-esm", + "type": "module", "private": true, "workspaces": { "packages": [ @@ -9,47 +10,38 @@ "**/@types/**" ] }, + "packageManager": "pnpm@10.5.2+sha512.da9dc28cd3ff40d0592188235ab25d3202add8a207afbedc682220e4a0029ffbff4562102b9e6e46b4e3f9e8bd53e6d05de48544b0c57d4b0179e22c76d1199b", + "scripts": { + "prepare": "husky" + }, + "devDependencies": { + "@antfu/eslint-config": "^4.4.0", + "@types/jest": "^29.5.14", + "@types/node": "^22.13.9", + "bun": "^1.2.4", + "esbuild": "^0.25.0", + "eslint": "^9.21.0", + "husky": "^9.1.7", + "lerna": "^8.2.1", + "lint-staged": "^15.4.3", + "prettier": "^3.5.3", + "rimraf": "^6.0.1", + "typescript": "^5.8.2" + }, "husky": { "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" + "pre-commit": "lint-staged" } }, "lint-staged": { "*.md": [ - "prettier --write" + "eslint --fix" ], "*.ts": [ "eslint --fix" ], - "package.json": [ - "sort-package-json" + "*.json": [ + "eslint --fix" ] - }, - "resolutions": { - "@babel/parser": "7.20.15" - }, - "devDependencies": { - "@commitlint/cli": "^14.1.0", - "@commitlint/config-conventional": "^14.1.0", - "@types/node": "^18.14.0", - "@typescript-eslint/eslint-plugin": "^5.3.1", - "@typescript-eslint/parser": "^5.3.1", - "esbuild": "^0.13.13", - "esbuild-runner": "^2.2.1", - "eslint": "^8.2.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^4.0.0", - "husky": "^8.0.0", - "jest": "^27.3.1", - "lerna": "^4.0.0", - "lint-staged": "^13.1.2", - "prettier": "^2.4.1", - "sort-package-json": "^1.53.1", - "typescript": "^4.4.4" - }, - "scripts": { - "prepare": "husky install" } } diff --git a/packages/cli/.eslintignore b/packages/cli/.eslintignore deleted file mode 100644 index f6ec2f86..00000000 --- a/packages/cli/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -build -coverage -__tests__/fixtures diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md deleted file mode 100644 index 1190661e..00000000 --- a/packages/cli/CHANGELOG.md +++ /dev/null @@ -1,95 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -# [3.3.0](https://github.com/codemod-js/codemod/compare/@codemod/cli@3.2.0...@codemod/cli@3.3.0) (2023-02-18) - - -### Features - -* **cli:** add `defineCodemod` to ease creation ([86a62a1](https://github.com/codemod-js/codemod/commit/86a62a11d9f25f2e2e581ff6287ce885ce18f93a)) - - - - - -# [3.2.0](https://github.com/codemod-js/codemod/compare/@codemod/cli@3.1.1...@codemod/cli@3.2.0) (2023-02-17) - -### Features - -- **cli:** add `--parser-plugins` option ([3593893](https://github.com/codemod-js/codemod/commit/3593893791c7e4e0e0c8cea31ea642b229c0bb8a)) - -## [3.1.0](https://github.com/codemod-js/codemod/compare/@codemod/cli@3.0.1...@codemod/cli@3.1.0) (2021-11-14) - -- **feat:** improve gitignore handling ([e04c0c4](https://github.com/codemod-js/codemod/commit/e04c0c41d5cb3d86c6cdbbac932efcad968c73c9)) - -## [3.0.1](https://github.com/codemod-js/codemod/compare/@codemod/cli@3.0.0...@codemod/cli@3.0.1) (2021-11-12) - -- **refactor:** use globby instead of a custom directory traversal (author: [NickHeiner](https://github.com/NickHeiner)) ([468092a](https://github.com/codemod-js/codemod/commit/468092afa532112ba2b126d949dcf0e38f0c2acd)) - -## [3.0.0](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.3.2...@codemod/cli@3.0.0) (2021-11-12) - -- remove underused options: `--printer`, `--babelrc`, `--find-babel-config` ([50a864d](https://github.com/codemod-js/codemod/commit/50a864df7344767a5c0e9e3ab990a0f4d05d634d)) -- update babel to v7.16.x ([1218bf9](https://github.com/codemod-js/codemod/commit/1218bf98145feaa8a692611152559aa6b46b9ba0)) - -## [2.1.16](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.13...@codemod/cli@2.1.16) (2020-04-05) - -### Bug Fixes - -- **deps:** upgrade recast ([b6220f3](https://github.com/codemod-js/codemod/commit/b6220f3f26a41f4e58bdca7815bc8f6e9a820866)) -- update babel dependencies ([0d9d569](https://github.com/codemod-js/codemod/commit/0d9d56985dbc5d47621073561cd1617116685e5d)) -- upgrade babel to 7.9.0 ([bfdc402](https://github.com/codemod-js/codemod/commit/bfdc402a6ec0d5a1068c02c07107e8f7148e8a1a)) -- upgrade prettier ([4a22030](https://github.com/codemod-js/codemod/commit/4a22030af417911cad1efe44111f9da38c1cc102)) - -## [2.1.15](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.13...@codemod/cli@2.1.15) (2020-03-25) - -### Bug Fixes - -- update babel dependencies ([0d9d569](https://github.com/codemod-js/codemod/commit/0d9d56985dbc5d47621073561cd1617116685e5d)) -- upgrade babel to 7.9.0 ([bfdc402](https://github.com/codemod-js/codemod/commit/bfdc402a6ec0d5a1068c02c07107e8f7148e8a1a)) -- upgrade prettier ([4a22030](https://github.com/codemod-js/codemod/commit/4a22030af417911cad1efe44111f9da38c1cc102)) - -## [2.1.11](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.10...@codemod/cli@2.1.11) (2019-10-16) - -### Bug Fixes - -- **package:** remove unnecessary non-development dependency `jest` ([cf322a1](https://github.com/codemod-js/codemod/commit/cf322a1)) - -## [2.1.10](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.9...@codemod/cli@2.1.10) (2019-08-09) - -### Bug Fixes - -- **license:** update outdated license files ([58e4b11](https://github.com/codemod-js/codemod/commit/58e4b11)) - -## [2.1.9](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.8...@codemod/cli@2.1.9) (2019-08-09) - -### Bug Fixes - -- **package:** add "types" to package.json ([094d504](https://github.com/codemod-js/codemod/commit/094d504)) - -## [2.1.8](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.7...@codemod/cli@2.1.8) (2019-08-07) - -### Bug Fixes - -- use `ParserOptions` from `@codemod/parser` ([09bc2b5](https://github.com/codemod-js/codemod/commit/09bc2b5)) - -## [2.1.7](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.6...@codemod/cli@2.1.7) (2019-08-02) - -### Refactors - -- extract `@codemod/parser` and `@codemod/core` ([c43ecd52](https://github.com/codemod-js/codemod/commit/c43ecd52)) - -### Features - -- initial commit of [@codemod](https://github.com/codemod)/matchers ([84de839](https://github.com/codemod-js/codemod/commit/84de839)) - -## [2.1.6](https://github.com/codemod-js/codemod/compare/@codemod/cli@2.1.5...@codemod/cli@2.1.6) (2019-07-31) - -### Bug Fixes - -- update babel dependencies ([6984c7c](https://github.com/codemod-js/codemod/commit/6984c7c)) - -### Features - -- initial commit of `@codemod/matchers` ([84de839](https://github.com/codemod-js/codemod/commit/84de839)) diff --git a/packages/cli/LICENSE.txt b/packages/cli/LICENSE.txt deleted file mode 100644 index db69b6e1..00000000 --- a/packages/cli/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, March 2017 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2017 Brian Donovan - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/packages/cli/README.md b/packages/cli/README.md deleted file mode 100644 index 5d2e1e25..00000000 --- a/packages/cli/README.md +++ /dev/null @@ -1,108 +0,0 @@ -# codemod - -codemod rewrites JavaScript and TypeScript using babel plugins. - -## Install - -Install from [npm](https://npmjs.com/): - -```sh -$ npm install @codemod/cli -``` - -This will install the runner locally as `codemod`. This package requires node -v16 or higher. This README assumes you've installed locally, but you can also -install globally with `npm install -g @codemod/cli`. - -## Usage - -The primary interface is as a command line tool, usually run like so: - -```sh -$ npx codemod --plugin transform-module-name \ - path/to/file.js \ - another/file.js \ - a/directory -``` - -This will re-write the files `path/to/file.js`, `another/file.js`, and any supported files found in `a/directory` by transforming them with the babel plugin `transform-module-name`. Multiple plugins may be specified, and multiple files or directories may be re-written at once. - -Note that TypeScript support is provided by babel and therefore may not completely support all valid TypeScript code. If you encounter an issue, consider looking for it in the [babel issues labeled `area: typescript`](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22area%3A+typescript%22+) before filing an issue. - -Plugins may also be loaded from remote URLs, including saved [AST Explorer](https://astexplorer.net/) URLs, using `--remote-plugin`. This feature should only be used as a convenience to load code that you or someone you trust wrote. It will run with your full user privileges, so please exercise caution! - -```sh -$ npx codemod --remote-plugin URL … -``` - -By default, `codemod` makes minimal changes to your source files by using [recast](https://github.com/benjamn/recast) to parse and print your code, retaining the original comments and formatting. If desired, you can reformat files using [Prettier](https://prettier.io/) or ESLint or whatever other tools you prefer after the fact. - -For more detailed options, run `npx codemod --help`. - -## Writing a Plugin - -There are [many, many existing plugins](https://www.npmjs.com/search?q=babel-plugin) that you can use. However, if you need to write your own you should consult the [babel handbook](https://github.com/thejameskyle/babel-handbook). If you publish a plugin intended specifically as a codemod, consider using both the [`babel-plugin`](https://www.npmjs.com/search?q=babel-plugin) and [`babel-codemod`](https://www.npmjs.com/search?q=babel-codemod) keywords. - -`@codemod/cli` provides a few helpers to make writing codemod plugins easier. For example: - -```ts -/** - * This codemod rewrites `A * A` to `A ** 2` for any expression `A`. - */ -import { defineCodemod } from '@codemod/cli' - -// `m` is `@codemod/matchers`, a library of useful matchers -// `t` is `@babel/types`, babel AST type predicates and builders -export default defineCodemod(({ t, m }) => { - // `operand` is a capture matcher that will be filled in by `multiplyBySelf`, - // which is a binary expression matcher that matches any expression multiplied - // by itself. - const operand = m.capture(m.anyExpression()) - const multiplyBySelf = m.binaryExpression( - '*', - operand, - m.fromCapture(operand) - ) - - return { - visitor: { - BinaryExpression(path) { - m.match(multiplyBySelf, { operand }, path.node, ({ operand }) => { - path.replaceWith( - t.binaryExpression('**', operand, t.numericLiteral(2)) - ) - }) - }, - }, - } -}) -``` - -### Transpiling using Babel Plugins - -`codemod` supports parsing language features supported by a standard Babel or TypeScript build toolchain, similar to what a Create React App build pipeline can handle. Feel free to write your plugins using these language features–they'll be transpiled on the fly. - -### Passing Options to Plugins - -You can pass a JSON object as options to a plugin: - -```sh -# Pass a JSON object literal -$ npx codemod --plugin ./my-plugin.ts --plugin-options '{"opt": true}' -# Pass a JSON object from a file -$ npx codemod --plugin ./my-plugin.ts --plugin-options @opts.json -``` - -## Contributing - -See [CONTRIBUTING.md](../../CONTRIBUTING.md) for information on setting up the project for development and on contributing to the project. - -## License - -Copyright 2017 Brian Donovan - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/packages/cli/__tests__/cli/cli.test.ts b/packages/cli/__tests__/cli/cli.test.ts deleted file mode 100644 index eb4ac69c..00000000 --- a/packages/cli/__tests__/cli/cli.test.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname, resolve as pathResolve } from 'path' -import createTemporaryFile, { - createTemporaryFiles, -} from '../helpers/createTemporaryFile' -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -it('respects globs', async function () { - const pathInFixtures = (dirPath: string): string => - pathResolve(__dirname, '..', 'fixtures', 'glob-test', dirPath) - const { status, stdout, stderr } = await runCodemodCLI([ - '--dry', - pathInFixtures('**/*.js'), - `!${pathInFixtures('omit.js')}`, - ]) - - expect(stderr).toEqual('') - expect(stdout).toEqual(expect.stringContaining('abc.js')) - expect(stdout).toEqual(expect.stringContaining('subdir/def.js')) - expect(stdout).not.toEqual(expect.stringContaining('omit.js')) - expect(status).toEqual(0) -}) - -it('can read from stdin and write to stdout given the --stdio flag', async function () { - expect(await runCodemodCLI(['--stdio'], { stdin: '3+4' })).toEqual({ - status: 0, - stdout: '3+4', - stderr: '', - }) -}) - -it('reads from a file, processes with plugins, then writes to that file', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([afile, '-p', plugin('increment')], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') -}) - -it('processes all matching files in a directory', async function () { - const [file1, file2, file3, ignored] = await createTemporaryFiles( - ['file1.js', '3 + 4;'], - ['file2.ts', '0;'], - ['sub-dir/file3.jsx', '99;'], - ['ignored.css', '* {}'] - ) - expect( - await runCodemodCLI([dirname(file1), '-p', plugin('increment')], { - cwd: dirname(file1), - }) - ).toEqual({ - status: 0, - stdout: `file1.js\nfile2.ts\nsub-dir/file3.jsx\n3 file(s), 3 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(file1, 'utf8')).toEqual('4 + 5;') - expect(await fs.readFile(file2, 'utf8')).toEqual('1;') - expect(await fs.readFile(file3, 'utf8')).toEqual('100;') - expect(await fs.readFile(ignored, 'utf8')).toEqual('* {}') -}) - -it('prints files not processed in dim colors', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect(await runCodemodCLI([afile], { cwd: dirname(afile) })).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 0 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('3 + 4;') -}) - -it('can rewrite TypeScript files ending in `.ts`', async function () { - const afile = await createTemporaryFile( - 'a-file.ts', - 'type A = any;\nlet a = {} as any;' - ) - expect( - await runCodemodCLI( - [afile, '-p', plugin('replace-any-with-object', '.ts')], - { cwd: dirname(afile) } - ) - ).toEqual({ - status: 0, - stdout: `a-file.ts\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - - expect(await fs.readFile(afile, 'utf8')).toEqual( - 'type A = object;\nlet a = {} as object;' - ) -}) - -it('can rewrite TypeScript files ending in `.tsx`', async function () { - const afile = await createTemporaryFile( - 'a-file.tsx', - 'export default () => (
);' - ) - expect(await runCodemodCLI([afile], { cwd: dirname(afile) })).toEqual({ - status: 0, - stdout: `a-file.tsx\n1 file(s), 0 modified, 0 errors\n`, - stderr: '', - }) - - expect(await fs.readFile(afile, 'utf8')).toEqual( - 'export default () => (
);' - ) -}) - -it('can pass options to a plugin without naming it', async function () { - expect( - await runCodemodCLI( - [ - '--plugin', - plugin('append-options-string', '.ts'), - '--plugin-options', - `${JSON.stringify({ a: 4 })}`, - '--stdio', - ], - { stdin: '' } - ) - ).toEqual({ - status: 0, - stdout: `${JSON.stringify(JSON.stringify({ a: 4 }))};`, - stderr: '', - }) -}) diff --git a/packages/cli/__tests__/cli/dry-run.test.ts b/packages/cli/__tests__/cli/dry-run.test.ts deleted file mode 100644 index 7f847227..00000000 --- a/packages/cli/__tests__/cli/dry-run.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname } from 'path' -import createTemporaryFile from '../helpers/createTemporaryFile' -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -it('processes files but does not replace their contents when using --dry', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([afile, '-p', plugin('increment'), '--dry'], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\nDRY RUN: no files affected\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('3 + 4;') -}) diff --git a/packages/cli/__tests__/cli/errors.test.ts b/packages/cli/__tests__/cli/errors.test.ts deleted file mode 100644 index f7718d53..00000000 --- a/packages/cli/__tests__/cli/errors.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import createTemporaryFile from '../helpers/createTemporaryFile' -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -test('fails with an error when passing an invalid option', async function () { - expect(await runCodemodCLI(['--not-a-real-option'])).toEqual({ - status: 1, - stdout: '', - stderr: expect.stringContaining( - 'ERROR: unexpected option: --not-a-real-option' - ), - }) -}) - -test('fails with an error when a plugin throws an exception', async function () { - expect( - await runCodemodCLI(['--plugin', plugin('bad-plugin'), '--stdio'], { - stdin: '3+4', - }) - ).toEqual({ - status: 1, - stdout: '', - stderr: expect.stringContaining('I am a bad plugin'), - }) -}) - -it.skip('does not try to load TypeScript files when --no-transpile-plugins is set', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([ - afile, - '--no-transpile-plugins', - '-p', - plugin('increment-typescript', ''), - ]) - ).toEqual({ - status: 255, - stdout: '', - stderr: expect.stringContaining('SyntaxError'), - }) -}) diff --git a/packages/cli/__tests__/cli/extensions.test.ts b/packages/cli/__tests__/cli/extensions.test.ts deleted file mode 100644 index e0d7bca5..00000000 --- a/packages/cli/__tests__/cli/extensions.test.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname } from 'path' -import createTemporaryFile, { - createTemporaryFiles, -} from '../helpers/createTemporaryFile' -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -test('can load plugins written with ES modules by default', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([afile, '-p', plugin('increment-export-default')], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') -}) - -test('can load plugins written in TypeScript by default', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([afile, '-p', plugin('increment-typescript', '.ts')], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') -}) - -test('can implicitly find plugins with .ts extensions', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI([afile, '-p', plugin('increment-typescript', '')], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') -}) - -test('can load plugins with multiple files with ES modules by default`', async function () { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - expect( - await runCodemodCLI( - [ - afile, - '-p', - plugin('increment-export-default-multiple/increment-export-default'), - ], - { cwd: dirname(afile) } - ) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') -}) - -test('processes all matching files in a directory with custom extensions', async function () { - const [ignored, processed] = await createTemporaryFiles( - ['ignored.js', '3 + 4;'], - ['processed.myjs', '0;'] - ) - expect( - await runCodemodCLI( - [dirname(ignored), '-p', plugin('increment'), '--extensions', '.myjs'], - { cwd: dirname(ignored) } - ) - ).toEqual({ - status: 0, - stdout: `processed.myjs\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - expect(await fs.readFile(ignored, 'utf8')).toEqual('3 + 4;') - expect(await fs.readFile(processed, 'utf8')).toEqual('1;') -}) diff --git a/packages/cli/__tests__/cli/info.test.ts b/packages/cli/__tests__/cli/info.test.ts deleted file mode 100644 index b711ee48..00000000 --- a/packages/cli/__tests__/cli/info.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -test('prints help', async function () { - expect(await runCodemodCLI(['--help'])).toEqual({ - status: 0, - stdout: expect.stringContaining('codemod [OPTIONS]'), - stderr: '', - }) -}) - -test('prints the version', async function () { - expect(await runCodemodCLI(['--version'])).toEqual({ - status: 0, - stdout: expect.stringMatching(/\d+\.\d+\.\d+\s*$/), - stderr: '', - }) -}) diff --git a/packages/cli/__tests__/cli/plugin-syntax.ts b/packages/cli/__tests__/cli/plugin-syntax.ts deleted file mode 100644 index 715a47d7..00000000 --- a/packages/cli/__tests__/cli/plugin-syntax.ts +++ /dev/null @@ -1,27 +0,0 @@ -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -it('can load a plugin that uses class properties', async function () { - expect( - await runCodemodCLI( - ['--plugin', plugin('class-properties', '.ts'), '--stdio'], - { stdin: '' } - ) - ).toEqual({ - status: 0, - stdout: '', - stderr: '', - }) -}) - -it('can load a plugin that uses generators', async function () { - expect( - await runCodemodCLI(['--plugin', plugin('generators', '.ts'), '--stdio'], { - stdin: '', - }) - ).toEqual({ - status: 0, - stdout: '', - stderr: '', - }) -}) diff --git a/packages/cli/__tests__/cli/remote-plugin.test.ts b/packages/cli/__tests__/cli/remote-plugin.test.ts deleted file mode 100644 index 34a9a9d3..00000000 --- a/packages/cli/__tests__/cli/remote-plugin.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname } from 'path' -import createTemporaryFile from '../helpers/createTemporaryFile' -import plugin from '../helpers/plugin' -import { runCodemodCLI } from '../helpers/runCodemodCLI' -import { startServer } from '../helpers/TestServer' - -test('can load and run with a remote plugin', async () => { - const afile = await createTemporaryFile('a-file.js', '3 + 4;') - const server = await startServer(async (req, res) => { - expect(req.url).toEqual('/plugin.js') - - res.end( - await fs.readFile(plugin('increment-export-default'), { - encoding: 'utf8', - }) - ) - }) - - try { - const { status, stdout, stderr } = await runCodemodCLI( - [afile, '--remote-plugin', server.requestURL('/plugin.js').toString()], - { cwd: dirname(afile) } - ) - - expect({ status, stdout, stderr }).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 1 modified, 0 errors\n`, - stderr: '', - }) - - expect(await fs.readFile(afile, 'utf8')).toEqual('4 + 5;') - } finally { - await server.stop() - } -}) diff --git a/packages/cli/__tests__/cli/source-type.test.ts b/packages/cli/__tests__/cli/source-type.test.ts deleted file mode 100644 index 1e64faa2..00000000 --- a/packages/cli/__tests__/cli/source-type.test.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { dirname } from 'path' -import createTemporaryFile, { - createTemporaryFiles, -} from '../helpers/createTemporaryFile' -import { runCodemodCLI } from '../helpers/runCodemodCLI' - -it('can specify the source type as "script"', async function () { - const afile = await createTemporaryFile( - 'a-file.js', - 'with (a) { b; }' // `with` statements aren't allowed in modules - ) - expect( - await runCodemodCLI([afile, '--source-type', 'script'], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 0 modified, 0 errors\n`, - stderr: '', - }) -}) - -it('can specify the source type as "module"', async function () { - const afile = await createTemporaryFile( - 'a-file.js', - 'import "./b-file"' // `import` statements aren't allowed in scripts - ) - expect( - await runCodemodCLI([afile, '--source-type', 'module'], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\n1 file(s), 0 modified, 0 errors\n`, - stderr: '', - }) -}) - -it('can specify the source type as "unambiguous"', async function () { - const [afile, bfile] = await createTemporaryFiles( - [ - 'a-file.js', - 'with (a) { b; }', // `with` statements aren't allowed in modules - ], - [ - 'b-file.js', - 'import "./a-file"', // `import` statements aren't allowed in scripts - ] - ) - expect( - await runCodemodCLI([afile, bfile, '--source-type', 'unambiguous'], { - cwd: dirname(afile), - }) - ).toEqual({ - status: 0, - stdout: `a-file.js\nb-file.js\n2 file(s), 0 modified, 0 errors\n`, - stderr: '', - }) -}) - -it('fails when given an invalid source type', async function () { - expect(await runCodemodCLI(['--source-type', 'hypercard'])).toEqual({ - status: 1, - stdout: '', - stderr: expect.stringContaining( - `ERROR: expected '--source-type' to be one of "module", "script", or "unambiguous" but got: "hypercard"` - ), - }) -}) diff --git a/packages/cli/__tests__/fixtures/astexplorer/default.json b/packages/cli/__tests__/fixtures/astexplorer/default.json deleted file mode 100644 index a91dca02..00000000 --- a/packages/cli/__tests__/fixtures/astexplorer/default.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "url": "https://api.github.com/gists/68827467161b95ee48048ff906fab6d8/5ece951309157948661ae732af89209715bfe532", - "forks_url": "https://api.github.com/gists/68827467161b95ee48048ff906fab6d8/forks", - "commits_url": "https://api.github.com/gists/68827467161b95ee48048ff906fab6d8/commits", - "id": "68827467161b95ee48048ff906fab6d8", - "git_pull_url": "https://gist.github.com/68827467161b95ee48048ff906fab6d8.git", - "git_push_url": "https://gist.github.com/68827467161b95ee48048ff906fab6d8.git", - "html_url": "https://gist.github.com/68827467161b95ee48048ff906fab6d8", - "files": { - "astexplorer.json": { - "filename": "astexplorer.json", - "type": "application/json", - "language": "JSON", - "raw_url": "https://gist.githubusercontent.com/astexplorer/68827467161b95ee48048ff906fab6d8/raw/cb6fddcb3f083959bd7a1eb5ad5162a4aae118a7/astexplorer.json", - "size": 172, - "truncated": false, - "content": "{\n \"v\": 2,\n \"parserID\": \"babylon6\",\n \"toolID\": \"babelv6\",\n \"settings\": {\n \"babylon6\": {}\n },\n \"versions\": {\n \"babylon6\": \"6.18.0\",\n \"babelv6\": \"6.26.0\"\n }\n}" - }, - "source.js": { - "filename": "source.js", - "type": "application/javascript", - "language": "JavaScript", - "raw_url": "https://gist.githubusercontent.com/astexplorer/68827467161b95ee48048ff906fab6d8/raw/6fd1298030902993fc1162089b648dd6cd37206d/source.js", - "size": 476, - "truncated": false, - "content": "/**\n * Paste or drop some JavaScript here and explore\n * the syntax tree created by chosen parser.\n * You can use all the cool new features from ES6\n * and even more. Enjoy!\n */\n\nlet tips = [\n \"Click on any AST node with a '+' to expand it\",\n\n \"Hovering over a node highlights the \\\n corresponding part in the source code\",\n\n \"Shift click on an AST node expands the whole substree\"\n];\n\nfunction printTips() {\n tips.forEach((tip, i) => console.log(`Tip ${i}:` + tip));\n}\n" - }, - "transform.js": { - "filename": "transform.js", - "type": "application/javascript", - "language": "JavaScript", - "raw_url": "https://gist.githubusercontent.com/astexplorer/68827467161b95ee48048ff906fab6d8/raw/610c084b3ef8b9d5d481f01098fb46ff80f7a570/transform.js", - "size": 252, - "truncated": false, - "content": "export default function (babel) {\n const { types: t } = babel;\n \n return {\n name: \"ast-transform\", // not required\n visitor: {\n Identifier(path) {\n path.node.name = path.node.name.split('').reverse().join('');\n }\n }\n };\n}\n" - } - }, - "public": false, - "created_at": "2018-01-03T14:16:56Z", - "updated_at": "2018-01-03T14:19:43Z", - "description": null, - "comments": 0, - "user": null, - "comments_url": "https://api.github.com/gists/68827467161b95ee48048ff906fab6d8/comments", - "owner": { - "login": "astexplorer", - "id": 24887483, - "avatar_url": "https://avatars2.githubusercontent.com/u/24887483?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/astexplorer", - "html_url": "https://github.com/astexplorer", - "followers_url": "https://api.github.com/users/astexplorer/followers", - "following_url": "https://api.github.com/users/astexplorer/following{/other_user}", - "gists_url": "https://api.github.com/users/astexplorer/gists{/gist_id}", - "starred_url": "https://api.github.com/users/astexplorer/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/astexplorer/subscriptions", - "organizations_url": "https://api.github.com/users/astexplorer/orgs", - "repos_url": "https://api.github.com/users/astexplorer/repos", - "events_url": "https://api.github.com/users/astexplorer/events{/privacy}", - "received_events_url": "https://api.github.com/users/astexplorer/received_events", - "type": "User", - "site_admin": false - }, - "forks": [], - "history": [ - { - "user": { - "login": "astexplorer", - "id": 24887483, - "avatar_url": "https://avatars2.githubusercontent.com/u/24887483?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/astexplorer", - "html_url": "https://github.com/astexplorer", - "followers_url": "https://api.github.com/users/astexplorer/followers", - "following_url": "https://api.github.com/users/astexplorer/following{/other_user}", - "gists_url": "https://api.github.com/users/astexplorer/gists{/gist_id}", - "starred_url": "https://api.github.com/users/astexplorer/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/astexplorer/subscriptions", - "organizations_url": "https://api.github.com/users/astexplorer/orgs", - "repos_url": "https://api.github.com/users/astexplorer/repos", - "events_url": "https://api.github.com/users/astexplorer/events{/privacy}", - "received_events_url": "https://api.github.com/users/astexplorer/received_events", - "type": "User", - "site_admin": false - }, - "version": "5ece951309157948661ae732af89209715bfe532", - "committed_at": "2018-01-03T14:16:55Z", - "change_status": { "total": 43, "additions": 43, "deletions": 0 }, - "url": "https://api.github.com/gists/68827467161b95ee48048ff906fab6d8/5ece951309157948661ae732af89209715bfe532" - } - ], - "truncated": false -} diff --git a/packages/cli/__tests__/fixtures/babel-config/babel.config.js b/packages/cli/__tests__/fixtures/babel-config/babel.config.js deleted file mode 100644 index 028da5a9..00000000 --- a/packages/cli/__tests__/fixtures/babel-config/babel.config.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-env node */ - -module.exports = function (api) { - api.cache(true) - return { - plugins: [ - { - visitor: { - NumericLiteral(path) { - path.node.value = 42 - }, - }, - }, - ], - } -} diff --git a/packages/cli/__tests__/fixtures/babel-config/index.js b/packages/cli/__tests__/fixtures/babel-config/index.js deleted file mode 100644 index f36673f6..00000000 --- a/packages/cli/__tests__/fixtures/babel-config/index.js +++ /dev/null @@ -1 +0,0 @@ -const a = 1 diff --git a/packages/cli/__tests__/fixtures/glob-test/abc.js b/packages/cli/__tests__/fixtures/glob-test/abc.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/cli/__tests__/fixtures/glob-test/subdir/def.js b/packages/cli/__tests__/fixtures/glob-test/subdir/def.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/cli/__tests__/fixtures/plugin/append-options-string.ts b/packages/cli/__tests__/fixtures/plugin/append-options-string.ts deleted file mode 100644 index 9f2a9750..00000000 --- a/packages/cli/__tests__/fixtures/plugin/append-options-string.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineCodemod } from '../../../src' - -export default defineCodemod(({ t }, options) => ({ - visitor: { - Program(path) { - path.node.body.push( - t.expressionStatement(t.stringLiteral(JSON.stringify(options))) - ) - }, - }, -})) diff --git a/packages/cli/__tests__/fixtures/plugin/bad-plugin.js b/packages/cli/__tests__/fixtures/plugin/bad-plugin.js deleted file mode 100644 index ea0f5147..00000000 --- a/packages/cli/__tests__/fixtures/plugin/bad-plugin.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = function () { - return { - visitor: { - NumericLiteral(path) { - throw new Error('I am a bad plugin') - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/class-properties.ts b/packages/cli/__tests__/fixtures/plugin/class-properties.ts deleted file mode 100644 index 104da8ac..00000000 --- a/packages/cli/__tests__/fixtures/plugin/class-properties.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { PluginObj } from '@babel/core' - -class Count { - // This file exists to verify that class properties like ↓ can be loaded. - count = 0 - - incr(): void { - this.count++ - } -} - -export default function (): PluginObj { - const debuggerCount = new Count() - - return { - visitor: { - DebuggerStatement(): void { - debuggerCount.incr() - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/generators.ts b/packages/cli/__tests__/fixtures/plugin/generators.ts deleted file mode 100644 index 83d480db..00000000 --- a/packages/cli/__tests__/fixtures/plugin/generators.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { PluginObj } from '@babel/core' - -// This file exists to verify that generator functions like ↓ can be loaded. -function* counter(): IterableIterator { - let i = 0 - - while (true) { - yield i++ - } -} - -export default function (): PluginObj { - const identifiers = counter() - - return { - visitor: { - Identifier(): void { - console.log(identifiers.next()) - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-export-default.js b/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-export-default.js deleted file mode 100644 index 400b8e6e..00000000 --- a/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-export-default.js +++ /dev/null @@ -1,11 +0,0 @@ -import incrementValue from './increment-value' - -export default function () { - return { - visitor: { - NumericLiteral(path) { - path.node.value = incrementValue(path.node.value) - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-value.js b/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-value.js deleted file mode 100644 index a7c405df..00000000 --- a/packages/cli/__tests__/fixtures/plugin/increment-export-default-multiple/increment-value.js +++ /dev/null @@ -1,5 +0,0 @@ -import path from 'path' - -export default function incrementValue(value) { - return value + 1 -} diff --git a/packages/cli/__tests__/fixtures/plugin/increment-export-default.js b/packages/cli/__tests__/fixtures/plugin/increment-export-default.js deleted file mode 100644 index 4bf4878f..00000000 --- a/packages/cli/__tests__/fixtures/plugin/increment-export-default.js +++ /dev/null @@ -1,9 +0,0 @@ -export default function () { - return { - visitor: { - NumericLiteral(path) { - path.node.value += 1 - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/increment-typescript.ts b/packages/cli/__tests__/fixtures/plugin/increment-typescript.ts deleted file mode 100644 index ebc606bc..00000000 --- a/packages/cli/__tests__/fixtures/plugin/increment-typescript.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { defineCodemod } from '../../../src' - -enum IncrementValues { - One = 1, - Two = 2, -} - -export default defineCodemod(() => ({ - visitor: { - NumericLiteral(path) { - path.node.value += IncrementValues.One - }, - }, -})) diff --git a/packages/cli/__tests__/fixtures/plugin/increment.js b/packages/cli/__tests__/fixtures/plugin/increment.js deleted file mode 100644 index 5bff9ff3..00000000 --- a/packages/cli/__tests__/fixtures/plugin/increment.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = function () { - return { - visitor: { - NumericLiteral(path) { - path.node.value += 1 - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/index.js b/packages/cli/__tests__/fixtures/plugin/index.js deleted file mode 100644 index b93418a4..00000000 --- a/packages/cli/__tests__/fixtures/plugin/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function () { - return { - name: 'basic-plugin', - visitor: {}, - } -} diff --git a/packages/cli/__tests__/fixtures/plugin/replace-any-with-object.ts b/packages/cli/__tests__/fixtures/plugin/replace-any-with-object.ts deleted file mode 100644 index 6368167a..00000000 --- a/packages/cli/__tests__/fixtures/plugin/replace-any-with-object.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as Babel from '@babel/core' -import { NodePath } from '@babel/traverse' -import { TSAnyKeyword } from '@babel/types' - -export default function (babel: typeof Babel): Babel.PluginObj { - const { types: t } = babel - - return { - visitor: { - TSAnyKeyword(path: NodePath) { - path.replaceWith(t.tsObjectKeyword()) - }, - }, - } -} diff --git a/packages/cli/__tests__/fixtures/prettier/defaults/.prettierrc b/packages/cli/__tests__/fixtures/prettier/defaults/.prettierrc deleted file mode 100644 index 0967ef42..00000000 --- a/packages/cli/__tests__/fixtures/prettier/defaults/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/cli/__tests__/fixtures/prettier/defaults/index.jsx b/packages/cli/__tests__/fixtures/prettier/defaults/index.jsx deleted file mode 100644 index 96a04534..00000000 --- a/packages/cli/__tests__/fixtures/prettier/defaults/index.jsx +++ /dev/null @@ -1,34 +0,0 @@ -function HelloWorld({ - greeting = "hello", - greeted = '"World"', - silent = false, - onMouseOver, -}) { - if (!greeting) { - return null; - } - - // TODO: Don't use random in render - let num = Math.floor(Math.random() * 1e7) - .toString() - .replace(/\.\d+/gi, ""); - - return ( -
- - {greeting.slice(0, 1).toUpperCase() + greeting.slice(1).toLowerCase()} - - {greeting.endsWith(",") ? ( - " " - ) : ( - ", " - )} - {greeted} - {silent ? "." : "!"} -
- ); -} diff --git a/packages/cli/__tests__/fixtures/prettier/with-config/.prettierrc b/packages/cli/__tests__/fixtures/prettier/with-config/.prettierrc deleted file mode 100644 index 650cb880..00000000 --- a/packages/cli/__tests__/fixtures/prettier/with-config/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "singleQuote": true, - "semi": true -} diff --git a/packages/cli/__tests__/fixtures/prettier/with-config/index.js b/packages/cli/__tests__/fixtures/prettier/with-config/index.js deleted file mode 100644 index 64cd2c01..00000000 --- a/packages/cli/__tests__/fixtures/prettier/with-config/index.js +++ /dev/null @@ -1 +0,0 @@ -var a = ''; diff --git a/packages/cli/__tests__/helpers/TestServer.ts b/packages/cli/__tests__/helpers/TestServer.ts deleted file mode 100644 index f016a573..00000000 --- a/packages/cli/__tests__/helpers/TestServer.ts +++ /dev/null @@ -1,42 +0,0 @@ -import getPort = require('get-port') -import { createServer, IncomingMessage, Server, ServerResponse } from 'http' -import { URL } from 'url' - -export type RequestHandler = (req: IncomingMessage, res: ServerResponse) => void - -export class RealTestServer { - private server: Server - - readonly protocol: string = 'http:' - readonly hostname: string = '127.0.0.1' - - constructor(readonly port: number, readonly handler: RequestHandler) { - this.server = createServer(handler) - } - - async start(): Promise { - return new Promise((resolve) => { - this.server.once('listening', () => resolve()) - this.server.listen(this.port) - }) - } - - async stop(): Promise { - return new Promise((resolve) => { - this.server.close(() => resolve()) - }) - } - - requestURL(path: string): URL { - return new URL(`${this.protocol}//${this.hostname}:${this.port}${path}`) - } -} - -export async function startServer( - handler: RequestHandler -): Promise { - const port = await getPort() - const server = new RealTestServer(port, handler) - await server.start() - return server -} diff --git a/packages/cli/__tests__/helpers/copyFixturesInto.ts b/packages/cli/__tests__/helpers/copyFixturesInto.ts deleted file mode 100644 index 116eaee3..00000000 --- a/packages/cli/__tests__/helpers/copyFixturesInto.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname, join, relative } from 'path' -import { iterateSources } from '../../src/iterateSources' -import mkdirp = require('make-dir') - -export default async function copyFixturesInto( - fixture: string, - destination: string -): Promise { - const fixturePath = join('test/fixtures', fixture) - - for await (const file of iterateSources([fixturePath])) { - const relativePath = relative(fixturePath, file.path) - const destinationPath = join(destination, relativePath) - await mkdirp(dirname(destinationPath)) - await fs.writeFile(destinationPath, file.content) - } - - return destination -} diff --git a/packages/cli/__tests__/helpers/createTemporaryDirectory.ts b/packages/cli/__tests__/helpers/createTemporaryDirectory.ts deleted file mode 100644 index de3afd0a..00000000 --- a/packages/cli/__tests__/helpers/createTemporaryDirectory.ts +++ /dev/null @@ -1,5 +0,0 @@ -import tempy = require('tempy') - -export default async function createTemporaryDirectory(): Promise { - return tempy.directory() -} diff --git a/packages/cli/__tests__/helpers/createTemporaryFile.ts b/packages/cli/__tests__/helpers/createTemporaryFile.ts deleted file mode 100644 index 7ecf34bb..00000000 --- a/packages/cli/__tests__/helpers/createTemporaryFile.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { promises as fs } from 'fs' -import { dirname, join } from 'path' -import tempy = require('tempy') -import createTemporaryDirectory from './createTemporaryDirectory' - -export default async function createTemporaryFile( - name: string, - content: string -): Promise { - const fullPath = tempy.file({ name }) - await fs.writeFile(fullPath, content, 'utf8') - return fullPath -} - -export async function createTemporaryFiles( - ...files: Array<[name: string, content: string]> -): Promise> { - const root = await createTemporaryDirectory() - - return Promise.all( - files.map(async ([name, content]) => { - const fullPath = join(root, name) - await fs.mkdir(dirname(fullPath), { recursive: true }) - await fs.writeFile(fullPath, content) - return fullPath - }) - ) -} diff --git a/packages/cli/__tests__/helpers/plugin.ts b/packages/cli/__tests__/helpers/plugin.ts deleted file mode 100644 index 634b145c..00000000 --- a/packages/cli/__tests__/helpers/plugin.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { join } from 'path' - -export default function plugin(name: string, ext = '.js'): string { - return join(__dirname, `../fixtures/plugin/${name}${ext}`) -} diff --git a/packages/cli/__tests__/helpers/runCodemodCLI.ts b/packages/cli/__tests__/helpers/runCodemodCLI.ts deleted file mode 100644 index 26d64be0..00000000 --- a/packages/cli/__tests__/helpers/runCodemodCLI.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { spawn } from 'child_process' -import { join } from 'path' - -export interface CLIResult { - status: number - stdout: string - stderr: string -} - -export async function runCodemodCLI( - args: Array, - { stdin = '', cwd }: { stdin?: string; cwd?: string } = {} -): Promise { - const child = spawn( - process.env.NODE ?? process.argv0, - [join(__dirname, '../../bin/codemod'), ...args], - { - stdio: 'pipe', - cwd, - env: { CODEMOD_RUN_WITH_ESBUILD: '1' }, - } - ) - - child.stdin.end(stdin) - - let stdout = '' - child.stdout.setEncoding('utf-8').on('readable', () => { - stdout += child.stdout.read() ?? '' - }) - - let stderr = '' - child.stderr.setEncoding('utf-8').on('readable', () => { - stderr += child.stderr.read() ?? '' - }) - - return new Promise((resolve, reject) => { - child - .on('exit', (status) => { - resolve({ status: status ?? 1, stdout, stderr }) - }) - .on('error', reject) - }) -} diff --git a/packages/cli/__tests__/integration.test.ts b/packages/cli/__tests__/integration.test.ts deleted file mode 100644 index 8290a03c..00000000 --- a/packages/cli/__tests__/integration.test.ts +++ /dev/null @@ -1,361 +0,0 @@ -import generate from '@babel/generator' -import traverse, { NodePath } from '@babel/traverse' -import { transform } from '@codemod/core' -import * as m from '@codemod/matchers' -import { expression, js, t } from '@codemod/utils' -import convertQUnitAssertExpectToAssertAsync from '../examples/convert-qunit-assert-expect-to-assert-async' -import convertStaticClassToNamedExports from '../examples/convert-static-class-to-named-exports' -import dedent = require('dedent') - -/** - * This test demonstrates using captures to extract parts of an AST for use in - * a codemod that unwraps unnecessary IIFEs. For example: - * - * ```js - * function iifeWithExpression() { - * return (() => EXPR); - * } - * - * function iifeWithStatements() { - * return (() => { - * STMT1; - * STMT2; - * }); - * } - * - * // becomes - * - * function iifeWithExpression() { - * return EXPR; - * } - * - * function iifeWithStatements() { - * STMT1; - * STMT2; - * } - * ``` - */ -test('codemod: unwrap unneeded IIFE', () => { - const ast = js(dedent` - function foo() { - return (() => 1)(); - } - `) - - let body: m.CapturedMatcher - - const returnedIIFEMatcher = m.returnStatement( - m.callExpression( - m.function( - [], - (body = m.capture(m.or(m.anyExpression(), m.blockStatement()))) - ) as m.Matcher - ) - ) - - traverse(ast, { - ReturnStatement(path: NodePath): void { - m.match(returnedIIFEMatcher, { body }, path.node, ({ body }) => { - if (t.isExpression(body)) { - path.replaceWith(t.returnStatement(body)) - } else { - path.replaceWithMultiple(body.body) - } - }) - }, - }) - - expect(generate(ast).code).toEqual(dedent` - function foo() { - return 1; - } - `) -}) - -test('codemod: remove return labels', () => { - const ast = js(dedent` - function foo() { - console.log("calling foo"); - let classlist; - console.log("about to return"); - return (classlist = classes.join(" ")); - } - `) - let labelDeclaration: m.CapturedMatcher - let label: m.CapturedMatcher - let returnStatement: m.CapturedMatcher - let value: m.CapturedMatcher - - const returnLabelFunctionMatcher = m.function( - undefined, - m.blockStatement( - m.anyList( - m.zeroOrMore(), - (labelDeclaration = m.capture( - m.variableDeclaration( - 'let', - m.oneOf( - m.variableDeclarator( - m.identifier((label = m.capture(m.anyString()))), - null - ) - ) - ) - )), - m.zeroOrMore(), - (returnStatement = m.capture( - m.returnStatement( - m.assignmentExpression( - '=', - m.identifier(m.fromCapture(label)), - (value = m.capture()) - ) - ) - )), - m.zeroOrMore() - ) - ) - ) - - function processFunction(path: NodePath): void { - m.match( - returnLabelFunctionMatcher, - { returnStatement, value, labelDeclaration }, - path.node, - ({ returnStatement, value, labelDeclaration }) => { - const bodyPath = path.get('body') - if (bodyPath.isBlockStatement()) { - const labelDeclarationPath = bodyPath - .get('body') - .find((statementPath) => statementPath.node === labelDeclaration) - - if (labelDeclarationPath) { - labelDeclarationPath.remove() - } - } - returnStatement.argument = value - } - ) - } - - traverse(ast, { - FunctionDeclaration: processFunction, - FunctionExpression: processFunction, - ArrowFunctionExpression: processFunction, - }) - - expect(generate(ast).code).toEqual(dedent` - function foo() { - console.log("calling foo"); - console.log("about to return"); - return classes.join(" "); - } - `) -}) - -test('codemod: assert to jest expect', () => { - const ast = js(dedent` - assert.strictEqual(a, 7); - assert.deepEqual(b, {}); - assert.ok(c); - assert.ok(!d); - `) - - let actual: m.CapturedMatcher - let expected: m.CapturedMatcher - const assertEqualMatcher = m.callExpression( - m.memberExpression( - m.identifier('assert'), - m.identifier(m.or('strictEqual', 'deepEqual')) - ), - [ - (actual = m.capture(m.anyExpression())), - (expected = m.capture(m.anyExpression())), - ] - ) - - let falsyValue: m.CapturedMatcher - const assertFalsyMatcher = m.callExpression( - m.memberExpression(m.identifier('assert'), m.identifier('ok')), - [m.unaryExpression('!', (falsyValue = m.capture(m.anyExpression())))] - ) - - let truthValue: m.CapturedMatcher - const assertTruthyMatcher = m.callExpression( - m.memberExpression(m.identifier('assert'), m.identifier('ok')), - [(truthValue = m.capture())] - ) - - traverse(ast, { - CallExpression(path: NodePath): void { - // replace equality assertions - m.match( - assertEqualMatcher, - { actual, expected }, - path.node, - ({ actual, expected }) => { - path.replaceWith( - t.callExpression( - t.memberExpression( - t.callExpression(t.identifier('expect'), [actual]), - t.identifier('toEqual') - ), - [expected] - ) - ) - } - ) - - // replace e.g. `assert.ok(!a)` with `expect(a).toBeFalsy()` - m.match( - assertFalsyMatcher, - { falsyValue }, - path.node, - ({ falsyValue }) => { - path.replaceWith( - t.callExpression( - t.memberExpression( - t.callExpression(t.identifier('expect'), [falsyValue]), - t.identifier('toBeFalsy') - ), - [] - ) - ) - } - ) - - // replace e.g. `assert.ok(a)` with `expect(a).toBeTruthy()` - m.match( - assertTruthyMatcher, - { truthValue }, - path.node, - ({ truthValue }) => { - path.replaceWith( - t.callExpression( - t.memberExpression( - t.callExpression(t.identifier('expect'), [truthValue]), - t.identifier('toBeTruthy') - ), - [] - ) - ) - } - ) - }, - }) - - expect(generate(ast).code).toEqual(dedent` - expect(a).toEqual(7); - expect(b).toEqual({}); - expect(c).toBeTruthy(); - expect(d).toBeFalsy(); - `) -}) - -test('codemod: double-equal null to triple-equal', () => { - const ast = js('a == null;') - const left = m.capture(m.identifier()) - const eqeqNullMatcher = m.binaryExpression('==', left, m.nullLiteral()) - const eqNullOrUndefined = expression<{ - left: t.Expression - }>('%%left%% === null || %%left%% === undefined') - - traverse(ast, { - BinaryExpression(path: NodePath): void { - m.match(eqeqNullMatcher, { left }, path.node, ({ left }) => { - path.replaceWith(eqNullOrUndefined({ left })) - }) - }, - }) - - expect(generate(ast).code).toEqual('a === null || a === undefined;') -}) - -test('codemod: assert.expect to assert.async', () => { - const input = dedent` - test("my test", function (assert) { - assert.expect(1); - window.server.get("/some/api", () => { - asyncThing().then(() => { - assert.ok(true, "API called!"); - }); - }); - doStuff(); - }); - ` - - const output = transform(input, { - plugins: [convertQUnitAssertExpectToAssertAsync()], - }) - - expect(output && output.code).toEqual(dedent` - test("my test", function (assert) { - const done = assert.async(); - window.server.get("/some/api", () => { - asyncThing().then(() => { - assert.ok(true, "API called!"); - done(); - }); - }); - doStuff(); - }); - `) -}) - -test('codemod: convert static exported class to named exports', () => { - const code = dedent` - class MobileAppUpsellHelper { - static getIosAppLink(specialTrackingLink) { - const trackingLink = specialTrackingLink || "IOS_BRANCH_LINK"; - return this.getBranchLink(trackingLink); - } - - static getAndroidAppLink(specialTrackingLink) { - const trackingLink = specialTrackingLink || "ANDROID_BRANCH_LINK"; - return this.getBranchLink(trackingLink); - } - - static getBranchLink(specialTrackingLink) { - if (specialTrackingLink && APP_DOWNLOAD_ASSETS[specialTrackingLink]) { - return APP_DOWNLOAD_ASSETS[specialTrackingLink]; - } - - return APP_DOWNLOAD_ASSETS.DEFAULT_BRANCH_LINK; - } - - static getHideAppBanner() { - return CookieHelper.get("hide_app_banner"); - } - } - - export default MobileAppUpsellHelper; - ` - - const output = transform(code, { - plugins: [convertStaticClassToNamedExports()], - }) - - expect(output && output.code).toEqual(dedent` - export function getIosAppLink(specialTrackingLink) { - const trackingLink = specialTrackingLink || "IOS_BRANCH_LINK"; - return getBranchLink(trackingLink); - } - - export function getAndroidAppLink(specialTrackingLink) { - const trackingLink = specialTrackingLink || "ANDROID_BRANCH_LINK"; - return getBranchLink(trackingLink); - } - - export function getBranchLink(specialTrackingLink) { - if (specialTrackingLink && APP_DOWNLOAD_ASSETS[specialTrackingLink]) { - return APP_DOWNLOAD_ASSETS[specialTrackingLink]; - } - - return APP_DOWNLOAD_ASSETS.DEFAULT_BRANCH_LINK; - } - - export function getHideAppBanner() { - return CookieHelper.get("hide_app_banner"); - } - `) -}) diff --git a/packages/cli/__tests__/unit/Config.test.ts b/packages/cli/__tests__/unit/Config.test.ts deleted file mode 100644 index ed281900..00000000 --- a/packages/cli/__tests__/unit/Config.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { join } from 'path' -import { inspect } from 'util' -import { Config, ConfigBuilder } from '../../src/Config' - -// TODO: move some of the babel plugin loading tests in here - -test('has sensible defaults', function () { - const config = new Config() - expect(config.extensions).toContain('.js') - expect(config.extensions).toContain('.ts') - expect(config.extensions).toContain('.jsx') - expect(config.extensions).toContain('.tsx') - expect(config.localPlugins).toEqual([]) - expect(config.sourcePaths).toEqual([]) - expect(config.requires).toEqual([]) - expect(config.pluginOptions.size).toEqual(0) - expect(config.stdio).toEqual(false) -}) - -test('associates plugin options based on declared name', async function () { - const config = new ConfigBuilder() - .addLocalPlugin(join(__dirname, '../fixtures/plugin/index.js')) - .setOptionsForPlugin({ a: true }, 'basic-plugin') - .build() - - // "basic-plugin" is declared in the plugin file - const babelPlugin = await config.getBabelPlugin('basic-plugin') - - if (!Array.isArray(babelPlugin)) { - throw new Error( - `expected plugin to be [plugin, options] tuple: ${inspect(babelPlugin)}` - ) - } - - expect(babelPlugin[1]).toEqual({ a: true }) -}) diff --git a/packages/cli/__tests__/unit/InlineTransformer.test.ts b/packages/cli/__tests__/unit/InlineTransformer.test.ts deleted file mode 100644 index 825d386b..00000000 --- a/packages/cli/__tests__/unit/InlineTransformer.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { PluginItem } from '@babel/core' -import { NodePath } from '@babel/traverse' -import { NumericLiteral, Program } from '@babel/types' -import { join } from 'path' -import { InlineTransformer } from '../../src/InlineTransformer' - -test('passes source through as-is when there are no plugins', async function () { - const filepath = 'a.js' - const content = 'a + b;' - const transformer = new InlineTransformer([]) - const output = await transformer.transform(filepath, content) - - expect(output).toEqual(content) -}) - -test('transforms source using plugins', async function () { - const filepath = 'a.js' - const content = '3 + 4;' - const transformer = new InlineTransformer([ - (): PluginItem => ({ - visitor: { - NumericLiteral(path: NodePath): void { - path.node.value++ - }, - }, - }), - ]) - const output = await transformer.transform(filepath, content) - - expect(output).toEqual('4 + 5;') -}) - -test('does not include any plugins not specified explicitly', async function () { - const filepath = 'a.js' - const content = 'export default 0;' - const transformer = new InlineTransformer([]) - const output = await transformer.transform(filepath, content) - - expect(output).toEqual('export default 0;') -}) - -test('allows running plugins with options', async function () { - const filepath = 'a.js' - const content = '3 + 4;' - const transformer = new InlineTransformer([ - [ - (): PluginItem => ({ - visitor: { - NumericLiteral( - path: NodePath, - state: { opts: { value?: number } } - ) { - if (state.opts.value === path.node.value) { - path.node.value++ - } - }, - }, - }), - { value: 3 }, - ], - ]) - const output = await transformer.transform(filepath, content) - - expect(output).toEqual('4 + 4;') -}) - -test('passes the filename', async function () { - const filepath = 'a.js' - const content = '' - let filename: string | undefined - - const transformer = new InlineTransformer([ - (): PluginItem => ({ - visitor: { - Program( - path: NodePath, - state: { - file: { opts: { filename: string } } - } - ) { - filename = state.file.opts.filename - }, - }, - }), - ]) - - // Ignore the result since we only care about arguments to the visitor. - await transformer.transform(filepath, content) - - expect(filename).toEqual(join(process.cwd(), 'a.js')) -}) diff --git a/packages/cli/__tests__/unit/Options.test.ts b/packages/cli/__tests__/unit/Options.test.ts deleted file mode 100644 index 341e2412..00000000 --- a/packages/cli/__tests__/unit/Options.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { createHash } from 'crypto' -import { readFile } from 'fs/promises' -import { join } from 'path' -import { inspect } from 'util' -import { Config } from '../../src/Config' -import { Options, Command } from '../../src/Options' - -test('has sensible defaults', function () { - const config = getRunConfig(new Options([]).parse()) - expect(config.extensions).toContain('.js') - expect(config.extensions).toContain('.ts') - expect(config.extensions).toContain('.jsx') - expect(config.extensions).toContain('.tsx') - expect(config.localPlugins).toEqual([]) - expect(config.sourcePaths).toEqual([]) - expect(config.requires).toEqual([]) - expect(config.pluginOptions.size).toEqual(0) - expect(config.stdio).toEqual(false) -}) - -test('interprets `--help` as asking for help', function () { - expect(new Options(['--help']).parse().kind).toEqual('help') -}) - -test('interprets `--version` as asking to print the version', function () { - expect(new Options(['--version']).parse().kind).toEqual('version') -}) - -test('interprets `--extensions` as expected', function () { - const config = getRunConfig(new Options(['--extensions', '.js,.ts']).parse()) - expect(config.extensions).toEqual(new Set(['.js', '.ts'])) -}) - -test('--add-extension adds to the default extensions', function () { - const config = getRunConfig(new Options(['--add-extension', '.myjs']).parse()) - expect(config.extensions.size > 1).toBeTruthy() - expect(config.extensions).toContain('.myjs') -}) - -test('fails to parse unknown options', function () { - expect(() => new Options(['--wtf']).parse()).toThrow( - new Error('unexpected option: --wtf') - ) -}) - -test('interprets non-option arguments as paths', function () { - const config = getRunConfig(new Options(['src/', 'a.js']).parse()) - expect(config.sourcePaths).toEqual(['src/', 'a.js']) -}) - -test('interprets `--stdio` as reading/writing stdin/stdout', function () { - const config = getRunConfig(new Options(['--stdio']).parse()) - expect(config.stdio).toEqual(true) -}) - -test('can parse inline plugin options as JSON', function () { - const config = getRunConfig( - new Options(['-o', 'my-plugin={"foo": true}']).parse() - ) - expect(config.pluginOptions.get('my-plugin')).toEqual({ foo: true }) -}) - -test('associates plugin options based on declared name', async function () { - const config = getRunConfig( - new Options([ - '--plugin', - join(__dirname, '../fixtures/plugin/index.js'), - '--plugin-options', - 'basic-plugin={"a": true}', - ]).parse() - ) - - expect(config.pluginOptions.get('basic-plugin')).toEqual({ a: true }) -}) - -test('assigns anonymous options to the most recent plugin', async function () { - const config = getRunConfig( - new Options([ - '--plugin', - join(__dirname, '../fixtures/plugin/index.js'), - '--plugin-options', - '{"a": true}', - ]).parse() - ) - - expect( - config.pluginOptions.get(join(__dirname, '../fixtures/plugin/index.js')) - ).toEqual({ - a: true, - }) -}) - -test('interprets `--require` as expected', async function () { - const config = getRunConfig(new Options(['--require', 'tmp']).parse()) - const expectedTmpRequirePath = require.resolve('tmp') - - expect(config.requires).toHaveLength(1) - const [actualTmpRequirePath] = config.requires - - // `require.resolve` and the `resolve` package are not guaranteed to return - // the same path, so we compare the hashes of the files instead. - const expectedTmpHash = createHash('md5') - .update(await readFile(expectedTmpRequirePath)) - .digest('hex') - const actualTmpHash = createHash('md5') - .update(await readFile(actualTmpRequirePath)) - .digest('hex') - expect(actualTmpHash).toEqual(expectedTmpHash) -}) - -test('associates plugin options based on inferred name', async function () { - const config = getRunConfig( - new Options([ - '--plugin', - join(__dirname, '../fixtures/plugin/index.js'), - '--plugin-options', - 'index={"a": true}', - ]).parse() - ) - - // "index" is the name of the file - expect(config.pluginOptions.get('index')).toEqual({ a: true }) - - const babelPlugin = await config.getBabelPlugin('index') - - if (!Array.isArray(babelPlugin)) { - throw new Error( - `expected plugin to be [plugin, options] tuple: ${inspect(babelPlugin)}` - ) - } - - expect(babelPlugin[1]).toEqual({ a: true }) -}) - -test('can parse a JSON file for plugin options', function () { - // You wouldn't actually use package.json, but it's a convenient JSON file. - const config = getRunConfig( - new Options(['-o', 'my-plugin=@package.json']).parse() - ) - const pluginOpts = config.pluginOptions.get('my-plugin') - expect(pluginOpts && pluginOpts['name']).toEqual('@codemod/cli') -}) - -test('should set dry option', function () { - const config = getRunConfig(new Options(['--dry']).parse()) - expect(config.dry).toEqual(true) -}) - -function getRunConfig(command: Command): Config { - if (command.kind === 'run') { - return command.config - } else { - throw new Error(`expected a run command but got: ${inspect(command)}`) - } -} diff --git a/packages/cli/__tests__/unit/TransformRunner.test.ts b/packages/cli/__tests__/unit/TransformRunner.test.ts deleted file mode 100644 index e31ee5f6..00000000 --- a/packages/cli/__tests__/unit/TransformRunner.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { deepEqual } from 'assert' -import { - TransformRunner, - Source, - SourceTransformResult, - SourceTransformResultKind, -} from '../../src/TransformRunner' - -async function run( - runner: TransformRunner -): Promise> { - const result: Array = [] - - for await (const transformResult of runner.run()) { - result.push(transformResult) - } - - return result -} - -async function* asyncIterable(elements: Iterable): AsyncGenerator { - for (const element of elements) { - yield element - } -} - -test('generates a result for each source by calling the transformer', async function () { - const aSource = new Source('a.js', 'a;') - const bSource = new Source('b.js', 'b;') - const sources = asyncIterable([aSource, bSource]) - const runner = new TransformRunner(sources, { - async transform(filepath: string, content: string): Promise { - return content.toUpperCase() - }, - }) - - deepEqual(await run(runner), [ - { - kind: SourceTransformResultKind.Transformed, - source: aSource, - output: 'A;', - }, - { - kind: SourceTransformResultKind.Transformed, - source: bSource, - output: 'B;', - }, - ]) -}) - -test('collects errors for each failed source transform', async function () { - const source = new Source('fails.js', 'invalid syntax') - const sources = asyncIterable([source]) - const runner = new TransformRunner(sources, { - async transform(filepath: string, content: string): Promise { - throw new Error(`unable to process ${filepath}: ${content}`) - }, - }) - - deepEqual(await run(runner), [ - { - kind: SourceTransformResultKind.Error, - source, - error: new Error('unable to process fails.js: invalid syntax'), - }, - ]) -}) diff --git a/packages/cli/__tests__/unit/iterateSources.test.ts b/packages/cli/__tests__/unit/iterateSources.test.ts deleted file mode 100644 index ce93e0d7..00000000 --- a/packages/cli/__tests__/unit/iterateSources.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { dirname, join } from 'path' -import { iterateSources } from '../../src/iterateSources' -import createTemporaryDirectory from '../helpers/createTemporaryDirectory' -import createTemporaryFile, { - createTemporaryFiles, -} from '../helpers/createTemporaryFile' - -async function asyncCollect(iter: AsyncIterable): Promise> { - const result: Array = [] - for await (const element of iter) { - result.push(element) - } - return result -} - -test('empty directory', async () => { - const dir = await createTemporaryDirectory() - expect(await asyncCollect(iterateSources([dir]))).toEqual([]) -}) - -test('single file', async () => { - const file = await createTemporaryFile('a-file', 'with contents') - expect(await asyncCollect(iterateSources([dirname(file)]))).toEqual([ - { - path: file, - content: 'with contents', - }, - ]) -}) - -test('selecting extensions', async () => { - const [js] = await createTemporaryFiles( - ['js-files/file.js', 'JS file'], - ['ts-files/file.ts', 'TS file'] - ) - const root = dirname(dirname(js)) - expect( - await asyncCollect(iterateSources([root], { extensions: new Set(['.js']) })) - ).toEqual([ - { - path: js, - content: 'JS file', - }, - ]) -}) - -test('globbing', async () => { - const paths = await createTemporaryFiles( - ['main.ts', 'export default 0'], - ['main.js', 'module.exports.default = 0'], - ['subdir/index.test.ts', ''], - ['subdir/utils.ts', ''], - ['subdir/utils.test.ts', ''], - ['subdir/.gitignore', 'ignored.test.ts'], - ['subdir/ignored.test.ts', ''], - ['.git/config', ''] - ) - - expect( - await asyncCollect( - iterateSources(['**/*.test.ts'], { cwd: dirname(paths[0]) }) - ) - ).toEqual( - paths - .filter((path) => path.endsWith('.test.ts') && !path.includes('ignored')) - .map((path) => - expect.objectContaining({ - path, - }) - ) - ) -}) - -test('gitignore', async () => { - const [main] = await createTemporaryFiles( - ['main.ts', 'export default 0'], - ['.git/config', ''], - ['.gitignore', '*.d.ts'], - ['ignored.d.ts', ''], - ['subdir/.gitignore', '*.js'], - ['subdir/ignored-by-root.d.ts', ''], - ['subdir/ignored-by-subdir.js', ''], - ['subdir/subdir2/.gitignore', ''], - ['subdir/subdir2/ignored-by-root.d.ts', ''], - ['subdir/subdir2/ignored-by-subdir.js', ''] - ) - - const root = dirname(main) - expect(await asyncCollect(iterateSources([root]))).toEqual([ - { path: main, content: 'export default 0' }, - ]) - - const subdir = join(root, 'subdir') - expect(await asyncCollect(iterateSources([subdir]))).toEqual([]) -}) diff --git a/packages/cli/__tests__/unit/resolvers/AstExplorerResolver.test.ts b/packages/cli/__tests__/unit/resolvers/AstExplorerResolver.test.ts deleted file mode 100644 index ebfcbb0c..00000000 --- a/packages/cli/__tests__/unit/resolvers/AstExplorerResolver.test.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { promises as fs } from 'fs' -import { join } from 'path' -import { AstExplorerResolver } from '../../../src/resolvers/AstExplorerResolver' -import { startServer } from '../../helpers/TestServer' - -test('normalizes a gist+commit editor URL into an API URL', async function () { - const resolver = new AstExplorerResolver() - const normalized = await resolver.normalize( - 'https://astexplorer.net/#/gist/688274/5ece95' - ) - - expect(normalized).toEqual( - 'https://astexplorer.net/api/v1/gist/688274/5ece95' - ) -}) - -test('normalizes http gist+commit editor URL to an https API URL', async function () { - const resolver = new AstExplorerResolver() - const normalized = await resolver.normalize( - 'http://astexplorer.net/#/gist/b5b33c/f9ae8a' - ) - - expect(normalized).toEqual( - 'https://astexplorer.net/api/v1/gist/b5b33c/f9ae8a' - ) -}) - -test('normalizes a gist-only editor URL into an API URL', async function () { - const resolver = new AstExplorerResolver() - const normalized = await resolver.normalize( - 'https://astexplorer.net/#/gist/688274' - ) - - expect(normalized).toEqual('https://astexplorer.net/api/v1/gist/688274') -}) - -test('normalizes a gist+latest editor URL into an API URL', async function () { - const resolver = new AstExplorerResolver() - const normalized = await resolver.normalize( - 'https://astexplorer.net/#/gist/688274/latest' - ) - - expect(normalized).toEqual( - 'https://astexplorer.net/api/v1/gist/688274/latest' - ) -}) - -test('extracts the transform from the editor view', async function () { - const result = await fs.readFile( - join(__dirname, '../../fixtures/astexplorer/default.json'), - { encoding: 'utf8' } - ) - const server = await startServer((req, res) => { - res.end(result) - }) - - try { - const resolver = new AstExplorerResolver(server.requestURL('/')) - expect( - await fs.readFile( - await resolver.resolve(server.requestURL('/#/gist/abc/def').toString()), - { encoding: 'utf8' } - ) - ).toEqual(JSON.parse(result).files['transform.js'].content) - } finally { - await server.stop() - } -}) - -test('fails when returned data is not JSON', async function () { - const server = await startServer((req, res) => { - res.end('this is not JSON') - }) - const url = server.requestURL('/') - - try { - const resolver = new AstExplorerResolver(server.requestURL('/')) - - await expect(resolver.resolve(url.toString())).rejects.toThrowError( - `data loaded from ${url} is not JSON: this is not JSON` - ) - } finally { - await server.stop() - } -}) - -test('fails when files data is not present', async function () { - const server = await startServer((req, res) => { - res.end(JSON.stringify({})) - }) - - try { - const resolver = new AstExplorerResolver(server.requestURL('/')) - - await expect( - resolver.resolve(server.requestURL('/').toString()) - ).rejects.toThrowError( - "'transform.js' could not be found, perhaps transform is disabled" - ) - } finally { - await server.stop() - } -}) - -test('fails when transform.js is not present', async function () { - const server = await startServer((req, res) => { - res.end(JSON.stringify({ files: {} })) - }) - - try { - const resolver = new AstExplorerResolver(server.requestURL('/')) - - await expect( - resolver.resolve(server.requestURL('/').toString()) - ).rejects.toThrowError( - "'transform.js' could not be found, perhaps transform is disabled" - ) - } finally { - await server.stop() - } -}) diff --git a/packages/cli/__tests__/unit/resolvers/FileSystemResolver.test.ts b/packages/cli/__tests__/unit/resolvers/FileSystemResolver.test.ts deleted file mode 100644 index 940171fd..00000000 --- a/packages/cli/__tests__/unit/resolvers/FileSystemResolver.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { join } from 'path' -import { FileSystemResolver } from '../../../src/resolvers/FileSystemResolver' - -test('can resolve any files that exist as-is', async function () { - const resolver = new FileSystemResolver() - expect(await resolver.canResolve(__filename)).toBeTruthy() - expect(await resolver.resolve(__filename)).toEqual(__filename) -}) - -test('can resolve files by inferring an extension from a configurable set of extensions', async function () { - const resolver = new FileSystemResolver(new Set(['.json'])) - const packageJsonWithoutExtension = join(__dirname, '../../../package') - expect(await resolver.canResolve(packageJsonWithoutExtension)).toBeTruthy() - expect(await resolver.resolve(packageJsonWithoutExtension)).toEqual( - `${packageJsonWithoutExtension}.json` - ) -}) - -test('can resolve files by inferring an dot-less extension from a configurable set of extensions', async function () { - const resolver = new FileSystemResolver(new Set(['json'])) - const packageJsonWithoutExtension = join(__dirname, '../../../package') - expect(await resolver.canResolve(packageJsonWithoutExtension)).toBeTruthy() - expect(await resolver.resolve(packageJsonWithoutExtension)).toEqual( - `${packageJsonWithoutExtension}.json` - ) -}) - -test('fails to resolve a non-existent file', async function () { - const resolver = new FileSystemResolver() - expect(!(await resolver.canResolve('/this/file/is/not/there'))).toBeTruthy() - - await expect( - resolver.resolve('/this/file/is/not/there') - ).rejects.toThrowError( - 'unable to resolve file from source: /this/file/is/not/there' - ) -}) diff --git a/packages/cli/__tests__/unit/resolvers/NetworkResolver.test.ts b/packages/cli/__tests__/unit/resolvers/NetworkResolver.test.ts deleted file mode 100644 index ed30a587..00000000 --- a/packages/cli/__tests__/unit/resolvers/NetworkResolver.test.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { promises as fs } from 'fs' -import { NetworkResolver } from '../../../src/resolvers/NetworkResolver' -import { startServer } from '../../helpers/TestServer' - -test('can load data from a URL', async function () { - const server = await startServer((req, res) => { - res.end('here you go!') - }) - - try { - const resolver = new NetworkResolver() - const url = server.requestURL('/gimme') - - expect(await resolver.canResolve(url.toString())).toBeTruthy() - - const filename = await resolver.resolve(url.toString()) - - expect(await fs.readFile(filename, { encoding: 'utf8' })).toEqual( - 'here you go!' - ) - } finally { - await server.stop() - } -}) - -test('only resolves absolute HTTP URLs', async function () { - const resolver = new NetworkResolver() - - expect(await resolver.canResolve('http://example.com/')).toBeTruthy() - expect(await resolver.canResolve('https://example.com/')).toBeTruthy() - expect(await resolver.canResolve('/')).toBeFalsy() - expect( - await resolver.canResolve('afp://192.168.0.1/volume/folder/file.js') - ).toBeFalsy() - expect(await resolver.canResolve('data:,Hello%2C%20World!')).toBeFalsy() -}) - -test('follows redirects', async function () { - const server = await startServer((req, res) => { - if (req.url === '/') { - res.writeHead(302, { Location: '/plugin' }) - res.end() - } else if (req.url === '/plugin') { - res.end('redirected successfully!') - } else { - res.writeHead(404) - res.end() - } - }) - - try { - const resolver = new NetworkResolver() - const filename = await resolver.resolve(server.requestURL('/').toString()) - - expect(await fs.readFile(filename, { encoding: 'utf8' })).toEqual( - 'redirected successfully!' - ) - } finally { - await server.stop() - } -}) - -test('throws if it gets a non-200 response', async function () { - const server = await startServer((req, res) => { - res.statusCode = 400 - res.end() - }) - - try { - const resolver = new NetworkResolver() - const url = server.requestURL('/') - - await expect(resolver.resolve(url.toString())).rejects.toThrowError( - 'failed to load plugin' - ) - } finally { - await server.stop() - } -}) diff --git a/packages/cli/bin/codemod b/packages/cli/bin/codemod deleted file mode 100755 index b79bf35e..00000000 --- a/packages/cli/bin/codemod +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env node - -if (process.env.CODEMOD_RUN_WITH_ESBUILD) { - require('esbuild-runner/register') -} - -const run = (() => { - try { - return require('../src').default - } catch { - // ignore - } - - try { - return require('../').default - } catch { - process.stderr.write( - 'codemod does not seem to be built and the development files could not be loaded' - ) - process.exit(1) - } -})() - -run(process.argv) - .then((status) => { - process.exit(status) - }) - .catch((err) => { - console.error(err.stack) - process.exit(-1) - }) diff --git a/packages/cli/bin/codemod-dev b/packages/cli/bin/codemod-dev deleted file mode 100755 index 464e03ae..00000000 --- a/packages/cli/bin/codemod-dev +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" - -export CODEMOD_RUN_WITH_ESBUILD=1 -exec "${SCRIPT_DIR}/codemod" $@ diff --git a/packages/cli/examples/convert-qunit-assert-expect-to-assert-async.ts b/packages/cli/examples/convert-qunit-assert-expect-to-assert-async.ts deleted file mode 100644 index c26420e1..00000000 --- a/packages/cli/examples/convert-qunit-assert-expect-to-assert-async.ts +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Converts deprecated `assert.expect(N)`-style tests to use `assert.async()`. - * - * @example - * - * test('my test', function (assert) { - * assert.expect(1); - * window.server.get('/some/api', () => { - * asyncThing().then(() => { - * assert.ok(true, 'API called!'); - * }); - * }); - * doStuff(); - * }); - * - * // becomes - * - * test('my test', function (assert) { - * const done = assert.async(); - * window.server.get('/some/api', () => { - * asyncThing().then(() => { - * assert.ok(true, 'API called!'); - * done(); - * }); - * }); - * doStuff(); - * }); - */ - -import { defineCodemod, t } from '../src' - -export default defineCodemod(({ m, utils }) => { - // capture `assert` parameter - const assertBinding = m.capture(m.identifier()) - - // capture `assert.expect();` inside the async test - const assertExpect = m.capture( - m.expressionStatement( - m.callExpression( - m.memberExpression( - m.fromCapture(assertBinding), - m.identifier('expect') - ), - [m.numericLiteral()] - ) - ) - ) - - // capture `assert.(…);` inside the callback - const callbackAssertion = m.capture( - m.expressionStatement( - m.callExpression( - m.memberExpression(m.fromCapture(assertBinding), m.identifier()) - ) - ) - ) - - // callback function body - const callbackFunctionBody = m.containerOf( - m.blockStatement( - m.anyList(m.zeroOrMore(), callbackAssertion, m.zeroOrMore()) - ) - ) - - // async test function body - const asyncTestFunctionBody = m.blockStatement( - m.anyList( - m.zeroOrMore(), - assertExpect, - m.zeroOrMore(), - m.expressionStatement( - m.callExpression( - undefined, - m.anyList( - m.zeroOrMore(), - m.or( - m.functionExpression(undefined, undefined, callbackFunctionBody), - m.arrowFunctionExpression(undefined, callbackFunctionBody) - ) - ) - ) - ), - m.zeroOrMore() - ) - ) - - // match the whole `test('description', function(assert) { … })` - const asyncTestMatcher = m.callExpression(m.identifier('test'), [ - m.stringLiteral(), - m.functionExpression(undefined, [assertBinding], asyncTestFunctionBody), - ]) - - const makeDone = utils.statement<{ assert: t.Identifier }>( - 'const done = %%assert%%.async();' - ) - const callDone = utils.statement('done();') - - return { - visitor: { - CallExpression(path) { - m.matchPath( - asyncTestMatcher, - { - assertExpect, - callbackAssertion, - assertBinding, - }, - path, - ({ assertExpect, callbackAssertion, assertBinding }) => { - assertExpect.replaceWith(makeDone({ assert: assertBinding.node })) - callbackAssertion.insertAfter(callDone()) - } - ) - }, - }, - } -}) diff --git a/packages/cli/examples/convert-static-class-to-named-exports.ts b/packages/cli/examples/convert-static-class-to-named-exports.ts deleted file mode 100644 index 5b837762..00000000 --- a/packages/cli/examples/convert-static-class-to-named-exports.ts +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Converts default-exported class with all static methods to named exports. - * - * @example - * - * class MobileAppUpsellHelper { - * static getIosAppLink(specialTrackingLink) { - * const trackingLink = specialTrackingLink || 'IOS_BRANCH_LINK'; - * return this.getBranchLink(trackingLink); - * } - * - * static getAndroidAppLink(specialTrackingLink) { - * const trackingLink = specialTrackingLink || 'ANDROID_BRANCH_LINK'; - * return this.getBranchLink(trackingLink); - * } - * - * static getBranchLink(specialTrackingLink) { - * if (specialTrackingLink && APP_DOWNLOAD_ASSETS[specialTrackingLink]) { - * return APP_DOWNLOAD_ASSETS[specialTrackingLink]; - * } - * - * return APP_DOWNLOAD_ASSETS.DEFAULT_BRANCH_LINK; - * } - * - * static getHideAppBanner() { - * return CookieHelper.get('hide_app_banner'); - * } - * } - * - * export default MobileAppUpsellHelper; - * - * // becomes - * - * export function getIosAppLink(specialTrackingLink) { - * const trackingLink = specialTrackingLink || 'IOS_BRANCH_LINK'; - * return getBranchLink(trackingLink); - * } - * - * export function getAndroidAppLink(specialTrackingLink) { - * const trackingLink = specialTrackingLink || 'ANDROID_BRANCH_LINK'; - * return getBranchLink(trackingLink); - * } - * - * export function getBranchLink(specialTrackingLink) { - * if (specialTrackingLink && APP_DOWNLOAD_ASSETS[specialTrackingLink]) { - * return APP_DOWNLOAD_ASSETS[specialTrackingLink]; - * } - * - * return APP_DOWNLOAD_ASSETS.DEFAULT_BRANCH_LINK; - * } - * - * export function getHideAppBanner() { - * return CookieHelper.get('hide_app_banner'); - * } - */ - -import { defineCodemod, t } from '../src' - -export default defineCodemod(({ t, m }) => { - // capture the name of the exported class - const classId = m.capture(m.identifier()) - - // capture the class declaration - const classDeclaration = m.capture( - m.classDeclaration( - classId, - undefined, - m.classBody( - m.arrayOf( - m.classMethod( - 'method', - m.identifier(), - m.arrayOf( - m.or( - m.identifier(), - m.assignmentPattern(), - m.objectPattern(), - m.arrayPattern(), - m.restElement() - ) - ), - m.anything(), - false, - true - ) - ) - ) - ) - ) - - // capture the export, making sure to match the class name - const exportDeclaration = m.capture( - m.exportDefaultDeclaration(m.fromCapture(classId)) - ) - - // match a program that contains a matching class and export declaration - const matcher = m.program( - m.anyList( - m.zeroOrMore(), - classDeclaration, - m.zeroOrMore(), - exportDeclaration, - m.zeroOrMore() - ) - ) - - // match `this.*`, used internally - const thisPropertyAccessMatcher = m.memberExpression( - m.thisExpression(), - m.identifier(), - false - ) - - return { - visitor: { - Program(path) { - m.matchPath( - matcher, - { exportDeclaration, classDeclaration }, - path, - ({ exportDeclaration, classDeclaration }) => { - const replacements: Array = [] - const classBody = classDeclaration.get('body') - - for (const property of classBody.get('body')) { - if (!property.isClassMethod()) { - throw new Error( - `unexpected ${property.type} while looking for ClassMethod` - ) - } - - if (!t.isIdentifier(property.node.key)) { - throw new Error( - `unexpected ${ - property.get('key').type - } while looking for Identifier` - ) - } - - if ( - property.node.params.some((p) => t.isTSParameterProperty(p)) - ) { - continue - } - - replacements.push( - t.exportNamedDeclaration( - t.functionDeclaration( - property.node.key, - property.node.params as Array< - t.Identifier | t.Pattern | t.RestElement - >, - property.node.body, - property.node.generator, - property.node.async - ), - [] - ) - ) - - property.get('body').traverse({ - enter(path) { - if (path.isFunction()) { - if (!path.isArrowFunctionExpression()) { - path.skip() - } - } else if ( - path.isMemberExpression() && - thisPropertyAccessMatcher.match(path.node) - ) { - path.replaceWith(path.node.property) - } - }, - }) - } - - exportDeclaration.remove() - classDeclaration.replaceWithMultiple(replacements) - } - ) - }, - }, - } -}) diff --git a/packages/cli/jest.config.js b/packages/cli/jest.config.js deleted file mode 100644 index 8ba8a00a..00000000 --- a/packages/cli/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, -} diff --git a/packages/cli/package.json b/packages/cli/package.json deleted file mode 100644 index c3ba010f..00000000 --- a/packages/cli/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "@codemod/cli", - "version": "3.3.0", - "description": "codemod rewrites JavaScript and TypeScript", - "repository": "https://github.com/codemod-js/codemod.git", - "license": "Apache-2.0", - "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", - "bin": { - "codemod": "./bin/codemod" - }, - "files": [ - "bin", - "build" - ], - "scripts": { - "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", - "lint": "eslint .", - "lint:fix": "eslint . --fix", - "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" - }, - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/generator": "^7.20.14", - "@babel/parser": "^7.20.15", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-typescript": "^7.18.6", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7", - "@codemod/core": "^2.2.0", - "@codemod/matchers": "^1.6.0", - "@codemod/parser": "^1.4.0", - "@codemod/utils": "^1.1.0", - "core-js": "^3.1.4", - "cross-fetch": "^3.1.5", - "esbuild": "^0.13.13", - "esbuild-runner": "^2.2.1", - "find-up": "^5.0.0", - "get-stream": "^5.1.0", - "globby": "^11.0.0", - "ignore": "^5.1.9", - "is-ci-cli": "^2.2.0", - "pirates": "^4.0.0", - "recast": "^0.19.0", - "regenerator-runtime": "^0.13.3", - "resolve": "^1.22.1", - "source-map-support": "^0.5.6", - "tmp": "^0.2.1" - }, - "devDependencies": { - "@types/babel__core": "^7.20.0", - "@types/babel__generator": "^7.6.4", - "@types/babel__traverse": "^7.18.3", - "@types/glob": "^7.1.0", - "@types/got": "^9.6.7", - "@types/jest": "^27.0.2", - "@types/node": "^18.14.0", - "@types/resolve": "^1.17.1", - "@types/rimraf": "3.0.0", - "@types/semver": "^7.1.0", - "@types/source-map-support": "^0.5.0", - "@types/tmp": "^0.2.0", - "commitlint": "^14.1.0", - "get-port": "^5.0.0", - "jest": "^27.3.1", - "make-dir": "^3.1.0", - "prettier": "^2.4.1", - "rimraf": "3.0.2", - "semver": "^7.3.5", - "tempy": "^1", - "typescript": "^4.9.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/cli/src/CLIEngine.ts b/packages/cli/src/CLIEngine.ts deleted file mode 100644 index 15eb481c..00000000 --- a/packages/cli/src/CLIEngine.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { PluginItem } from '@babel/core' -import { promises as fs } from 'fs' -import { Config } from './Config' -import { InlineTransformer } from './InlineTransformer' -import { iterateSources } from './iterateSources' -import { - TransformRunner, - Source, - SourceTransformResult, - SourceTransformResultKind, -} from './TransformRunner' -import getStream = require('get-stream') - -export class RunResult { - constructor(readonly stats: RunStats) {} -} - -export class RunStats { - constructor( - readonly modified: number = 0, - readonly errors: number = 0, - readonly total: number = 0 - ) {} -} - -export class CLIEngine { - constructor( - readonly config: Config, - readonly onTransform: (result: SourceTransformResult) => void = () => { - // do nothing by default - } - ) {} - - private async loadPlugins(): Promise> { - await this.config.loadBabelTranspile() - this.config.loadRequires() - return await this.config.getBabelPlugins() - } - - async run(): Promise { - const plugins = await this.loadPlugins() - let modified = 0 - let errors = 0 - let total = 0 - const dryRun = this.config.dry - let sources: AsyncGenerator - - if (this.config.stdio) { - sources = (async function* getStdinSources(): AsyncGenerator { - yield new Source('', await getStream(process.stdin)) - })() - } else { - sources = iterateSources(this.config.sourcePaths, { - extensions: this.config.extensions, - }) - } - - const runner = new TransformRunner( - sources, - new InlineTransformer(plugins, this.config.parserPlugins) - ) - - for await (const result of runner.run()) { - this.onTransform(result) - - if (result.kind === SourceTransformResultKind.Transformed) { - if (this.config.stdio) { - process.stdout.write(result.output) - } else { - if (result.output !== result.source.content) { - modified++ - if (!dryRun) { - await fs.writeFile(result.source.path, result.output, 'utf8') - } - } - } - } else if (result.error) { - errors++ - } - - total++ - } - - return new RunResult(new RunStats(modified, errors, total)) - } -} diff --git a/packages/cli/src/Config.ts b/packages/cli/src/Config.ts deleted file mode 100644 index 857c5376..00000000 --- a/packages/cli/src/Config.ts +++ /dev/null @@ -1,293 +0,0 @@ -import * as Babel from '@babel/core' -import { ParserOptions, ParserPluginName } from '@codemod/parser' -import { basename, extname } from 'path' -import { TransformableExtensions } from './extensions' -import { PluginLoader } from './PluginLoader' -import { AstExplorerResolver } from './resolvers/AstExplorerResolver' -import { FileSystemResolver } from './resolvers/FileSystemResolver' -import { NetworkResolver } from './resolvers/NetworkResolver' -import { PackageResolver } from './resolvers/PackageResolver' - -export class Plugin { - readonly declaredName?: string - - constructor( - readonly rawPlugin: (babel: typeof Babel) => Babel.PluginObj, - readonly inferredName: string, - readonly source?: string, - readonly resolvedPath?: string - ) { - try { - const instance = rawPlugin(Babel) - - if (instance.name) { - this.declaredName = instance.name - } - } catch { - // We won't be able to determine what the plugin names itself ¯\_(ツ)_/¯ - } - } -} - -export class Config { - constructor( - readonly sourcePaths: Array = [], - readonly localPlugins: Array = [], - readonly remotePlugins: Array = [], - readonly pluginOptions: Map = new Map(), - readonly parserPlugins = new Set(), - readonly extensions: Set = TransformableExtensions, - readonly sourceType: ParserOptions['sourceType'] = 'unambiguous', - readonly requires: Array = [], - readonly transpilePlugins: boolean = true, - readonly stdio: boolean = false, - readonly dry: boolean = false - ) {} - - private pluginLoader = new PluginLoader([ - new FileSystemResolver(), - new PackageResolver(), - ]) - - private remotePluginLoader = new PluginLoader([ - new AstExplorerResolver(), - new NetworkResolver(), - ]) - - private _pluginCache?: Array - - async getPlugins(): Promise> { - if (!this._pluginCache) { - const localPlugins = Promise.all( - this.localPlugins.map(async (localPlugin) => { - const pluginExports = await this.pluginLoader.load(localPlugin) - const defaultExport = pluginExports['default'] || pluginExports - - return new Plugin( - defaultExport, - basename(localPlugin, extname(localPlugin)), - localPlugin - ) - }) - ) - - const remotePlugins = Promise.all( - this.remotePlugins.map(async (remotePlugin) => { - const pluginExports = await this.remotePluginLoader.load(remotePlugin) - const defaultExport = pluginExports['default'] || pluginExports - - return new Plugin( - defaultExport, - basename(remotePlugin, extname(remotePlugin)), - remotePlugin - ) - }) - ) - - this._pluginCache = [...(await localPlugins), ...(await remotePlugins)] - } - - return this._pluginCache - } - - loadRequires(): void { - for (const modulePath of this.requires) { - require(modulePath) - } - } - - async loadBabelTranspile(): Promise { - if (this.transpilePlugins && !require.extensions['.ts']) { - await import('esbuild-runner/register.js') - } - } - - async getPlugin(name: string): Promise { - for (const plugin of await this.getPlugins()) { - if ( - plugin.declaredName === name || - plugin.inferredName === name || - plugin.source === name - ) { - return plugin - } - } - - return null - } - - async getBabelPlugins(): Promise> { - const result: Array = [] - - for (const plugin of await this.getPlugins()) { - const options = - (plugin.declaredName && this.pluginOptions.get(plugin.declaredName)) || - this.pluginOptions.get(plugin.inferredName) || - (plugin.source && this.pluginOptions.get(plugin.source)) - - if (options) { - result.push([plugin.rawPlugin, options]) - } else { - result.push(plugin.rawPlugin) - } - } - - return result - } - - async getBabelPlugin(name: string): Promise { - const plugin = await this.getPlugin(name) - - if (!plugin) { - return null - } - - const options = this.pluginOptions.get(name) - - if (options) { - return [plugin.rawPlugin, options] - } else { - return plugin.rawPlugin - } - } -} - -export class ConfigBuilder { - private _sourcePaths?: Array - private _localPlugins?: Array - private _remotePlugins?: Array - private _pluginOptions?: Map - private _parserPluginNames = new Set() - private _extensions: Set = new Set(TransformableExtensions) - private _sourceType: ParserOptions['sourceType'] = 'module' - private _requires?: Array - private _transpilePlugins?: boolean - private _stdio?: boolean - private _dry?: boolean - - sourcePaths(value: Array): this { - this._sourcePaths = value - return this - } - - addSourcePath(value: string): this { - if (!this._sourcePaths) { - this._sourcePaths = [] - } - this._sourcePaths.push(value) - return this - } - - addSourcePaths(...values: Array): this { - for (const value of values) { - this.addSourcePath(value) - } - return this - } - - localPlugins(value: Array): this { - this._localPlugins = value - return this - } - - addLocalPlugin(value: string): this { - if (!this._localPlugins) { - this._localPlugins = [] - } - this._localPlugins.push(value) - return this - } - - remotePlugins(value: Array): this { - this._remotePlugins = value - return this - } - - addRemotePlugin(value: string): this { - if (!this._remotePlugins) { - this._remotePlugins = [] - } - this._remotePlugins.push(value) - return this - } - - pluginOptions(value: Map): this { - this._pluginOptions = value - return this - } - - setOptionsForPlugin(options: object, plugin: string): this { - if (!this._pluginOptions) { - this._pluginOptions = new Map() - } - this._pluginOptions.set(plugin, options) - return this - } - - addParserPlugin(name: ParserPluginName): this { - this._parserPluginNames.add(name) - return this - } - - extensions(value: Set): this { - this._extensions = value - return this - } - - addExtension(value: string): this { - if (!this._extensions) { - this._extensions = new Set() - } - this._extensions.add(value) - return this - } - - sourceType(value: ParserOptions['sourceType']): this { - this._sourceType = value - return this - } - - requires(value: Array): this { - this._requires = value - return this - } - - addRequire(value: string): this { - if (!this._requires) { - this._requires = [] - } - this._requires.push(value) - return this - } - - transpilePlugins(value: boolean): this { - this._transpilePlugins = value - return this - } - - stdio(value: boolean): this { - this._stdio = value - return this - } - - dry(value: boolean): this { - this._dry = value - return this - } - - build(): Config { - return new Config( - this._sourcePaths, - this._localPlugins, - this._remotePlugins, - this._pluginOptions, - this._parserPluginNames, - this._extensions, - this._sourceType, - this._requires, - this._transpilePlugins, - this._stdio, - this._dry - ) - } -} diff --git a/packages/cli/src/InlineTransformer.ts b/packages/cli/src/InlineTransformer.ts deleted file mode 100644 index 2bf100ed..00000000 --- a/packages/cli/src/InlineTransformer.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { PluginItem } from '@babel/core' -import { ParserPlugin } from '@babel/parser' -import { transform, TransformOptions } from '@codemod/core' -import Transformer from './Transformer' - -export class InlineTransformer implements Transformer { - constructor( - private readonly plugins: Iterable, - private readonly parserPlugins: Iterable = [] - ) {} - - async transform(filepath: string, content: string): Promise { - const options: TransformOptions = { - filename: filepath, - babelrc: false, - configFile: false, - plugins: [...this.plugins], - parserOpts: { - plugins: [...this.parserPlugins], - }, - } - - const result = transform(content, options) - - if (!result) { - throw new Error(`[${filepath}] babel transform returned null`) - } - - return result.code as string - } -} diff --git a/packages/cli/src/Options.ts b/packages/cli/src/Options.ts deleted file mode 100644 index b525a267..00000000 --- a/packages/cli/src/Options.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { isParserPluginName } from '@codemod/parser' -import { existsSync, readFileSync } from 'fs' -import { resolve } from 'path' -import { sync as resolveSync } from 'resolve' -import { Config, ConfigBuilder } from './Config' -import { RequireableExtensions } from './extensions' - -export interface RunCommand { - kind: 'run' - config: Config -} - -export interface HelpCommand { - kind: 'help' -} - -export interface VersionCommand { - kind: 'version' -} - -export type Command = RunCommand | HelpCommand | VersionCommand - -export class Options { - constructor(readonly args: Array) {} - - parse(): RunCommand | HelpCommand | VersionCommand { - const config = new ConfigBuilder() - let lastPlugin: string | undefined - - for (let i = 0; i < this.args.length; i++) { - const arg = this.args[i] - - switch (arg) { - case '-p': - case '--plugin': - i++ - lastPlugin = this.args[i] - config.addLocalPlugin(lastPlugin) - break - - case '--remote-plugin': - i++ - lastPlugin = this.args[i] - config.addRemotePlugin(lastPlugin) - break - - case '-o': - case '--plugin-options': { - i++ - - const value = this.args[i] - let name: string - let optionsRaw: string - - if (value.startsWith('@')) { - if (!lastPlugin) { - throw new Error( - `${arg} must follow --plugin or --remote-plugin if no name is given` - ) - } - - optionsRaw = readFileSync(value.slice(1), 'utf8') - name = lastPlugin - } else if (/^\s*{/.test(value)) { - if (!lastPlugin) { - throw new Error( - `${arg} must follow --plugin or --remote-plugin if no name is given` - ) - } - - optionsRaw = value - name = lastPlugin - } else { - const nameAndOptions = value.split('=') - name = nameAndOptions[0] - optionsRaw = nameAndOptions[1] - - if (optionsRaw.startsWith('@')) { - optionsRaw = readFileSync(optionsRaw.slice(1), 'utf8') - } - } - - try { - config.setOptionsForPlugin(JSON.parse(optionsRaw), name) - } catch (err) { - throw new Error( - `unable to parse JSON config for ${name}: ${optionsRaw}` - ) - } - break - } - - case '--parser-plugins': { - i++ - const value = this.args[i] - if (!value) { - throw new Error(`${arg} must be followed by a comma-separated list`) - } - for (const plugin of value.split(',')) { - if (isParserPluginName(plugin)) { - config.addParserPlugin(plugin) - } else { - throw new Error(`unknown parser plugin: ${plugin}`) - } - } - break - } - - case '-r': - case '--require': - i++ - config.addRequire(getRequirableModulePath(this.args[i])) - break - - case '--transpile-plugins': - case '--no-transpile-plugins': - config.transpilePlugins(arg === '--transpile-plugins') - break - - case '--extensions': - i++ - config.extensions( - new Set( - this.args[i] - .split(',') - .map((ext) => (ext[0] === '.' ? ext : `.${ext}`)) - ) - ) - break - - case '--add-extension': - i++ - config.addExtension(this.args[i]) - break - - case '--source-type': { - i++ - const sourceType = this.args[i] - if ( - sourceType === 'module' || - sourceType === 'script' || - sourceType === 'unambiguous' - ) { - config.sourceType(sourceType) - } else { - throw new Error( - `expected '--source-type' to be one of "module", "script", ` + - `or "unambiguous" but got: "${sourceType}"` - ) - } - break - } - - case '-s': - case '--stdio': - config.stdio(true) - break - - case '-h': - case '--help': - return { kind: 'help' } - - case '--version': - return { kind: 'version' } - - case '-d': - case '--dry': - config.dry(true) - break - - default: - if (arg[0] === '-') { - throw new Error(`unexpected option: ${arg}`) - } else { - config.addSourcePath(arg) - } - break - } - } - - return { - kind: 'run', - config: config.build(), - } - } -} - -/** - * Gets a path that can be passed to `require` for a given module path. - */ -function getRequirableModulePath(modulePath: string): string { - if (existsSync(modulePath)) { - return resolve(modulePath) - } - - for (const ext of RequireableExtensions) { - if (existsSync(modulePath + ext)) { - return resolve(modulePath + ext) - } - } - - return resolveSync(modulePath, { basedir: process.cwd() }) -} diff --git a/packages/cli/src/PluginLoader.ts b/packages/cli/src/PluginLoader.ts deleted file mode 100644 index bd8b3c4c..00000000 --- a/packages/cli/src/PluginLoader.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Resolver from './resolvers/Resolver' - -export class PluginLoader { - constructor(private readonly resolvers: Array) {} - - async load(source: string): Promise { - for (const resolver of this.resolvers) { - if (await resolver.canResolve(source)) { - const resolvedPath = await resolver.resolve(source) - return require(resolvedPath) - } - } - - throw new Error(`unable to resolve a plugin from source: ${source}`) - } -} diff --git a/packages/cli/src/TransformRunner.ts b/packages/cli/src/TransformRunner.ts deleted file mode 100644 index d738aaf8..00000000 --- a/packages/cli/src/TransformRunner.ts +++ /dev/null @@ -1,47 +0,0 @@ -import Transformer from './Transformer' - -export class Source { - constructor(readonly path: string, readonly content: string) {} -} - -export enum SourceTransformResultKind { - Transformed = 'Transformed', - Error = 'Error', -} - -export type SourceTransformResult = - | { - kind: SourceTransformResultKind.Transformed - source: Source - output: string - } - | { kind: SourceTransformResultKind.Error; source: Source; error: Error } - -export class TransformRunner { - constructor( - readonly sources: AsyncGenerator, - readonly transformer: Transformer - ) {} - - async *run(): AsyncIterableIterator { - for await (const source of this.sources) { - let result: SourceTransformResult - - try { - const output = await this.transformer.transform( - source.path, - source.content - ) - result = { - kind: SourceTransformResultKind.Transformed, - source, - output, - } - } catch (error) { - result = { kind: SourceTransformResultKind.Error, source, error } - } - - yield result - } - } -} diff --git a/packages/cli/src/Transformer.ts b/packages/cli/src/Transformer.ts deleted file mode 100644 index 95744ba1..00000000 --- a/packages/cli/src/Transformer.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default interface Transformer { - transform(filepath: string, content: string): Promise -} diff --git a/packages/cli/src/defineCodemod.ts b/packages/cli/src/defineCodemod.ts deleted file mode 100644 index e6d1810f..00000000 --- a/packages/cli/src/defineCodemod.ts +++ /dev/null @@ -1,27 +0,0 @@ -import * as utils from '@codemod/utils' -import * as matchers from '@codemod/matchers' - -/** - * Defines a codemod function that can be used with `@codemod/cli`, - * `@codemod/core`, or `@babel/core`. Provides easy access to the - * `@codemod/matchers` and `@codemod/utils` APIs. - */ -export function defineCodemod( - fn: ( - helpers: { - utils: typeof utils - matchers: typeof matchers - types: typeof utils.types - m: typeof matchers - t: typeof utils.types - }, - options?: T - ) => utils.Babel.PluginItem -) { - return function (_?: unknown, options?: T) { - return fn( - { utils, matchers, types: utils.types, m: matchers, t: utils.types }, - options - ) - } -} diff --git a/packages/cli/src/extensions.ts b/packages/cli/src/extensions.ts deleted file mode 100644 index c3927aba..00000000 --- a/packages/cli/src/extensions.ts +++ /dev/null @@ -1,34 +0,0 @@ -function union(...sets: Array>): Set { - return new Set(sets.reduce((result, set) => [...result, ...set], [])) -} - -export const TypeScriptExtensions = new Set([ - '.ts', - '.tsx', - '.mts', - '.mtsx', - '.cts', - '.ctsx', -]) -export const JavaScriptExtensions = new Set([ - '.js', - '.jsx', - '.mjs', - '.mjsx', - '.cjs', - '.cjsx', - '.es', - '.es6', -]) -export const PluginExtensions = union( - TypeScriptExtensions, - JavaScriptExtensions -) -export const RequireableExtensions = union( - TypeScriptExtensions, - JavaScriptExtensions -) -export const TransformableExtensions = union( - TypeScriptExtensions, - JavaScriptExtensions -) diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts deleted file mode 100644 index 8c781976..00000000 --- a/packages/cli/src/index.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { basename, relative } from 'path' -import { CLIEngine } from './CLIEngine' -import { Config } from './Config' -import { Options, Command } from './Options' -import { - SourceTransformResult, - SourceTransformResultKind, -} from './TransformRunner' -import * as matchers from '@codemod/matchers' - -export * from './defineCodemod' -export { t, types } from '@codemod/utils' -export { matchers, matchers as m } - -function optionAnnotation( - value: boolean | Array | Map | string -): string { - if (Array.isArray(value) || value instanceof Map) { - return ' (allows multiple)' - } else if (typeof value === 'boolean') { - return ` (default: ${value ? 'on' : 'off'})` - } else if (typeof value === 'string') { - return ` (default: ${value})` - } else { - return '' - } -} - -function printHelp(argv: Array, out: NodeJS.WritableStream): void { - const $0 = basename(argv[1]) - const defaults = new Config() - - out.write( - ` -${$0} [OPTIONS] [PATH … | --stdio] - -OPTIONS - -p, --plugin PLUGIN Transform sources with PLUGIN${optionAnnotation( - defaults.localPlugins - )}. - --remote-plugin URL Fetch a plugin from URL${optionAnnotation( - defaults.remotePlugins - )}. - -o, --plugin-options OPTS JSON-encoded OPTS for the last plugin provided${optionAnnotation( - defaults.pluginOptions - )}. - --parser-plugins PLUGINS Comma-separated PLUGINS to use with @babel/parser. - -r, --require PATH Require PATH before transform${optionAnnotation( - defaults.requires - )}. - --add-extension EXT Add an extension to the list of supported extensions. - --extensions EXTS Comma-separated extensions to process (default: "${Array.from( - defaults.extensions - ).join(',')}"). - --source-type Parse as "module", "script", or "unambiguous" (meaning babel - will try to guess, default: "${ - defaults.sourceType - }"). - --[no-]transpile-plugins Transpile plugins to enable future syntax${optionAnnotation( - defaults.transpilePlugins - )}. - -s, --stdio Read source from stdin and print to stdout${optionAnnotation( - defaults.stdio - )}. - -d, --dry Run plugins without modifying files on disk${optionAnnotation( - defaults.dry - )}. - --version Print the version of ${$0}. - -h, --help Show this help message. - - NOTE: \`--remote-plugin\` should only be used as a convenience to load code that you or someone - you trust wrote. It will run with your full user privileges, so please exercise caution! - -EXAMPLES - # Run with a relative plugin on all files in \`src/\`. - $ ${$0} -p ./typecheck.js src/ - - # Run with a remote plugin from astexplorer.net on all files in \`src/\`. - $ ${$0} --remote-plugin 'https://astexplorer.net/#/gist/688274…' src/ - - # Run with multiple plugins. - $ ${$0} -p ./a.js -p ./b.js some-file.js - - # Transform TypeScript sources. - # ${$0} -p ./a.js my-typescript-file.ts a-component.tsx - - # Run with a plugin in \`node_modules\` on stdin. - $ ${$0} -s -p babel-plugin-typecheck <, out: NodeJS.WritableStream): void { - // eslint-disable-next-line @typescript-eslint/no-var-requires - out.write(require('../package.json').version) - out.write('\n') -} - -export async function run(argv: Array): Promise { - let command: Command - - try { - command = new Options(argv.slice(2)).parse() - } catch (error) { - process.stderr.write(`ERROR: ${error.message}\n`) - printHelp(argv, process.stderr) - return 1 - } - - if (command.kind === 'help') { - printHelp(argv, process.stdout) - return 0 - } - - if (command.kind === 'version') { - printVersion(argv, process.stdout) - return 0 - } - - const config = command.config - const dim = process.stdout.isTTY ? '\x1b[2m' : '' - const reset = process.stdout.isTTY ? '\x1b[0m' : '' - - function onTransform(result: SourceTransformResult): void { - const relativePath = relative(process.cwd(), result.source.path) - if (result.kind === SourceTransformResultKind.Transformed) { - if (!config.stdio) { - if (result.output === result.source.content) { - process.stdout.write(`${dim}${relativePath}${reset}\n`) - } else { - process.stdout.write(`${relativePath}\n`) - } - } - } else if (result.error) { - if (!config.stdio) { - process.stderr.write( - `Encountered an error while processing ${relativePath}:\n` - ) - } - - process.stderr.write(`${result.error.stack}\n`) - } - } - - const { stats } = await new CLIEngine(config, onTransform).run() - - if (!config.stdio) { - if (config.dry) { - process.stdout.write('DRY RUN: no files affected\n') - } - - process.stdout.write( - `${stats.total} file(s), ${stats.modified} modified, ${stats.errors} errors\n` - ) - } - - // exit status is number of errors up to byte max value - return Math.min(stats.errors, 255) -} - -export default run diff --git a/packages/cli/src/iterateSources.ts b/packages/cli/src/iterateSources.ts deleted file mode 100644 index c955231a..00000000 --- a/packages/cli/src/iterateSources.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { strict as assert } from 'assert' -import { promises as fs } from 'fs' -import ignore, { Ignore } from 'ignore' -import { basename, dirname, extname, isAbsolute, join, relative } from 'path' -import { Source } from './TransformRunner' -import globby = require('globby') -import findUp = require('find-up') - -export interface Options { - extensions?: Set - cwd?: string -} - -const DOTGIT = '.git' -const GITIGNORE = '.gitignore' - -function pathWithin(container: string, contained: string): string | undefined { - const pathInContainer = relative(container, contained) - return pathInContainer.startsWith('../') ? undefined : pathInContainer -} - -function pathContains(container: string, contained: string): boolean { - return typeof pathWithin(container, contained) === 'string' -} - -async function readIgnoreFile(path: string): Promise { - const ig = ignore() - ig.add(await fs.readFile(path, { encoding: 'utf-8' })) - return ig -} - -async function findGitroot(from: string): Promise { - const dotgit = await findUp(DOTGIT, { cwd: from, type: 'directory' }) - return dotgit && dirname(dotgit) -} - -class FileFilter { - private readonly cwd: string - private readonly extensions?: Set - private readonly ignoresByGitignoreDirectory = new Map() - - constructor({ cwd, extensions }: { cwd: string; extensions?: Set }) { - this.cwd = cwd - this.extensions = extensions - } - - static async build({ - cwd, - extensions, - }: { - cwd: string - extensions?: Set - }): Promise { - return new FileFilter({ - cwd, - extensions, - }).addGitignoreFilesTraversingUpToGitRoot() - } - - async addGitignoreFilesTraversingUpToGitRoot( - start = this.cwd - ): Promise { - const gitroot = await findGitroot(start) - - if (gitroot) { - let search = start - - while (pathContains(gitroot, search)) { - const gitignorePath = await findUp(GITIGNORE, { - cwd: search, - type: 'file', - }) - - if (!gitignorePath) { - break - } - - await this.addGitignoreFile(gitignorePath) - search = dirname(dirname(gitignorePath)) - } - } - - return this - } - - async addGitignoreFile(gitignorePath: string): Promise { - if (!this.ignoresByGitignoreDirectory.has(dirname(gitignorePath))) { - this.ignoresByGitignoreDirectory.set( - dirname(gitignorePath), - await readIgnoreFile(gitignorePath) - ) - } - } - - test(path: string, { isFile }: { isFile: boolean }): boolean { - const base = basename(path) - - if (base === DOTGIT || base === GITIGNORE) { - return true - } - - if (isFile && this.extensions && !this.extensions.has(extname(path))) { - return true - } - - for (const [directory, ig] of this.ignoresByGitignoreDirectory) { - const pathInDirectory = pathWithin(directory, path) - if (!pathInDirectory) { - continue - } - - if (ig.ignores(pathInDirectory)) { - return true - } - } - - return false - } -} - -async function* iterateDirectory( - root: string, - { extensions }: Options = {} -): AsyncGenerator { - assert(isAbsolute(root), `expected absolute path: ${root}`) - - const filter = await FileFilter.build({ cwd: root, extensions }) - const queue: Array = [root] - - while (queue.length > 0) { - const directory = queue.shift() as string - const entries = await fs.readdir(directory, { withFileTypes: true }) - - for (const entry of entries) { - if (entry.isFile() && entry.name === GITIGNORE) { - const path = join(directory, entry.name) - await filter.addGitignoreFile(path) - } - } - - for (const entry of entries) { - const path = join(directory, entry.name) - - if (filter.test(path, { isFile: entry.isFile() })) { - continue - } - - if (entry.isFile()) { - const content = await fs.readFile(path, { encoding: 'utf-8' }) - yield { path, content } - } else if (entry.isDirectory()) { - queue.push(path) - } - } - } -} - -async function* iterateFiles( - paths: Array, - { extensions, cwd }: { extensions?: Set; cwd: string } -): AsyncGenerator { - const filter = await FileFilter.build({ cwd, extensions }) - - for (const path of paths) { - await filter.addGitignoreFilesTraversingUpToGitRoot(dirname(path)) - if (!filter.test(path, { isFile: true })) { - const content = await fs.readFile(path, { encoding: 'utf-8' }) - yield { path, content } - } - } -} - -/** - * Builds an iterator that loops through all the files in the given paths, - * matching an allowlist of extensions. Ignores files excluded by git. - */ -export async function* iterateSources( - roots: Array, - { - extensions, - cwd = process.cwd(), - }: { extensions?: Set; cwd?: string } = {} -): AsyncGenerator { - assert(isAbsolute(cwd), `expected absolute path: ${cwd}`) - - for (const root of roots) { - if (globby.hasMagic(root)) { - const matches = await globby(isAbsolute(root) ? root : join(cwd, root), { - cwd, - }) - yield* iterateFiles(matches, { cwd, extensions }) - } else if ((await fs.lstat(root)).isDirectory()) { - yield* iterateDirectory(isAbsolute(root) ? root : join(cwd, root), { - cwd, - extensions, - }) - } else { - yield* iterateFiles([root], { cwd }) - } - } -} diff --git a/packages/cli/src/resolvers/AstExplorerResolver.ts b/packages/cli/src/resolvers/AstExplorerResolver.ts deleted file mode 100644 index 7c1e65dc..00000000 --- a/packages/cli/src/resolvers/AstExplorerResolver.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { promises as fs } from 'fs' -import { URL } from 'url' -import { NetworkResolver } from './NetworkResolver' - -const EDITOR_HASH_PATTERN = /^#\/gist\/(\w+)(?:\/(\w+))?$/ - -/** - * Resolves plugins from AST Explorer transforms. - * - * astexplorer.net uses GitHub gists to save and facilitate sharing. This - * resolver accepts either the editor URL or the gist API URL. - */ -export class AstExplorerResolver extends NetworkResolver { - constructor( - private readonly baseURL: URL = new URL('https://astexplorer.net/') - ) { - super() - } - - async canResolve(source: string): Promise { - if (await super.canResolve(source)) { - const url = new URL(await this.normalize(source)) - const canResolve = - this.matchesHost(url) && - /^\/api\/v1\/gist\/[a-f0-9]+(\/(?:[a-f0-9]+|latest))?$/.test( - url.pathname - ) - return canResolve - } - - return false - } - - async resolve(source: string): Promise { - const filename = await super.resolve(await this.normalize(source)) - const text = await fs.readFile(filename, { encoding: 'utf8' }) - let data - - try { - data = JSON.parse(text) - } catch { - throw new Error( - `data loaded from ${source} is not JSON: ${text.slice(0, 100)}` - ) - } - - if ( - !data || - !data.files || - !data.files['transform.js'] || - !data.files['transform.js'].content - ) { - throw new Error( - "'transform.js' could not be found, perhaps transform is disabled" - ) - } - - await fs.writeFile(filename, data.files['transform.js'].content, { - encoding: 'utf8', - }) - - return filename - } - - async normalize(source: string): Promise { - const url = new URL(source) - - if (!this.matchesHost(url)) { - return source - } - - const match = url.hash.match(EDITOR_HASH_PATTERN) - - if (!match) { - return source - } - - let path = `/api/v1/gist/${match[1]}` - - if (match[2]) { - path += `/${match[2]}` - } - - return new URL(path, this.baseURL).toString() - } - - private matchesHost(url: URL): boolean { - if (url.host !== this.baseURL.host) { - return false - } - - // use SSL even if the URL doesn't use it - return url.protocol === this.baseURL.protocol || url.protocol === 'http:' - } -} diff --git a/packages/cli/src/resolvers/FileSystemResolver.ts b/packages/cli/src/resolvers/FileSystemResolver.ts deleted file mode 100644 index 59f0c211..00000000 --- a/packages/cli/src/resolvers/FileSystemResolver.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { promises as fs } from 'fs' -import { resolve } from 'path' -import { PluginExtensions } from '../extensions' -import Resolver from './Resolver' - -async function isFile(path: string): Promise { - try { - return (await fs.stat(path)).isFile() - } catch { - return false - } -} - -/** - * Resolves file system paths to plugins. - */ -export class FileSystemResolver implements Resolver { - constructor( - private readonly optionalExtensions: Set = PluginExtensions - ) {} - - private *enumerateCandidateSources(source: string): IterableIterator { - yield resolve(source) - - for (const ext of this.optionalExtensions) { - if (ext[0] !== '.') { - yield resolve(`${source}.${ext}`) - } else { - yield resolve(source + ext) - } - } - } - - async canResolve(source: string): Promise { - for (const candidate of this.enumerateCandidateSources(source)) { - if (await isFile(candidate)) { - return true - } - } - - return false - } - - async resolve(source: string): Promise { - for (const candidate of this.enumerateCandidateSources(source)) { - if (await isFile(candidate)) { - return candidate - } - } - - throw new Error(`unable to resolve file from source: ${source}`) - } -} diff --git a/packages/cli/src/resolvers/NetworkResolver.ts b/packages/cli/src/resolvers/NetworkResolver.ts deleted file mode 100644 index 9894daa4..00000000 --- a/packages/cli/src/resolvers/NetworkResolver.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { promises as fs } from 'fs' -import { fetch } from 'cross-fetch' -import { tmpNameSync as tmp } from 'tmp' -import { URL } from 'url' -import Resolver from './Resolver' - -export class NetworkLoadError extends Error { - constructor(readonly response: Response) { - super(`failed to load plugin from '${response.url}'`) - } -} - -/** - * Resolves plugins over the network to a local file. - * - * This plugin accepts only absolute HTTP URLs. - */ -export class NetworkResolver implements Resolver { - async canResolve(source: string): Promise { - try { - const url = new URL(source) - return url.protocol === 'http:' || url.protocol === 'https:' - } catch { - return false - } - } - - async resolve(source: string): Promise { - const response = await fetch(source, { redirect: 'follow' }) - - if (response.status !== 200) { - throw new NetworkLoadError(response) - } - - const filename = tmp({ postfix: '.js' }) - await fs.writeFile(filename, await response.text()) - return filename - } -} diff --git a/packages/cli/src/resolvers/PackageResolver.ts b/packages/cli/src/resolvers/PackageResolver.ts deleted file mode 100644 index 434d1040..00000000 --- a/packages/cli/src/resolvers/PackageResolver.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { sync as resolveSync } from 'resolve' -import Resolver from './Resolver' - -/** - * Resolves node modules by name relative to the working directory. - * - * For example, if used in a project that includes `myplugin` in its - * `node_modules`, this class will resolve to the main file of `myplugin`. - */ -export class PackageResolver implements Resolver { - async canResolve(source: string): Promise { - try { - await this.resolve(source) - return true - } catch { - return false - } - } - - async resolve(source: string): Promise { - return resolveSync(source, { basedir: process.cwd() }) - } -} diff --git a/packages/cli/src/resolvers/Resolver.ts b/packages/cli/src/resolvers/Resolver.ts deleted file mode 100644 index 0fa4f49a..00000000 --- a/packages/cli/src/resolvers/Resolver.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Resolvers locate plugin paths given a source string. - */ -export default interface Resolver { - /** - * Determines whether the source can be resolved by this resolver. This should - * not necessarily determine whether the source actually does resolve to - * anything, but rather whether it is of the right form to be resolved. - * - * For example, if a resolver were written to load a plugin from a `data:` URI - * then this method might simply check that the URI is a valid `data:` URI - * rather than actually decoding and handling the contents of said URI. - */ - canResolve(source: string): Promise - - /** - * Determines a file path that, when loaded as JavaScript, exports a babel - * plugin suitable for use in the transform pipeline. If `source` does not - * actually resolve to a file already on disk, consider writing the contents - * to disk in a temporary location. - */ - resolve(source: string): Promise -} diff --git a/packages/cli/tsconfig.build.json b/packages/cli/tsconfig.build.json deleted file mode 100644 index e4ab1471..00000000 --- a/packages/cli/tsconfig.build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], - "compilerOptions": { - "noEmit": false, - "sourceMap": true, - "declaration": true, - "rootDir": "src", - "outDir": "build" - }, - "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../matchers/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } - ] -} diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json deleted file mode 100644 index abc844f7..00000000 --- a/packages/cli/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "lib": ["es2015", "es2016"], - "composite": true, - "noEmit": true, - "noImplicitAny": false, - "strictNullChecks": true - }, - "exclude": ["__tests__/fixtures/**/*.ts", "tmp", "build"], - "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../matchers/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" } - ] -} diff --git a/packages/core/.eslintignore b/packages/core/.eslintignore deleted file mode 100644 index 5498e0f4..00000000 --- a/packages/core/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build -coverage diff --git a/packages/core/README.md b/packages/core/README.md index 63445ed9..cae3321f 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -13,7 +13,7 @@ $ npm install @codemod/core ## Usage ```ts -import { transform } from '@codemod/core' +import { transform } from '@codemod-esm/core' const result = transform('a ?? b', { plugins: ['@babel/plugin-proposal-nullish-coalescing-operator'], diff --git a/packages/core/jest.config.js b/packages/core/jest.config.js deleted file mode 100644 index 8ba8a00a..00000000 --- a/packages/core/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, -} diff --git a/packages/core/package.json b/packages/core/package.json index 75d9ec0f..d6f472d2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,42 +1,39 @@ { - "name": "@codemod/core", - "version": "2.2.0", + "name": "@codemod-esm/core", + "type": "module", + "version": "2.2.2", "description": "Runs babel plugins for codemods, i.e. by preserving formatting using Recast.", - "repository": "https://github.com/codemod-js/codemod", - "license": "Apache-2.0", "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", + "license": "Apache-2.0", + "repository": "https://github.com/codemod-js/codemod", + "exports": { + "default": "./dist/index.js" + }, + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "build" + "dist" ], "scripts": { "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", + "clean": "rimraf dist tsconfig.build.tsbuildinfo", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" + "test": "bun test" }, "dependencies": { - "@babel/core": "^7.20.12", - "@babel/generator": "^7.20.14", - "@codemod/parser": "^1.4.0", - "is-ci-cli": "^2.2.0", - "recast": "^0.19.0", - "resolve": "^1.22.1" + "@babel/core": "^7.26.9", + "@babel/generator": "^7.26.9", + "@codemod-esm/parser": "workspace:^", + "recast": "^0.23.11" }, "devDependencies": { - "@babel/types": "^7.20.7", - "@types/babel__core": "^7.1.16", - "@types/jest": "^25.1.0", - "@types/node": "^18.14.0", - "@types/prettier": "^2.0.0", - "@types/resolve": "^1.14.0", - "jest": "^27.3.1", - "typescript": "^4.9.5" + "@babel/types": "^7.26.9", + "@types/babel__core": "^7.20.5", + "@types/bun": "^1.2.4", + "@types/node": "^22.13.9", + "typescript": "^5.8.2" }, "publishConfig": { "access": "public" diff --git a/packages/core/src/AllSyntaxPlugin.ts b/packages/core/src/AllSyntaxPlugin.ts index 3977d032..64b0f944 100644 --- a/packages/core/src/AllSyntaxPlugin.ts +++ b/packages/core/src/AllSyntaxPlugin.ts @@ -1,15 +1,16 @@ -import { buildOptions, ParserOptions } from '@codemod/parser' -import { TransformOptions } from '.' -import { BabelPlugin, PluginObj } from './BabelPluginTypes' +import type { ParserOptions } from '@codemod-esm/parser' +import type { TransformOptions } from '.' +import type { BabelPlugin, PluginObj } from './BabelPluginTypes' +import { buildOptions } from '@codemod-esm/parser' export function buildPlugin( - sourceType: ParserOptions['sourceType'] + sourceType: ParserOptions['sourceType'], ): BabelPlugin { return function (): PluginObj { return { manipulateOptions( - opts: TransformOptions, - parserOpts: ParserOptions + _opts: TransformOptions, + parserOpts: ParserOptions, ): void { const options = buildOptions({ ...parserOpts, @@ -17,10 +18,7 @@ export function buildPlugin( plugins: parserOpts.plugins, }) - for (const key of Object.keys(options)) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ;(parserOpts as any)[key] = (options as any)[key] - } + Object.assign(parserOpts, options) }, } } diff --git a/packages/core/src/BabelPluginTypes.ts b/packages/core/src/BabelPluginTypes.ts index 77f0be2a..a318dfc0 100644 --- a/packages/core/src/BabelPluginTypes.ts +++ b/packages/core/src/BabelPluginTypes.ts @@ -1,24 +1,24 @@ -import * as Babel from '@babel/core' -import { File } from '@babel/types' -import { ParserOptions } from '@codemod/parser' +import type * as Babel from '@babel/core' +import type { File } from '@babel/types' +import type { ParserOptions } from '@codemod-esm/parser' /** * Fixes the `PluginObj` type from `@babel/core` by making all fields optional * and adding parser and generator override methods. */ export interface PluginObj extends Partial> { - parserOverride?( + parserOverride?: ( code: string, options: ParserOptions, - parse: (code: string, options: ParserOptions) => File - ): File + parse: (code: string, options: ParserOptions) => File, + ) => File - generatorOverride?( + generatorOverride?: ( ast: File, options: Babel.GeneratorOptions, code: string, - generate: (ast: File, options: Babel.GeneratorOptions) => string - ): { code: string; map?: object } + generate: (ast: File, options: Babel.GeneratorOptions) => string, + ) => { code: string, map?: object } } export type RawBabelPlugin = (babel: typeof Babel) => PluginObj diff --git a/packages/core/src/RecastPlugin.ts b/packages/core/src/RecastPlugin.ts index 4bc3ace0..14f5bfff 100644 --- a/packages/core/src/RecastPlugin.ts +++ b/packages/core/src/RecastPlugin.ts @@ -1,12 +1,12 @@ -import { ParserOptions } from '@codemod/parser' -import { File } from '@babel/types' -import * as recast from 'recast' -import { PluginObj } from './BabelPluginTypes' +import type { File } from '@babel/types' +import type { ParserOptions } from '@codemod-esm/parser' +import type { PluginObj } from './BabelPluginTypes' +import recast from 'recast' export function parse( code: string, options: ParserOptions, - parse: (code: string, options: ParserOptions) => File + parse: (code: string, options: ParserOptions) => File, ): File { return recast.parse(code, { parser: { @@ -14,10 +14,11 @@ export function parse( return parse(code, { ...options, tokens: true }) }, }, - }) + }) as File + // Type guarded by parser.parse } -export function generate(ast: File): { code: string; map?: object } { +export function generate(ast: File): { code: string, map?: object } { return recast.print(ast, { sourceMapName: 'map.json' }) } diff --git a/packages/core/src/__tests__/test.ts b/packages/core/src/__tests__/index.test.ts similarity index 65% rename from packages/core/src/__tests__/test.ts rename to packages/core/src/__tests__/index.test.ts index fd7f6f40..49f641b2 100644 --- a/packages/core/src/__tests__/test.ts +++ b/packages/core/src/__tests__/index.test.ts @@ -1,4 +1,4 @@ -import { PluginItem } from '@babel/core' +import type { PluginItem } from '@babel/core' import { transform } from '../transform' const incrementNumbersPlugin: PluginItem = { @@ -9,18 +9,18 @@ const incrementNumbersPlugin: PluginItem = { }, } -test('preserves formatting', () => { +it('preserves formatting', () => { expect(transform('var a=1;').code).toBe('var a=1;') }) -test('transforms using a custom babel plugin', () => { +it('transforms using a custom babel plugin', () => { expect( transform('var a=1', { plugins: [incrementNumbersPlugin], - }).code + }).code, ).toBe('var a=2') }) -test('parses with as many parser plugins as possible', () => { +it('parses with as many parser plugins as possible', () => { expect(() => transform('a ?? b').code).not.toThrow() }) diff --git a/packages/core/src/transform.ts b/packages/core/src/transform.ts index 2b029197..bf9bb7bf 100644 --- a/packages/core/src/transform.ts +++ b/packages/core/src/transform.ts @@ -1,9 +1,9 @@ +import type { BabelFileResult, TransformOptions as BabelTransformOptions } from '@babel/core' +import { strict as assert } from 'node:assert' import { - BabelFileResult, - TransformOptions as BabelTransformOptions, + transformSync, } from '@babel/core' -import { strict as assert } from 'assert' import { buildPlugin } from './AllSyntaxPlugin' import RecastPlugin from './RecastPlugin' @@ -15,7 +15,7 @@ export type TransformOptions = BabelTransformOptions */ export function transform( code: string, - options: TransformOptions = {} + options: TransformOptions = {}, ): BabelFileResult { const result = transformSync(code, { ...options, diff --git a/packages/core/tsconfig.build.json b/packages/core/tsconfig.build.json index 77cbb310..f0f988db 100644 --- a/packages/core/tsconfig.build.json +++ b/packages/core/tsconfig.build.json @@ -1,13 +1,21 @@ { "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], "compilerOptions": { - "noEmit": false, - "declaration": true, - "sourceMap": true, "rootDir": "src", - "outDir": "build" + "declaration": true, + "noEmit": false, + "outDir": "dist", + "sourceMap": true }, - "references": [{ "path": "../parser/tsconfig.build.json" }] + "references": [ + { + "path": "../parser/tsconfig.build.json" + } + ], + "include": [ + "src" + ], + "exclude": [ + "src/__tests__" + ] } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index ac7a13ab..f8769248 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,13 +1,7 @@ { - "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "lib": ["es2015", "es2016"], - "composite": true, - "noEmit": true, - "noImplicitAny": false, - "strict": true - }, - "exclude": ["tmp", "build"], - "references": [{ "path": "../parser/tsconfig.build.json" }] + "extends": "../../tsconfig.json", + "exclude": [ + "tmp", + "dist" + ] } diff --git a/packages/matchers/.eslintignore b/packages/matchers/.eslintignore deleted file mode 100644 index 6297e61a..00000000 --- a/packages/matchers/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -build -coverage -src/matchers.ts diff --git a/packages/matchers/README.md b/packages/matchers/README.md index c102f8a1..b7891081 100644 --- a/packages/matchers/README.md +++ b/packages/matchers/README.md @@ -18,7 +18,7 @@ The easiest way to use this package is to use `@codemod/cli` like so: ```ts // `t` is `@babel/types` -import { defineCodemod, t } from '@codemod/cli' +import { defineCodemod, t } from '@codemod-esm/cli' // `m` is the `@codemod/matchers` module export default defineCodemod(({ m }) => ({ @@ -37,8 +37,8 @@ Just as you can build AST nodes with `@babel/types`, you can build AST node matchers to match an exact node with `@codemod/matchers`: ```ts -import * as m from '@codemod/matchers' import * as t from '@babel/types' +import * as m from '@codemod-esm/matchers' // `matcher` only matches Identifier nodes named 'test' const matcher = m.identifier('test') @@ -52,8 +52,8 @@ matcher.match(t.identifier('test2')) // false Matching exact nodes is not usually what you want, however. `@codemod/matchers` can build matchers where only part of the data is specified: ```ts -import * as m from '@codemod/matchers' import * as t from '@babel/types' +import * as m from '@codemod-esm/matchers' // `matcher` matches any Identifier, regardless of name const matcher = m.identifier() @@ -66,7 +66,7 @@ matcher.match(t.emptyStatement()) // false Here's a more complex example that matches any `console.log` calls. Assume that `expr` parses the given JS as an expression: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' // `matcher` matches any `console.log(…)` call const matcher = m.callExpression( @@ -82,7 +82,7 @@ matcher.match(expr('console.log')) // false There are a variety of fuzzy matchers that come with `@codemod/matchers`: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' m.anyString().match('a string') // true m.anyString().match(1) // false @@ -106,7 +106,7 @@ m.anyNode().match('a string') // false Often you'll want to capture part of the node that you've matched so that you can extract information from it or edit it. ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' // matches `console.(…)` calls const consoleMethod = m.capture(m.identifier()) @@ -137,7 +137,7 @@ if (matcher.match(expr('notAConsoleCall()'))) { Sometimes you'll want to refer to an earlier captured value in a later part of the matcher. For example, let's say you want to match a function expression which returns its argument: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' const argumentMatcher = m.capture(m.identifier()) const matcher = m.functionExpression( @@ -158,6 +158,8 @@ matcher.match(expr('function(a) { return a + a; })')) // false All the previous examples have matchers testing a specific AST node. This is useful for illustration, but is not typically how you'd use them. Codemods written for `@codemod/cli` are [Babel plugins](https://github.com/jamiebuilds/babel-handbook/blob/master/translations/en/plugin-handbook.md) and therefore use the visitor pattern to process ASTs. Here's the above example that identifies functions that do nothing but return their argument again, this time as a Babel plugin that replaces such functions with a global `IDENTITY` reference: ```ts +import { NodePath } from '@babel/traverse' +import * as t from '@babel/types' /** * Replaces identity functions with `IDENTITY`: * @@ -167,9 +169,7 @@ All the previous examples have matchers testing a specific AST node. This is use * * list.filter(IDENTITY); */ -import * as m from '@codemod/matchers' -import * as t from '@babel/types' -import { NodePath } from '@babel/traverse' +import * as m from '@codemod-esm/matchers' export default function () { return { @@ -194,6 +194,7 @@ export default function () { Here is the same plugin again without using `@codemod/matchers`: ```ts +import { NodePath } from '@babel/traverse' /** * Replaces identity functions with `IDENTITY`: * @@ -204,7 +205,6 @@ Here is the same plugin again without using `@codemod/matchers`: * list.filter(IDENTITY); */ import * as t from '@babel/types' -import { NodePath } from '@babel/traverse' export default function () { return { @@ -262,7 +262,7 @@ export default function () { Sometimes you know you want to match a node but don't know its depth in the tree, and thus can't hardcode a whole matching tree. To deal with this situation you can use the `containerOf` matcher. For example, this matcher will find the first `done` call inside a mocha test, accounting for whatever name might have been used for the parameter: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' const doneParam = m.capture(m.identifier()) const matcher = m.callExpression(m.identifier('test'), [ @@ -303,8 +303,8 @@ matcher.match( The easiest way to build custom matchers is simply by composing existing ones: ```ts -import * as m from '@codemod/matchers' import * as t from '@babel/types' +import * as m from '@codemod-esm/matchers' function plusEqualOne() { return m.assignmentExpression( @@ -325,10 +325,10 @@ matcher.match(expr('a += 2')) // false You can build simple custom matchers easily using a predicate: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' const oddNumberMatcher = m.matcher( - (value) => typeof value === 'number' && Math.abs(number % 2) === 1 + value => typeof value === 'number' && Math.abs(number % 2) === 1 ) oddNumberMatcher.match(expr('-1')) // true @@ -343,29 +343,29 @@ oddNumberMatcher.match(expr('NaN')) // false Such matchers are easily parameterized by wrapping it in a function: ```ts -import * as m from '@codemod/matchers'; +import * as m from '@codemod-esm/matchers' function stringMatching(pattern: RegExp) { return m.matcher( value => typeof value === 'string' && pattern.test(value) - ); -) + ) +} -const startsWithRun = stringMatching(/^run/); +const startsWithRun = stringMatching(/^run/) -startsWithRun.match('run'); // true -startsWithRun.match('runner'); // true -startsWithRun.match('running'); // true -startsWithRun.match('ruining'); // false -startsWithRun.match(' run'); // false -startsWithRun.match(''); // false -startsWithRun.match(1); // false +startsWithRun.match('run') // true +startsWithRun.match('runner') // true +startsWithRun.match('running') // true +startsWithRun.match('ruining') // false +startsWithRun.match(' run') // false +startsWithRun.match('') // false +startsWithRun.match(1) // false ``` A common case where you think you'd need a custom matcher is when you want one of a few possible values. In such cases you can use the `or` matcher: ```ts -import * as m from '@codemod/matchers' +import * as m from '@codemod-esm/matchers' const matcher = m.or(m.anyString(), m.anyNumber()) @@ -378,6 +378,8 @@ matcher.match(expr('1')) // false Matching one of a few values is common when dealing with things such as functions, which could be arrow functions, function expressions, or function declarations. Here's a more general version of the `IDENTITY` codemod which uses the `or` matcher to also replace arrow functions: ```ts +import { NodePath } from '@babel/traverse' +import * as t from '@babel/types' /** * Replaces identity functions with `IDENTITY`: * @@ -389,9 +391,7 @@ Matching one of a few values is common when dealing with things such as function * list.filter(IDENTITY); * list2.filter(IDENTITY); */ -import * as m from '@codemod/matchers' -import * as t from '@babel/types' -import { NodePath } from '@babel/traverse' +import * as m from '@codemod-esm/matchers' export default function () { return { @@ -418,8 +418,8 @@ export default function () { You probably won't need it, but you can build your own by subclassing `Matcher`. Here's the same `stringMatching` but as a subclass of `Matcher`: ```ts -import * as m from '@codemod/matchers' import * as t from '@babel/types' +import * as m from '@codemod-esm/matchers' // This is more ceremony than the simple predicate-based one above. class StringMatching extends m.Matcher { diff --git a/packages/matchers/jest.config.js b/packages/matchers/jest.config.js deleted file mode 100644 index 19578d5e..00000000 --- a/packages/matchers/jest.config.js +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - clearMocks: true, - moduleFileExtensions: ['ts', 'tsx', 'js'], - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, - collectCoverageFrom: [ - 'src/**/*.ts', - '!**/__tests__/**/*.ts', - '!src/matchers.ts', - ], -} diff --git a/packages/matchers/package.json b/packages/matchers/package.json index ef3e3b5c..18027064 100644 --- a/packages/matchers/package.json +++ b/packages/matchers/package.json @@ -1,47 +1,45 @@ { - "name": "@codemod/matchers", - "version": "1.7.0", + "name": "@codemod-esm/matchers", + "type": "module", + "version": "1.7.2", "description": "Matchers for JavaScript & TypeScript codemods.", - "repository": "https://github.com/codemod-js/codemod", - "license": "Apache-2.0", "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", + "license": "Apache-2.0", + "repository": "https://github.com/codemod-js/codemod", + "exports": { + "default": "./dist/index.js" + }, + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "build" + "dist" ], "scripts": { "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", + "clean": "rimraf dist tsconfig.build.tsbuildinfo", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" + "test": "bun test" }, "dependencies": { - "@babel/types": "^7.20.7", - "@codemod/utils": "^1.1.0" + "@babel/types": "^7.26.9", + "@codemod-esm/utils": "workspace:^" }, "devDependencies": { - "@babel/core": "^7.20.12", - "@babel/generator": "^7.20.14", - "@babel/traverse": "^7.20.13", - "@codemod/core": "^2.2.0", - "@codemod/parser": "^1.4.0", - "@types/babel__core": "^7.20.0", - "@types/babel__generator": "^7.6.4", - "@types/babel__template": "^7.4.1", - "@types/babel__traverse": "^7.18.3", - "@types/dedent": "^0.7.0", - "@types/jest": "^25.1.0", - "@types/node": "^18.14.0", - "@types/prettier": "^2.0.0", - "dedent": "^0.7.0", - "is-ci-cli": "^2.2.0", - "jest": "^27.3.1", - "typescript": "^4.9.5" + "@babel/core": "^7.26.9", + "@babel/generator": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@codemod-esm/core": "workspace:^", + "@codemod-esm/parser": "workspace:^", + "@types/babel__core": "^7.20.5", + "@types/babel__generator": "^7.6.8", + "@types/babel__template": "^7.4.4", + "@types/babel__traverse": "^7.20.6", + "@types/bun": "^1.2.4", + "@types/node": "^22.13.9", + "dedent": "^1.5.3", + "typescript": "^5.8.2" }, "publishConfig": { "access": "public" diff --git a/packages/matchers/src/__tests__/distributeAcrossSlices.test.ts b/packages/matchers/src/__tests__/distributeAcrossSlices.test.ts index 51c4a6a1..9edb21f5 100644 --- a/packages/matchers/src/__tests__/distributeAcrossSlices.test.ts +++ b/packages/matchers/src/__tests__/distributeAcrossSlices.test.ts @@ -1,43 +1,43 @@ import { oneOrMore, slice, spacer, zeroOrMore } from '../matchers/slice' import { distributeAcrossSlices } from '../utils/distributeAcrossSlices' -test('allocates nothing given an empty list of slices', () => { +it('allocates nothing given an empty list of slices', () => { expect(Array.from(distributeAcrossSlices([], 1))).toEqual([[]]) }) -test('allocates available to a single slice within its bounds', () => { +it('allocates available to a single slice within its bounds', () => { expect( - Array.from(distributeAcrossSlices([slice({ min: 0, max: 3 })], 2)) + Array.from(distributeAcrossSlices([slice({ min: 0, max: 3 })], 2)), ).toEqual([[2]]) expect( - Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 3)) + Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 3)), ).toEqual([[3]]) }) -test('allocates nothing if available is outside single slice bounds', () => { +it('allocates nothing if available is outside single slice bounds', () => { expect( - Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 1)) + Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 1)), ).toEqual([]) expect( - Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 5)) + Array.from(distributeAcrossSlices([slice({ min: 2, max: 4 })], 5)), ).toEqual([]) }) -test('allocates a single space across multiple slices', () => { +it('allocates a single space across multiple slices', () => { expect( Array.from( distributeAcrossSlices( [slice({ min: 0, max: 1 }), slice({ min: 0, max: 1 })], - 1 - ) - ) + 1, + ), + ), ).toEqual([ [1, 0], [0, 1], ]) }) -test('allocates multiple spaces across multiple slices', () => { +it('allocates multiple spaces across multiple slices', () => { expect( Array.from( distributeAcrossSlices( @@ -46,9 +46,9 @@ test('allocates multiple spaces across multiple slices', () => { slice({ min: 0, max: 1 }), slice({ min: 2, max: 3 }), ], - 5 - ) - ) + 5, + ), + ), ).toEqual([ [2, 1, 2], [2, 0, 3], @@ -56,39 +56,45 @@ test('allocates multiple spaces across multiple slices', () => { ]) }) -test('never allocates to empty slices', () => { +it('never allocates to empty slices', () => { expect( Array.from( distributeAcrossSlices( [slice(0), slice({ min: 0, max: 1 }), slice({ min: 0, max: 1 })], - 1 - ) - ) + 1, + ), + ), ).toEqual([ [0, 1, 0], [0, 0, 1], ]) }) -test('allocates correctly when slices have no upper bound', () => { +it('allocates correctly when slices have no upper bound', () => { expect(Array.from(distributeAcrossSlices([zeroOrMore()], 2))).toEqual([[2]]) }) -test('allocates correctly with a trailing unbounded slice', () => { +it('allocates correctly with a trailing unbounded slice', () => { expect( - Array.from(distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 1)) + Array.from( + distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 1), + ), ).toEqual([]) expect( - Array.from(distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 2)) + Array.from( + distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 2), + ), ).toEqual([[0, 1, 1]]) expect( - Array.from(distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 3)) + Array.from( + distributeAcrossSlices([zeroOrMore(), slice(1), oneOrMore()], 3), + ), ).toEqual([ [1, 1, 1], [0, 1, 2], ]) }) -test('deprecated spacer() is an alias for slice(1)', () => { +it('deprecated spacer() is an alias for slice(1)', () => { expect(spacer()).toEqual(slice(1)) }) diff --git a/packages/matchers/src/__tests__/matchers.test.ts b/packages/matchers/src/__tests__/matchers.test.ts index d744024f..3ce4104f 100644 --- a/packages/matchers/src/__tests__/matchers.test.ts +++ b/packages/matchers/src/__tests__/matchers.test.ts @@ -1,16 +1,15 @@ -import { js, t } from '@codemod/utils' +import { js, t } from '@codemod-esm/utils' import * as m from '../matchers' -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function expectType(value: T): void { +function expectType(_value: T): void { // nothing to do } -test('anyString matches strings', () => { +it('anyString matches strings', () => { expect(m.anyString().match('')).toBeTruthy() expect(m.anyString().match('abc')).toBeTruthy() expect(m.anyString().match('hi\nthere')).toBeTruthy() - expect(m.anyString().match(new String('even this'))).toBeTruthy() + expect(m.anyString().match(String('even this'))).toBeTruthy() expect(m.anyString().match(0)).toBeFalsy() expect(m.anyString().match(null)).toBeFalsy() @@ -21,14 +20,14 @@ test('anyString matches strings', () => { // verify `match` acts as a type assertion const value: unknown = undefined if (m.anyString().match(value)) { - ;() => value.toLowerCase() + void (() => value.toLowerCase()) } }) -test('anyNumber matches numbers', () => { +it('anyNumber matches numbers', () => { expect(m.anyNumber().match(0)).toBeTruthy() - expect(m.anyNumber().match(NaN)).toBeTruthy() - expect(m.anyNumber().match(new Number(1))).toBeTruthy() + expect(m.anyNumber().match(Number.NaN)).toBeTruthy() + expect(m.anyNumber().match(Number(1))).toBeTruthy() expect(m.anyNumber().match(Infinity)).toBeTruthy() expect(m.anyNumber().match(Number.MAX_VALUE)).toBeTruthy() @@ -41,11 +40,11 @@ test('anyNumber matches numbers', () => { // verify `match` acts as a type assertion const value: unknown = undefined if (m.anyNumber().match(value)) { - ;() => value.toFixed() + void (() => value.toFixed()) } }) -test('anything matches everything', () => { +it('anything matches everything', () => { expect(m.anything().match(0)).toBeTruthy() expect(m.anything().match('')).toBeTruthy() expect(m.anything().match([])).toBeTruthy() @@ -57,11 +56,11 @@ test('anything matches everything', () => { // verify `match` acts as a type assertion const value: unknown = undefined if (m.anything().match(value)) { - ;() => value.toFixed() + void (() => value.toFixed()) } }) -test('arrayOf matches a variable-length homogenous array', () => { +it('arrayOf matches a variable-length homogenous array', () => { expect(m.arrayOf(m.anyString()).match([])).toBeTruthy() expect(m.arrayOf(m.anyString()).match(['a', 'b'])).toBeTruthy() expect(m.arrayOf(m.arrayOf(m.anyString())).match([[], ['a']])).toBeTruthy() @@ -77,15 +76,15 @@ test('arrayOf matches a variable-length homogenous array', () => { // verify `match` acts as a type assertion const value: unknown = undefined if (m.arrayOf(m.anyString()).match(value)) { - ;() => value.push('element') + void (() => value.push('element')) } }) -test('tupleOf matches a fixed-length array', () => { +it('tupleOf matches a fixed-length array', () => { const stringNumberAnything = m.tupleOf( m.anyString(), m.anyNumber(), - m.anything() + m.anything(), ) // happy path @@ -103,11 +102,11 @@ test('tupleOf matches a fixed-length array', () => { // verify `match` acts as a type assertion const value: unknown = undefined if (stringNumberAnything.match(value)) { - ;() => value.length + void (() => value.length) } }) -test('oneOf matches a single-element array', () => { +it('oneOf matches a single-element array', () => { expect(m.oneOf(m.anyString()).match([''])).toBeTruthy() expect(m.oneOf(m.anything()).match([{}])).toBeTruthy() @@ -116,7 +115,7 @@ test('oneOf matches a single-element array', () => { expect(m.oneOf(m.anyString()).match([])).toBeFalsy() }) -test('anyNode matches any known AST node type', () => { +it('anyNode matches any known AST node type', () => { expect(m.anyNode().match(t.identifier('abc'))).toBeTruthy() expect(m.anyNode().match(t.blockStatement([]))).toBeTruthy() @@ -128,12 +127,12 @@ test('anyNode matches any known AST node type', () => { expect(m.anyNode().match(undefined)).toBeFalsy() }) -test('anyExpression matches any known AST expression node type', () => { +it('anyExpression matches any known AST expression node type', () => { expect(m.anyExpression().match(t.identifier('abc'))).toBeTruthy() expect( m .anyExpression() - .match(t.functionExpression(null, [], t.blockStatement([]))) + .match(t.functionExpression(null, [], t.blockStatement([]))), ).toBeTruthy() expect(m.anyExpression().match(t.file(t.program([]), [], []))).toBeFalsy() @@ -143,7 +142,7 @@ test('anyExpression matches any known AST expression node type', () => { expect(m.anyExpression().match(t.blockStatement([]))).toBeFalsy() }) -test('anyStatement matches any known AST statement node type', () => { +it('anyStatement matches any known AST statement node type', () => { expect(m.anyStatement().match(t.emptyStatement())).toBeTruthy() expect(m.anyStatement().match(t.returnStatement())).toBeTruthy() expect(m.anyStatement().match(t.blockStatement([]))).toBeTruthy() @@ -154,39 +153,39 @@ test('anyStatement matches any known AST statement node type', () => { expect(m.anyStatement().match(t.program([]))).toBeFalsy() }) -test('m.function( matches any known function node type', () => { +it('m.function( matches any known function node type', () => { expect( - m.function().match(t.functionDeclaration(null, [], t.blockStatement([]))) + m.function().match(t.functionDeclaration(null, [], t.blockStatement([]))), ).toBeTruthy() expect( - m.function().match(t.functionExpression(null, [], t.blockStatement([]))) + m.function().match(t.functionExpression(null, [], t.blockStatement([]))), ).toBeTruthy() expect( - m.function().match(t.arrowFunctionExpression([], t.blockStatement([]))) + m.function().match(t.arrowFunctionExpression([], t.blockStatement([]))), ).toBeTruthy() expect(m.function().match(t.thisExpression())).toBeFalsy() expect(m.function().match(t.blockStatement([]))).toBeFalsy() }) -test('anyList reduces to tupleOf without any slices', () => { +it('anyList reduces to tupleOf without any slices', () => { expect(m.anyList().match([])).toBeTruthy() expect( - m.anyList(m.anyString(), m.anyNumber()).match(['', 0]) + m.anyList(m.anyString(), m.anyNumber()).match(['', 0]), ).toBeTruthy() }) -test('anyList with a fixed-width leading slice', () => { +it('anyList with a fixed-width leading slice', () => { const list = m.anyList(m.slice(1), m.anyString()) expect(list.match([''])).toBeFalsy() expect(list.match([{}, ''])).toBeTruthy() expect(list.match([{}, {}, ''])).toBeFalsy() }) -test('anyList with slices with specific matchers', () => { +it('anyList with slices with specific matchers', () => { const list = m.anyList( m.slice({ min: 1, max: 2, matcher: m.anyNumber() }), - m.anyString() + m.anyString(), ) expect(list.match([''])).toBeFalsy() expect(list.match([0, ''])).toBeTruthy() @@ -196,57 +195,57 @@ test('anyList with slices with specific matchers', () => { const matcher = m.anyList( m.anyString(), m.oneOrMore(m.anyNumber()), - m.anyString() + m.anyString(), ) expect(matcher.match(['', 1, 1, ''])).toBeTruthy() expect(matcher.match(['', 1, null, ''])).toBeFalsy() }) -test('anyList with a variable-width leading slice', () => { +it('anyList with a variable-width leading slice', () => { const list = m.anyList(m.slice({ min: 0, max: 1 }), m.anyString()) expect(list.match([''])).toBeTruthy() expect(list.match([{}, ''])).toBeTruthy() expect(list.match([{}, {}, ''])).toBeFalsy() }) -test('anyList with a zero-width leading slice', () => { +it('anyList with a zero-width leading slice', () => { const list = m.anyList(m.slice(0), m.anyString()) expect(list.match([''])).toBeTruthy() expect(list.match([{}, ''])).toBeFalsy() expect(list.match([{}, {}, ''])).toBeFalsy() }) -test('anyList with a fixed-width trailing slice', () => { +it('anyList with a fixed-width trailing slice', () => { const list = m.anyList(m.anyString(), m.slice(1)) expect(list.match([''])).toBeFalsy() expect(list.match(['', ''])).toBeTruthy() expect(list.match(['', '', ''])).toBeFalsy() }) -test('anyList with multiple fixed slices', () => { +it('anyList with multiple fixed slices', () => { const list = m.anyList( m.slice(1), m.anyString(), m.slice(1), m.anyNumber(), - m.slice(1) + m.slice(1), ) expect(list.match([])).toBeFalsy() expect(list.match([1, '', 2, 3, ''])).toBeTruthy() expect(list.match([1, {}, 2, 3, ''])).toBeFalsy() }) -test('anyList with multiple dynamic slices', () => { +it('anyList with multiple dynamic slices', () => { const list = m.anyList( m.zeroOrMore(), m.returnStatement(), - m.oneOrMore() + m.oneOrMore(), ) expect(list.match(js('return;').program.body)).toBeFalsy() expect(list.match(js('return; foo();').program.body)).toBeTruthy() }) -test('or matches one of the values', () => { +it('or matches one of the values', () => { const mString = m.or(m.anyString()) const mStringOrNumber = m.or(m.anyString(), m.anyNumber()) const mStringOrNumberOrNull = m.or(m.anyString(), m.anyNumber(), null) @@ -262,7 +261,7 @@ test('or matches one of the values', () => { expect(mStringOrNumber.match({})).toBeFalsy() }) -test('or matches literal values', () => { +it('or matches literal values', () => { const m1 = m.or(1) const m1or2 = m.or(1, 2) expectType>(m1) @@ -275,27 +274,27 @@ test('or matches literal values', () => { expect(m1or2.match({})).toBeFalsy() }) -test('or matches mixed literal values and matchers', () => { +it('or matches mixed literal values and matchers', () => { expect(m.or(1, m.anyString()).match(1)).toBeTruthy() expect(m.or(1, m.anyString()).match('')).toBeTruthy() expect(m.or(1, m.anyString()).match({})).toBeFalsy() }) -test('containerOf recurses to find a node matching the pattern', () => { +it('containerOf recurses to find a node matching the pattern', () => { expect( m .containerOf(m.binaryExpression('+', m.identifier(), m.numericLiteral())) - .match(js('return a + 1')) + .match(js('return a + 1')), ).toBeTruthy() expect( - m.containerOf(m.numericLiteral()).match(js('return a + 1')) + m.containerOf(m.numericLiteral()).match(js('return a + 1')), ).toBeTruthy() expect( - m.containerOf(m.numericLiteral()).match(js('return a + b')) + m.containerOf(m.numericLiteral()).match(js('return a + b')), ).toBeFalsy() }) -test('containerOf captures the first matching value', () => { +it('containerOf captures the first matching value', () => { const plusMatcher = m.containerOf(m.binaryExpression('+')) expect(plusMatcher.match(js('console.log(a + b + c);'))).toBeTruthy() @@ -307,28 +306,28 @@ test('containerOf captures the first matching value', () => { current: t.binaryExpression( '+', t.binaryExpression('+', t.identifier('a'), t.identifier('b')), - t.identifier('c') + t.identifier('c'), ), }) }) -test('containerOf can be used in a nested matcher', () => { +it('containerOf can be used in a nested matcher', () => { expect( m .containerOf( m.functionDeclaration( m.anything(), m.anything(), - m.containerOf(m.thisExpression()) - ) + m.containerOf(m.thisExpression()), + ), ) - .match(js('function returnThis() { return this; }')) + .match(js('function returnThis() { return this; }')), ).toBeTruthy() }) -test('matcher builds a matcher based on a predicate', () => { +it('matcher builds a matcher based on a predicate', () => { const matcher = m.matcher( - (value) => typeof value === 'string' && value.startsWith('no') + value => typeof value === 'string' && value.startsWith('no'), ) expect(matcher.match('no')).toBeTruthy() @@ -342,7 +341,7 @@ test('matcher builds a matcher based on a predicate', () => { expect(matcher.match(42)).toBeFalsy() }) -test('fromCapture builds a matcher based on a capturing matcher', () => { +it('fromCapture builds a matcher based on a capturing matcher', () => { const capture = m.capture(m.identifier()) const matcher = m.fromCapture(capture) const id = t.identifier('a') @@ -360,3 +359,11 @@ test('fromCapture builds a matcher based on a capturing matcher', () => { expect(matcher.match(idUnequivalent)).toBeFalsy() expect(matcher.match(9)).toBeFalsy() }) + +it('regression: #921', () => { + expect( + m + .functionExpression(m.anything()) + .match(t.functionExpression(null, [], t.blockStatement([]))), + ).toBeTruthy() +}) diff --git a/packages/matchers/src/matchers/Matcher.ts b/packages/matchers/src/matchers/Matcher.ts index 238d48b5..8ec45c7d 100644 --- a/packages/matchers/src/matchers/Matcher.ts +++ b/packages/matchers/src/matchers/Matcher.ts @@ -4,11 +4,11 @@ export class Matcher { } matchValue( - /* eslint-disable @typescript-eslint/no-unused-vars */ value: unknown, - keys: ReadonlyArray - /* eslint-enable @typescript-eslint/no-unused-vars */ + keys: ReadonlyArray, + ): value is T { + void keys throw new Error(`${this.constructor.name}#matchValue is not implemented`) } } diff --git a/packages/matchers/src/matchers/anyList.ts b/packages/matchers/src/matchers/anyList.ts index ad791c31..064751a9 100644 --- a/packages/matchers/src/matchers/anyList.ts +++ b/packages/matchers/src/matchers/anyList.ts @@ -10,14 +10,14 @@ export class AnyListMatcher extends Matcher> { for (const matcher of matchers) { if (matcher instanceof SliceMatcher) { - this.sliceMatchers.push(matcher) + this.sliceMatchers.push(matcher as SliceMatcher) } } } matchValue( array: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): array is Array { if (!Array.isArray(array)) { return false @@ -29,17 +29,17 @@ export class AnyListMatcher extends Matcher> { const spacerAllocations = distributeAcrossSlices( this.sliceMatchers, - array.length - this.matchers.length + this.sliceMatchers.length + array.length - this.matchers.length + this.sliceMatchers.length, ) for (const allocations of spacerAllocations) { - const valuesToMatch: Array = array.slice() + const valuesToMatch: Array = array.slice() as T[] let matchedAll = true let key = 0 for (const matcher of this.matchers) { if (matcher instanceof SliceMatcher) { - let sliceValueCount = allocations.shift() || 0 + let sliceValueCount = allocations.shift() ?? 0 while (sliceValueCount > 0) { const valueToMatch = valuesToMatch.shift() @@ -50,10 +50,12 @@ export class AnyListMatcher extends Matcher> { sliceValueCount-- key++ } - } else if (!matcher.matchValue(valuesToMatch.shift(), [...keys, key])) { + } + else if (!matcher.matchValue(valuesToMatch.shift(), [...keys, key])) { matchedAll = false break - } else { + } + else { key++ } } @@ -61,7 +63,7 @@ export class AnyListMatcher extends Matcher> { if (matchedAll) { if (valuesToMatch.length > 0) { throw new Error( - `expected to consume all elements to match but ${valuesToMatch.length} remain!` + `expected to consume all elements to match but ${valuesToMatch.length} remain!`, ) } diff --git a/packages/matchers/src/matchers/anything.ts b/packages/matchers/src/matchers/anything.ts index 537e3b0f..cea32f60 100644 --- a/packages/matchers/src/matchers/anything.ts +++ b/packages/matchers/src/matchers/anything.ts @@ -1,7 +1,6 @@ import { Matcher } from './Matcher' export class AnythingMatcher extends Matcher { - // eslint-disable-next-line @typescript-eslint/no-unused-vars matchValue(value: unknown): value is T { return true } diff --git a/packages/matchers/src/matchers/arrayOf.ts b/packages/matchers/src/matchers/arrayOf.ts index dc7f64d9..84db15ab 100644 --- a/packages/matchers/src/matchers/arrayOf.ts +++ b/packages/matchers/src/matchers/arrayOf.ts @@ -7,7 +7,7 @@ export class ArrayOfMatcher extends Matcher> { matchValue( value: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): value is Array { if (!Array.isArray(value)) { return false diff --git a/packages/matchers/src/matchers/capture.ts b/packages/matchers/src/matchers/capture.ts index 606f6455..ec21b572 100644 --- a/packages/matchers/src/matchers/capture.ts +++ b/packages/matchers/src/matchers/capture.ts @@ -2,7 +2,7 @@ import { anything } from './anything' import { Matcher } from './Matcher' export interface CaptureBase { - // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any } @@ -26,7 +26,8 @@ export class CapturedMatcher extends Matcher { if (this.matcher.matchValue(value, keys)) { this.capture(value as unknown as C, keys) return true - } else { + } + else { return false } } diff --git a/packages/matchers/src/matchers/containerOf.ts b/packages/matchers/src/matchers/containerOf.ts index 6dcf14f6..b788d1b7 100644 --- a/packages/matchers/src/matchers/containerOf.ts +++ b/packages/matchers/src/matchers/containerOf.ts @@ -1,5 +1,5 @@ +import type { Matcher } from './Matcher' import * as t from '@babel/types' -import { Matcher } from './Matcher' import { CapturedMatcher } from './capture' /** @@ -9,7 +9,7 @@ import { CapturedMatcher } from './capture' */ export class ContainerOfMatcher< C extends t.Node, - M extends t.Node = C + M extends t.Node = C, > extends CapturedMatcher { constructor(private readonly containedMatcher: Matcher) { super() @@ -33,7 +33,8 @@ export class ContainerOfMatcher< return true } } - } else if (this.matchValue(valueAtKey, [...keys, key])) { + } + else if (this.matchValue(valueAtKey, [...keys, key])) { return true } } @@ -43,7 +44,7 @@ export class ContainerOfMatcher< } export function containerOf( - containedMatcher: Matcher + containedMatcher: Matcher, ): ContainerOfMatcher { return new ContainerOfMatcher(containedMatcher) } diff --git a/packages/matchers/src/matchers/fromCapture.ts b/packages/matchers/src/matchers/fromCapture.ts index bf62cf5a..e3977928 100644 --- a/packages/matchers/src/matchers/fromCapture.ts +++ b/packages/matchers/src/matchers/fromCapture.ts @@ -1,5 +1,5 @@ -import { nodesEquivalent, t } from '@codemod/utils' -import { CapturedMatcher } from './capture' +import type { CapturedMatcher } from './capture' +import { nodesEquivalent, t } from '@codemod-esm/utils' import { Matcher } from './Matcher' export class FromCaptureMatcher extends Matcher { @@ -16,7 +16,7 @@ export class FromCaptureMatcher extends Matcher { } export function fromCapture( - capturedMatcher: CapturedMatcher + capturedMatcher: CapturedMatcher, ): Matcher { return new FromCaptureMatcher(capturedMatcher) } diff --git a/packages/matchers/src/matchers/function.ts b/packages/matchers/src/matchers/function.ts index 2779e630..aec7d77e 100644 --- a/packages/matchers/src/matchers/function.ts +++ b/packages/matchers/src/matchers/function.ts @@ -5,14 +5,14 @@ import { tupleOf } from './tupleOf' export class FunctionMatcher extends Matcher { constructor( private readonly params?: Matcher> | Array>, - private readonly body?: Matcher + private readonly body?: Matcher, ) { super() } matchValue( value: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): value is t.Function { if (!t.isNode(value) || !t.isFunction(value)) { return false @@ -25,7 +25,8 @@ export class FunctionMatcher extends Matcher { ) { return false } - } else if (!this.params.matchValue(value.params, [...keys, 'params'])) { + } + else if (!this.params.matchValue(value.params, [...keys, 'params'])) { return false } } @@ -40,7 +41,7 @@ export class FunctionMatcher extends Matcher { export function Function( params?: Matcher> | Array>, - body?: Matcher + body?: Matcher, ): Matcher { return new FunctionMatcher(params, body) } diff --git a/packages/matchers/src/matchers/generated.ts b/packages/matchers/src/matchers/generated.ts index cbb7d761..6b497097 100644 --- a/packages/matchers/src/matchers/generated.ts +++ b/packages/matchers/src/matchers/generated.ts @@ -1,177 +1,177 @@ /* DO NOT EDIT. This file was generated by 'script/rebuild' */ /* eslint-disable */ -import * as t from '@babel/types' +import * as t from "@babel/types"; -import { tupleOf } from './tupleOf' -import { Matcher } from './Matcher' +import { tupleOf } from "./tupleOf"; +import { Matcher } from "./Matcher"; // aliases for keyword-named functions -export { Import as import } -export { Super as super } +export { Import as import }; +export { Super as super }; export class AnyTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.AnyTypeAnnotation { if (!t.isNode(node) || !t.isAnyTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function anyTypeAnnotation(): Matcher { - return new AnyTypeAnnotationMatcher() + return new AnyTypeAnnotationMatcher(); } export class ArgumentPlaceholderMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ArgumentPlaceholder { if (!t.isNode(node) || !t.isArgumentPlaceholder(node)) { - return false + return false; } - return true + return true; } } export function argumentPlaceholder(): Matcher { - return new ArgumentPlaceholderMatcher() + return new ArgumentPlaceholderMatcher(); } export class ArrayExpressionMatcher extends Matcher { constructor( private readonly elements?: | Matcher> - | Array | Matcher | Matcher> + | Array | Matcher | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ArrayExpression { if (!t.isNode(node) || !t.isArrayExpression(node)) { - return false + return false; } - if (typeof this.elements === 'undefined') { + if (typeof this.elements === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.elements)) { if ( !tupleOf(...this.elements).matchValue(node.elements, [ ...keys, - 'elements', + "elements", ]) ) { - return false + return false; } } else if ( - !this.elements.matchValue(node.elements, [...keys, 'elements']) + !this.elements.matchValue(node.elements, [...keys, "elements"]) ) { - return false + return false; } - return true + return true; } } export function arrayExpression( elements?: | Matcher> - | Array | Matcher | Matcher> + | Array | Matcher | Matcher>, ): Matcher { - return new ArrayExpressionMatcher(elements) + return new ArrayExpressionMatcher(elements); } export class ArrayPatternMatcher extends Matcher { constructor( private readonly elements?: | Matcher> - | Array | Matcher | Matcher> + | Array | Matcher | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ArrayPattern { if (!t.isNode(node) || !t.isArrayPattern(node)) { - return false + return false; } - if (typeof this.elements === 'undefined') { + if (typeof this.elements === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.elements)) { if ( !tupleOf(...this.elements).matchValue(node.elements, [ ...keys, - 'elements', + "elements", ]) ) { - return false + return false; } } else if ( - !this.elements.matchValue(node.elements, [...keys, 'elements']) + !this.elements.matchValue(node.elements, [...keys, "elements"]) ) { - return false + return false; } - return true + return true; } } export function arrayPattern( elements?: | Matcher> - | Array | Matcher | Matcher> + | Array | Matcher | Matcher>, ): Matcher { - return new ArrayPatternMatcher(elements) + return new ArrayPatternMatcher(elements); } export class ArrayTypeAnnotationMatcher extends Matcher { constructor(private readonly elementType?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ArrayTypeAnnotation { if (!t.isNode(node) || !t.isArrayTypeAnnotation(node)) { - return false + return false; } - if (typeof this.elementType === 'undefined') { + if (typeof this.elementType === "undefined") { // undefined matcher means anything matches } else if ( - !this.elementType.matchValue(node.elementType, [...keys, 'elementType']) + !this.elementType.matchValue(node.elementType, [...keys, "elementType"]) ) { - return false + return false; } - return true + return true; } } export function arrayTypeAnnotation( - elementType?: Matcher + elementType?: Matcher, ): Matcher { - return new ArrayTypeAnnotationMatcher(elementType) + return new ArrayTypeAnnotationMatcher(elementType); } export class ArrowFunctionExpressionMatcher extends Matcher { @@ -182,51 +182,51 @@ export class ArrowFunctionExpressionMatcher extends Matcher | Matcher | Matcher >, private readonly body?: Matcher, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ArrowFunctionExpression { if (!t.isNode(node) || !t.isArrowFunctionExpression(node)) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } @@ -237,62 +237,62 @@ export function arrowFunctionExpression( Matcher | Matcher | Matcher >, body?: Matcher, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { - return new ArrowFunctionExpressionMatcher(params, body, async) + return new ArrowFunctionExpressionMatcher(params, body, async); } export class AssignmentExpressionMatcher extends Matcher { constructor( private readonly operator?: Matcher | string, - private readonly left?: Matcher, - private readonly right?: Matcher + private readonly left?: Matcher, + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.AssignmentExpression { if (!t.isNode(node) || !t.isAssignmentExpression(node)) { - return false + return false; } - if (typeof this.operator === 'undefined') { + if (typeof this.operator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.operator === 'string') { + } else if (typeof this.operator === "string") { if (this.operator !== node.operator) { - return false + return false; } } else if ( - !this.operator.matchValue(node.operator, [...keys, 'operator']) + !this.operator.matchValue(node.operator, [...keys, "operator"]) ) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function assignmentExpression( operator?: Matcher | string, - left?: Matcher, - right?: Matcher + left?: Matcher, + right?: Matcher, ): Matcher { - return new AssignmentExpressionMatcher(operator, left, right) + return new AssignmentExpressionMatcher(operator, left, right); } export class AssignmentPatternMatcher extends Matcher { @@ -307,32 +307,32 @@ export class AssignmentPatternMatcher extends Matcher { | t.TSTypeAssertion | t.TSNonNullExpression >, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.AssignmentPattern { if (!t.isNode(node) || !t.isAssignmentPattern(node)) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } @@ -347,217 +347,217 @@ export function assignmentPattern( | t.TSTypeAssertion | t.TSNonNullExpression >, - right?: Matcher + right?: Matcher, ): Matcher { - return new AssignmentPatternMatcher(left, right) + return new AssignmentPatternMatcher(left, right); } export class AwaitExpressionMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.AwaitExpression { if (!t.isNode(node) || !t.isAwaitExpression(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function awaitExpression( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new AwaitExpressionMatcher(argument) + return new AwaitExpressionMatcher(argument); } export class BigIntLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BigIntLiteral { if (!t.isNode(node) || !t.isBigIntLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function bigIntLiteral( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new BigIntLiteralMatcher(value) + return new BigIntLiteralMatcher(value); } export class BinaryExpressionMatcher extends Matcher { constructor( private readonly operator?: | Matcher< - | '+' - | '-' - | '/' - | '%' - | '*' - | '**' - | '&' - | '|' - | '>>' - | '>>>' - | '<<' - | '^' - | '==' - | '===' - | '!=' - | '!==' - | 'in' - | 'instanceof' - | '>' - | '<' - | '>=' - | '<=' - | '|>' + | "+" + | "-" + | "/" + | "%" + | "*" + | "**" + | "&" + | "|" + | ">>" + | ">>>" + | "<<" + | "^" + | "==" + | "===" + | "!=" + | "!==" + | "in" + | "instanceof" + | ">" + | "<" + | ">=" + | "<=" + | "|>" > | string, private readonly left?: Matcher, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BinaryExpression { if (!t.isNode(node) || !t.isBinaryExpression(node)) { - return false + return false; } - if (typeof this.operator === 'undefined') { + if (typeof this.operator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.operator === 'string') { + } else if (typeof this.operator === "string") { if (this.operator !== node.operator) { - return false + return false; } } else if ( - !this.operator.matchValue(node.operator, [...keys, 'operator']) + !this.operator.matchValue(node.operator, [...keys, "operator"]) ) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function binaryExpression( operator?: | Matcher< - | '+' - | '-' - | '/' - | '%' - | '*' - | '**' - | '&' - | '|' - | '>>' - | '>>>' - | '<<' - | '^' - | '==' - | '===' - | '!=' - | '!==' - | 'in' - | 'instanceof' - | '>' - | '<' - | '>=' - | '<=' - | '|>' + | "+" + | "-" + | "/" + | "%" + | "*" + | "**" + | "&" + | "|" + | ">>" + | ">>>" + | "<<" + | "^" + | "==" + | "===" + | "!=" + | "!==" + | "in" + | "instanceof" + | ">" + | "<" + | ">=" + | "<=" + | "|>" > | string, left?: Matcher, - right?: Matcher + right?: Matcher, ): Matcher { - return new BinaryExpressionMatcher(operator, left, right) + return new BinaryExpressionMatcher(operator, left, right); } export class BindExpressionMatcher extends Matcher { constructor( private readonly object?: Matcher, - private readonly callee?: Matcher + private readonly callee?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BindExpression { if (!t.isNode(node) || !t.isBindExpression(node)) { - return false + return false; } - if (typeof this.object === 'undefined') { + if (typeof this.object === "undefined") { // undefined matcher means anything matches - } else if (!this.object.matchValue(node.object, [...keys, 'object'])) { - return false + } else if (!this.object.matchValue(node.object, [...keys, "object"])) { + return false; } - if (typeof this.callee === 'undefined') { + if (typeof this.callee === "undefined") { // undefined matcher means anything matches - } else if (!this.callee.matchValue(node.callee, [...keys, 'callee'])) { - return false + } else if (!this.callee.matchValue(node.callee, [...keys, "callee"])) { + return false; } - return true + return true; } } export function bindExpression( object?: Matcher, - callee?: Matcher + callee?: Matcher, ): Matcher { - return new BindExpressionMatcher(object, callee) + return new BindExpressionMatcher(object, callee); } export class BlockStatementMatcher extends Matcher { @@ -567,180 +567,178 @@ export class BlockStatementMatcher extends Matcher { | Array>, private readonly directives?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BlockStatement { if (!t.isNode(node) || !t.isBlockStatement(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.directives === 'undefined') { + if (typeof this.directives === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.directives)) { if ( !tupleOf(...this.directives).matchValue(node.directives, [ ...keys, - 'directives', + "directives", ]) ) { - return false + return false; } } else if ( - !this.directives.matchValue(node.directives, [...keys, 'directives']) + !this.directives.matchValue(node.directives, [...keys, "directives"]) ) { - return false + return false; } - return true + return true; } } export function blockStatement( body?: Matcher> | Array>, - directives?: Matcher> | Array> + directives?: Matcher> | Array>, ): Matcher { - return new BlockStatementMatcher(body, directives) + return new BlockStatementMatcher(body, directives); } export class BooleanLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | boolean) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BooleanLiteral { if (!t.isNode(node) || !t.isBooleanLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'boolean') { + } else if (typeof this.value === "boolean") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function booleanLiteral( - value?: Matcher | boolean + value?: Matcher | boolean, ): Matcher { - return new BooleanLiteralMatcher(value) + return new BooleanLiteralMatcher(value); } export class BooleanLiteralTypeAnnotationMatcher extends Matcher { constructor(private readonly value?: Matcher | boolean) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BooleanLiteralTypeAnnotation { if (!t.isNode(node) || !t.isBooleanLiteralTypeAnnotation(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'boolean') { + } else if (typeof this.value === "boolean") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function booleanLiteralTypeAnnotation( - value?: Matcher | boolean + value?: Matcher | boolean, ): Matcher { - return new BooleanLiteralTypeAnnotationMatcher(value) + return new BooleanLiteralTypeAnnotationMatcher(value); } export class BooleanTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BooleanTypeAnnotation { if (!t.isNode(node) || !t.isBooleanTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function booleanTypeAnnotation(): Matcher { - return new BooleanTypeAnnotationMatcher() + return new BooleanTypeAnnotationMatcher(); } export class BreakStatementMatcher extends Matcher { constructor(private readonly label?: Matcher | null) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.BreakStatement { if (!t.isNode(node) || !t.isBreakStatement(node)) { - return false + return false; } - if (typeof this.label === 'undefined') { + if (typeof this.label === "undefined") { // undefined matcher means anything matches } else if (this.label === null) { // null matcher means we expect null value if (node.label !== null) { - return false + return false; } - } else if (node.label === null) { - return false - } else if (!this.label.matchValue(node.label, [...keys, 'label'])) { - return false + } else if (!this.label.matchValue(node.label, [...keys, "label"])) { + return false; } - return true + return true; } } export function breakStatement( - label?: Matcher | null + label?: Matcher | null, ): Matcher { - return new BreakStatementMatcher(label) + return new BreakStatementMatcher(label); } export class CallExpressionMatcher extends Matcher { @@ -749,78 +747,62 @@ export class CallExpressionMatcher extends Matcher { t.Expression | t.Super | t.V8IntrinsicIdentifier >, private readonly _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.CallExpression { if (!t.isNode(node) || !t.isCallExpression(node)) { - return false + return false; } - if (typeof this.callee === 'undefined') { + if (typeof this.callee === "undefined") { // undefined matcher means anything matches - } else if (!this.callee.matchValue(node.callee, [...keys, 'callee'])) { - return false + } else if (!this.callee.matchValue(node.callee, [...keys, "callee"])) { + return false; } - if (typeof this._arguments === 'undefined') { + if (typeof this._arguments === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this._arguments)) { if ( !tupleOf(...this._arguments).matchValue(node.arguments, [ ...keys, - 'arguments', + "arguments", ]) ) { - return false + return false; } } else if ( - !this._arguments.matchValue(node.arguments, [...keys, 'arguments']) + !this._arguments.matchValue(node.arguments, [...keys, "arguments"]) ) { - return false + return false; } - return true + return true; } } export function callExpression( callee?: Matcher, _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher - > + >, ): Matcher { - return new CallExpressionMatcher(callee, _arguments) + return new CallExpressionMatcher(callee, _arguments); } export class CatchClauseMatcher extends Matcher { @@ -828,47 +810,45 @@ export class CatchClauseMatcher extends Matcher { private readonly param?: Matcher< t.Identifier | t.ArrayPattern | t.ObjectPattern > | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.CatchClause { if (!t.isNode(node) || !t.isCatchClause(node)) { - return false + return false; } - if (typeof this.param === 'undefined') { + if (typeof this.param === "undefined") { // undefined matcher means anything matches } else if (this.param === null) { // null matcher means we expect null value if (node.param !== null) { - return false + return false; } - } else if (node.param === null) { - return false - } else if (!this.param.matchValue(node.param, [...keys, 'param'])) { - return false + } else if (!this.param.matchValue(node.param, [...keys, "param"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function catchClause( param?: Matcher | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new CatchClauseMatcher(param, body) + return new CatchClauseMatcher(param, body); } export class ClassAccessorPropertyMatcher extends Matcher { @@ -890,103 +870,97 @@ export class ClassAccessorPropertyMatcher extends Matcher> | null, private readonly computed?: Matcher | boolean, - private readonly _static?: Matcher | boolean + private readonly _static?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassAccessorProperty { if (!t.isNode(node) || !t.isClassAccessorProperty(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches } else if (this.value === null) { // null matcher means we expect null value if (node.value !== null) { - return false + return false; } - } else if (node.value === null) { - return false - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - return true + return true; } } @@ -1005,7 +979,7 @@ export function classAccessorProperty( > | null, decorators?: Matcher> | Array> | null, computed?: Matcher | boolean, - _static?: Matcher | boolean + _static?: Matcher | boolean, ): Matcher { return new ClassAccessorPropertyMatcher( key, @@ -1013,8 +987,8 @@ export function classAccessorProperty( typeAnnotation, decorators, computed, - _static - ) + _static, + ); } export class ClassBodyMatcher extends Matcher { @@ -1041,32 +1015,32 @@ export class ClassBodyMatcher extends Matcher { | Matcher | Matcher | Matcher - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassBody { if (!t.isNode(node) || !t.isClassBody(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -1093,94 +1067,95 @@ export function classBody( | Matcher | Matcher | Matcher - > + >, ): Matcher { - return new ClassBodyMatcher(body) + return new ClassBodyMatcher(body); } export class ClassDeclarationMatcher extends Matcher { constructor( - private readonly id?: Matcher, + private readonly id?: Matcher | null, private readonly superClass?: Matcher | null, private readonly body?: Matcher, private readonly decorators?: | Matcher> | Array> - | null + | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassDeclaration { if (!t.isNode(node) || !t.isClassDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (this.id === null) { + // null matcher means we expect null value + if (node.id !== null) { + return false; + } + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.superClass === 'undefined') { + if (typeof this.superClass === "undefined") { // undefined matcher means anything matches } else if (this.superClass === null) { // null matcher means we expect null value if (node.superClass !== null) { - return false + return false; } - } else if (node.superClass === null) { - return false } else if ( - !this.superClass.matchValue(node.superClass, [...keys, 'superClass']) + !this.superClass.matchValue(node.superClass, [...keys, "superClass"]) ) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - return true + return true; } } export function classDeclaration( - id?: Matcher, + id?: Matcher | null, superClass?: Matcher | null, body?: Matcher, - decorators?: Matcher> | Array> | null + decorators?: Matcher> | Array> | null, ): Matcher { - return new ClassDeclarationMatcher(id, superClass, body, decorators) + return new ClassDeclarationMatcher(id, superClass, body, decorators); } export class ClassExpressionMatcher extends Matcher { @@ -1191,78 +1166,72 @@ export class ClassExpressionMatcher extends Matcher { private readonly decorators?: | Matcher> | Array> - | null + | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassExpression { if (!t.isNode(node) || !t.isClassExpression(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches } else if (this.id === null) { // null matcher means we expect null value if (node.id !== null) { - return false + return false; } - } else if (node.id === null) { - return false - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.superClass === 'undefined') { + if (typeof this.superClass === "undefined") { // undefined matcher means anything matches } else if (this.superClass === null) { // null matcher means we expect null value if (node.superClass !== null) { - return false + return false; } - } else if (node.superClass === null) { - return false } else if ( - !this.superClass.matchValue(node.superClass, [...keys, 'superClass']) + !this.superClass.matchValue(node.superClass, [...keys, "superClass"]) ) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - return true + return true; } } @@ -1270,66 +1239,64 @@ export function classExpression( id?: Matcher | null, superClass?: Matcher | null, body?: Matcher, - decorators?: Matcher> | Array> | null + decorators?: Matcher> | Array> | null, ): Matcher { - return new ClassExpressionMatcher(id, superClass, body, decorators) + return new ClassExpressionMatcher(id, superClass, body, decorators); } export class ClassImplementsMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassImplements { if (!t.isNode(node) || !t.isClassImplements(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function classImplements( id?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new ClassImplementsMatcher(id, typeParameters) + return new ClassImplementsMatcher(id, typeParameters); } export class ClassMethodMatcher extends Matcher { constructor( private readonly kind?: - | Matcher<'get' | 'set' | 'method' | 'constructor'> + | Matcher<"get" | "set" | "method" | "constructor"> | string, private readonly key?: Matcher< | t.Identifier @@ -1354,106 +1321,106 @@ export class ClassMethodMatcher extends Matcher { private readonly computed?: Matcher | boolean, private readonly _static?: Matcher | boolean, private readonly generator?: Matcher | boolean, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassMethod { if (!t.isNode(node) || !t.isClassMethod(node)) { - return false + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - if (typeof this.generator === 'undefined') { + if (typeof this.generator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.generator === 'boolean') { + } else if (typeof this.generator === "boolean") { if (this.generator !== node.generator) { - return false + return false; } } else if ( - !this.generator.matchValue(node.generator, [...keys, 'generator']) + !this.generator.matchValue(node.generator, [...keys, "generator"]) ) { - return false + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } export function classMethod( - kind?: Matcher<'get' | 'set' | 'method' | 'constructor'> | string, + kind?: Matcher<"get" | "set" | "method" | "constructor"> | string, key?: Matcher< | t.Identifier | t.StringLiteral @@ -1475,7 +1442,7 @@ export function classMethod( computed?: Matcher | boolean, _static?: Matcher | boolean, generator?: Matcher | boolean, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { return new ClassMethodMatcher( kind, @@ -1485,13 +1452,13 @@ export function classMethod( computed, _static, generator, - async - ) + async, + ); } export class ClassPrivateMethodMatcher extends Matcher { constructor( - private readonly kind?: Matcher<'get' | 'set' | 'method'> | string, + private readonly kind?: Matcher<"get" | "set" | "method"> | string, private readonly key?: Matcher, private readonly params?: | Matcher< @@ -1506,72 +1473,72 @@ export class ClassPrivateMethodMatcher extends Matcher { | Matcher >, private readonly body?: Matcher, - private readonly _static?: Matcher | boolean + private readonly _static?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassPrivateMethod { if (!t.isNode(node) || !t.isClassPrivateMethod(node)) { - return false + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - return true + return true; } } export function classPrivateMethod( - kind?: Matcher<'get' | 'set' | 'method'> | string, + kind?: Matcher<"get" | "set" | "method"> | string, key?: Matcher, params?: | Matcher< @@ -1584,9 +1551,9 @@ export function classPrivateMethod( | Matcher >, body?: Matcher, - _static?: Matcher | boolean + _static?: Matcher | boolean, ): Matcher { - return new ClassPrivateMethodMatcher(kind, key, params, body, _static) + return new ClassPrivateMethodMatcher(kind, key, params, body, _static); } export class ClassPrivatePropertyMatcher extends Matcher { @@ -1597,73 +1564,69 @@ export class ClassPrivatePropertyMatcher extends Matcher | Matcher> | Array> | null, - private readonly _static?: Matcher | boolean + private readonly _static?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassPrivateProperty { if (!t.isNode(node) || !t.isClassPrivateProperty(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches } else if (this.value === null) { // null matcher means we expect null value if (node.value !== null) { - return false + return false; } - } else if (node.value === null) { - return false - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - return true + return true; } } @@ -1671,9 +1634,9 @@ export function classPrivateProperty( key?: Matcher, value?: Matcher | null, decorators?: Matcher> | Array> | null, - _static?: Matcher | boolean + _static?: Matcher | boolean, ): Matcher { - return new ClassPrivatePropertyMatcher(key, value, decorators, _static) + return new ClassPrivatePropertyMatcher(key, value, decorators, _static); } export class ClassPropertyMatcher extends Matcher { @@ -1694,103 +1657,97 @@ export class ClassPropertyMatcher extends Matcher { | Array> | null, private readonly computed?: Matcher | boolean, - private readonly _static?: Matcher | boolean + private readonly _static?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ClassProperty { if (!t.isNode(node) || !t.isClassProperty(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches } else if (this.value === null) { // null matcher means we expect null value if (node.value !== null) { - return false + return false; } - } else if (node.value === null) { - return false - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - return true + return true; } } @@ -1808,7 +1765,7 @@ export function classProperty( > | null, decorators?: Matcher> | Array> | null, computed?: Matcher | boolean, - _static?: Matcher | boolean + _static?: Matcher | boolean, ): Matcher { return new ClassPropertyMatcher( key, @@ -1816,149 +1773,147 @@ export function classProperty( typeAnnotation, decorators, computed, - _static - ) + _static, + ); } export class ConditionalExpressionMatcher extends Matcher { constructor( private readonly test?: Matcher, private readonly consequent?: Matcher, - private readonly alternate?: Matcher + private readonly alternate?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ConditionalExpression { if (!t.isNode(node) || !t.isConditionalExpression(node)) { - return false + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.consequent === 'undefined') { + if (typeof this.consequent === "undefined") { // undefined matcher means anything matches } else if ( - !this.consequent.matchValue(node.consequent, [...keys, 'consequent']) + !this.consequent.matchValue(node.consequent, [...keys, "consequent"]) ) { - return false + return false; } - if (typeof this.alternate === 'undefined') { + if (typeof this.alternate === "undefined") { // undefined matcher means anything matches } else if ( - !this.alternate.matchValue(node.alternate, [...keys, 'alternate']) + !this.alternate.matchValue(node.alternate, [...keys, "alternate"]) ) { - return false + return false; } - return true + return true; } } export function conditionalExpression( test?: Matcher, consequent?: Matcher, - alternate?: Matcher + alternate?: Matcher, ): Matcher { - return new ConditionalExpressionMatcher(test, consequent, alternate) + return new ConditionalExpressionMatcher(test, consequent, alternate); } export class ContinueStatementMatcher extends Matcher { constructor(private readonly label?: Matcher | null) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ContinueStatement { if (!t.isNode(node) || !t.isContinueStatement(node)) { - return false + return false; } - if (typeof this.label === 'undefined') { + if (typeof this.label === "undefined") { // undefined matcher means anything matches } else if (this.label === null) { // null matcher means we expect null value if (node.label !== null) { - return false + return false; } - } else if (node.label === null) { - return false - } else if (!this.label.matchValue(node.label, [...keys, 'label'])) { - return false + } else if (!this.label.matchValue(node.label, [...keys, "label"])) { + return false; } - return true + return true; } } export function continueStatement( - label?: Matcher | null + label?: Matcher | null, ): Matcher { - return new ContinueStatementMatcher(label) + return new ContinueStatementMatcher(label); } export class DebuggerStatementMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DebuggerStatement { if (!t.isNode(node) || !t.isDebuggerStatement(node)) { - return false + return false; } - return true + return true; } } export function debuggerStatement(): Matcher { - return new DebuggerStatementMatcher() + return new DebuggerStatementMatcher(); } export class DecimalLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DecimalLiteral { if (!t.isNode(node) || !t.isDecimalLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function decimalLiteral( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new DecimalLiteralMatcher(value) + return new DecimalLiteralMatcher(value); } export class DeclareClassMatcher extends Matcher { @@ -1969,72 +1924,68 @@ export class DeclareClassMatcher extends Matcher { | Matcher> | Array> | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareClass { if (!t.isNode(node) || !t.isDeclareClass(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this._extends === 'undefined') { + if (typeof this._extends === "undefined") { // undefined matcher means anything matches } else if (this._extends === null) { // null matcher means we expect null value if (node.extends !== null) { - return false + return false; } - } else if (node.extends === null) { - return false } else if (Array.isArray(this._extends)) { if ( !tupleOf(...this._extends).matchValue(node.extends, [ ...keys, - 'extends', + "extends", ]) ) { - return false + return false; } - } else if (!this._extends.matchValue(node.extends, [...keys, 'extends'])) { - return false + } else if (!this._extends.matchValue(node.extends, [...keys, "extends"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -2045,38 +1996,70 @@ export function declareClass( | Matcher> | Array> | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new DeclareClassMatcher(id, typeParameters, _extends, body) + return new DeclareClassMatcher(id, typeParameters, _extends, body); } export class DeclareExportAllDeclarationMatcher extends Matcher { - constructor(private readonly source?: Matcher) { - super() + constructor( + private readonly source?: Matcher, + private readonly attributes?: + | Matcher> + | Array> + | null, + ) { + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareExportAllDeclaration { if (!t.isNode(node) || !t.isDeclareExportAllDeclaration(node)) { - return false + return false; } - if (typeof this.source === 'undefined') { + if (typeof this.source === "undefined") { // undefined matcher means anything matches - } else if (!this.source.matchValue(node.source, [...keys, 'source'])) { - return false + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; } - return true + if (typeof this.attributes === "undefined") { + // undefined matcher means anything matches + } else if (this.attributes === null) { + // null matcher means we expect null value + if (node.attributes !== null) { + return false; + } + } else if (Array.isArray(this.attributes)) { + if ( + !tupleOf(...this.attributes).matchValue(node.attributes, [ + ...keys, + "attributes", + ]) + ) { + return false; + } + } else if ( + !this.attributes.matchValue(node.attributes, [...keys, "attributes"]) + ) { + return false; + } + + return true; } } export function declareExportAllDeclaration( - source?: Matcher + source?: Matcher, + attributes?: + | Matcher> + | Array> + | null, ): Matcher { - return new DeclareExportAllDeclarationMatcher(source) + return new DeclareExportAllDeclarationMatcher(source, attributes); } export class DeclareExportDeclarationMatcher extends Matcher { @@ -2086,72 +2069,92 @@ export class DeclareExportDeclarationMatcher extends Matcher> | Array | Matcher> | null, - private readonly source?: Matcher | null + private readonly source?: Matcher | null, + private readonly attributes?: + | Matcher> + | Array> + | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareExportDeclaration { if (!t.isNode(node) || !t.isDeclareExportDeclaration(node)) { - return false + return false; } - if (typeof this.declaration === 'undefined') { + if (typeof this.declaration === "undefined") { // undefined matcher means anything matches } else if (this.declaration === null) { // null matcher means we expect null value if (node.declaration !== null) { - return false + return false; } - } else if (node.declaration === null) { - return false } else if ( - !this.declaration.matchValue(node.declaration, [...keys, 'declaration']) + !this.declaration.matchValue(node.declaration, [...keys, "declaration"]) ) { - return false + return false; } - if (typeof this.specifiers === 'undefined') { + if (typeof this.specifiers === "undefined") { // undefined matcher means anything matches } else if (this.specifiers === null) { // null matcher means we expect null value if (node.specifiers !== null) { - return false + return false; } - } else if (node.specifiers === null) { - return false } else if (Array.isArray(this.specifiers)) { if ( !tupleOf(...this.specifiers).matchValue(node.specifiers, [ ...keys, - 'specifiers', + "specifiers", ]) ) { - return false + return false; } } else if ( - !this.specifiers.matchValue(node.specifiers, [...keys, 'specifiers']) + !this.specifiers.matchValue(node.specifiers, [...keys, "specifiers"]) ) { - return false + return false; } - if (typeof this.source === 'undefined') { + if (typeof this.source === "undefined") { // undefined matcher means anything matches } else if (this.source === null) { // null matcher means we expect null value if (node.source !== null) { - return false + return false; } - } else if (node.source === null) { - return false - } else if (!this.source.matchValue(node.source, [...keys, 'source'])) { - return false + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; } - return true + if (typeof this.attributes === "undefined") { + // undefined matcher means anything matches + } else if (this.attributes === null) { + // null matcher means we expect null value + if (node.attributes !== null) { + return false; + } + } else if (Array.isArray(this.attributes)) { + if ( + !tupleOf(...this.attributes).matchValue(node.attributes, [ + ...keys, + "attributes", + ]) + ) { + return false; + } + } else if ( + !this.attributes.matchValue(node.attributes, [...keys, "attributes"]) + ) { + return false; + } + + return true; } } @@ -2161,38 +2164,47 @@ export function declareExportDeclaration( | Matcher> | Array | Matcher> | null, - source?: Matcher | null + source?: Matcher | null, + attributes?: + | Matcher> + | Array> + | null, ): Matcher { - return new DeclareExportDeclarationMatcher(declaration, specifiers, source) + return new DeclareExportDeclarationMatcher( + declaration, + specifiers, + source, + attributes, + ); } export class DeclareFunctionMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareFunction { if (!t.isNode(node) || !t.isDeclareFunction(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function declareFunction( - id?: Matcher + id?: Matcher, ): Matcher { - return new DeclareFunctionMatcher(id) + return new DeclareFunctionMatcher(id); } export class DeclareInterfaceMatcher extends Matcher { @@ -2203,72 +2215,68 @@ export class DeclareInterfaceMatcher extends Matcher { | Matcher> | Array> | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareInterface { if (!t.isNode(node) || !t.isDeclareInterface(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this._extends === 'undefined') { + if (typeof this._extends === "undefined") { // undefined matcher means anything matches } else if (this._extends === null) { // null matcher means we expect null value if (node.extends !== null) { - return false + return false; } - } else if (node.extends === null) { - return false } else if (Array.isArray(this._extends)) { if ( !tupleOf(...this._extends).matchValue(node.extends, [ ...keys, - 'extends', + "extends", ]) ) { - return false + return false; } - } else if (!this._extends.matchValue(node.extends, [...keys, 'extends'])) { - return false + } else if (!this._extends.matchValue(node.extends, [...keys, "extends"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -2279,576 +2287,568 @@ export function declareInterface( | Matcher> | Array> | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new DeclareInterfaceMatcher(id, typeParameters, _extends, body) + return new DeclareInterfaceMatcher(id, typeParameters, _extends, body); } export class DeclareModuleMatcher extends Matcher { constructor( private readonly id?: Matcher, private readonly body?: Matcher, - private readonly kind?: Matcher<'CommonJS' | 'ES'> | string | null + private readonly kind?: Matcher<"CommonJS" | "ES"> | string | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareModule { if (!t.isNode(node) || !t.isDeclareModule(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } } else if (this.kind === null) { // null matcher means we expect null value if (node.kind !== null) { - return false + return false; } - } else if (node.kind === null) { - return false - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - return true + return true; } } export function declareModule( id?: Matcher, body?: Matcher, - kind?: Matcher<'CommonJS' | 'ES'> | string | null + kind?: Matcher<"CommonJS" | "ES"> | string | null, ): Matcher { - return new DeclareModuleMatcher(id, body, kind) + return new DeclareModuleMatcher(id, body, kind); } export class DeclareModuleExportsMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareModuleExports { if (!t.isNode(node) || !t.isDeclareModuleExports(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function declareModuleExports( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new DeclareModuleExportsMatcher(typeAnnotation) + return new DeclareModuleExportsMatcher(typeAnnotation); } export class DeclareOpaqueTypeMatcher extends Matcher { constructor( private readonly id?: Matcher, private readonly typeParameters?: Matcher | null, - private readonly supertype?: Matcher | null + private readonly supertype?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareOpaqueType { if (!t.isNode(node) || !t.isDeclareOpaqueType(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.supertype === 'undefined') { + if (typeof this.supertype === "undefined") { // undefined matcher means anything matches } else if (this.supertype === null) { // null matcher means we expect null value if (node.supertype !== null) { - return false + return false; } - } else if (node.supertype === null) { - return false } else if ( - !this.supertype.matchValue(node.supertype, [...keys, 'supertype']) + !this.supertype.matchValue(node.supertype, [...keys, "supertype"]) ) { - return false + return false; } - return true + return true; } } export function declareOpaqueType( id?: Matcher, typeParameters?: Matcher | null, - supertype?: Matcher | null + supertype?: Matcher | null, ): Matcher { - return new DeclareOpaqueTypeMatcher(id, typeParameters, supertype) + return new DeclareOpaqueTypeMatcher(id, typeParameters, supertype); } export class DeclareTypeAliasMatcher extends Matcher { constructor( private readonly id?: Matcher, private readonly typeParameters?: Matcher | null, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareTypeAlias { if (!t.isNode(node) || !t.isDeclareTypeAlias(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function declareTypeAlias( id?: Matcher, typeParameters?: Matcher | null, - right?: Matcher + right?: Matcher, ): Matcher { - return new DeclareTypeAliasMatcher(id, typeParameters, right) + return new DeclareTypeAliasMatcher(id, typeParameters, right); } export class DeclareVariableMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclareVariable { if (!t.isNode(node) || !t.isDeclareVariable(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function declareVariable( - id?: Matcher + id?: Matcher, ): Matcher { - return new DeclareVariableMatcher(id) + return new DeclareVariableMatcher(id); } export class DeclaredPredicateMatcher extends Matcher { constructor(private readonly value?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DeclaredPredicate { if (!t.isNode(node) || !t.isDeclaredPredicate(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function declaredPredicate( - value?: Matcher + value?: Matcher, ): Matcher { - return new DeclaredPredicateMatcher(value) + return new DeclaredPredicateMatcher(value); } export class DecoratorMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Decorator { if (!t.isNode(node) || !t.isDecorator(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function decorator( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new DecoratorMatcher(expression) + return new DecoratorMatcher(expression); } export class DirectiveMatcher extends Matcher { constructor(private readonly value?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Directive { if (!t.isNode(node) || !t.isDirective(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function directive( - value?: Matcher + value?: Matcher, ): Matcher { - return new DirectiveMatcher(value) + return new DirectiveMatcher(value); } export class DirectiveLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DirectiveLiteral { if (!t.isNode(node) || !t.isDirectiveLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function directiveLiteral( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new DirectiveLiteralMatcher(value) + return new DirectiveLiteralMatcher(value); } export class DoExpressionMatcher extends Matcher { constructor( private readonly body?: Matcher, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DoExpression { if (!t.isNode(node) || !t.isDoExpression(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } export function doExpression( body?: Matcher, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { - return new DoExpressionMatcher(body, async) + return new DoExpressionMatcher(body, async); } export class DoWhileStatementMatcher extends Matcher { constructor( private readonly test?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.DoWhileStatement { if (!t.isNode(node) || !t.isDoWhileStatement(node)) { - return false + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function doWhileStatement( test?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new DoWhileStatementMatcher(test, body) + return new DoWhileStatementMatcher(test, body); } export class EmptyStatementMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EmptyStatement { if (!t.isNode(node) || !t.isEmptyStatement(node)) { - return false + return false; } - return true + return true; } } export function emptyStatement(): Matcher { - return new EmptyStatementMatcher() + return new EmptyStatementMatcher(); } export class EmptyTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EmptyTypeAnnotation { if (!t.isNode(node) || !t.isEmptyTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function emptyTypeAnnotation(): Matcher { - return new EmptyTypeAnnotationMatcher() + return new EmptyTypeAnnotationMatcher(); } export class EnumBooleanBodyMatcher extends Matcher { constructor( private readonly members?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumBooleanBody { if (!t.isNode(node) || !t.isEnumBooleanBody(node)) { - return false + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function enumBooleanBody( members?: | Matcher> - | Array> + | Array>, ): Matcher { - return new EnumBooleanBodyMatcher(members) + return new EnumBooleanBodyMatcher(members); } export class EnumBooleanMemberMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumBooleanMember { if (!t.isNode(node) || !t.isEnumBooleanMember(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function enumBooleanMember( - id?: Matcher + id?: Matcher, ): Matcher { - return new EnumBooleanMemberMatcher(id) + return new EnumBooleanMemberMatcher(id); } export class EnumDeclarationMatcher extends Matcher { @@ -2856,32 +2856,32 @@ export class EnumDeclarationMatcher extends Matcher { private readonly id?: Matcher, private readonly body?: Matcher< t.EnumBooleanBody | t.EnumNumberBody | t.EnumStringBody | t.EnumSymbolBody - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumDeclaration { if (!t.isNode(node) || !t.isEnumDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -2889,298 +2889,298 @@ export function enumDeclaration( id?: Matcher, body?: Matcher< t.EnumBooleanBody | t.EnumNumberBody | t.EnumStringBody | t.EnumSymbolBody - > + >, ): Matcher { - return new EnumDeclarationMatcher(id, body) + return new EnumDeclarationMatcher(id, body); } export class EnumDefaultedMemberMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumDefaultedMember { if (!t.isNode(node) || !t.isEnumDefaultedMember(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function enumDefaultedMember( - id?: Matcher + id?: Matcher, ): Matcher { - return new EnumDefaultedMemberMatcher(id) + return new EnumDefaultedMemberMatcher(id); } export class EnumNumberBodyMatcher extends Matcher { constructor( private readonly members?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumNumberBody { if (!t.isNode(node) || !t.isEnumNumberBody(node)) { - return false + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function enumNumberBody( members?: | Matcher> - | Array> + | Array>, ): Matcher { - return new EnumNumberBodyMatcher(members) + return new EnumNumberBodyMatcher(members); } export class EnumNumberMemberMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly init?: Matcher + private readonly init?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumNumberMember { if (!t.isNode(node) || !t.isEnumNumberMember(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.init === 'undefined') { + if (typeof this.init === "undefined") { // undefined matcher means anything matches - } else if (!this.init.matchValue(node.init, [...keys, 'init'])) { - return false + } else if (!this.init.matchValue(node.init, [...keys, "init"])) { + return false; } - return true + return true; } } export function enumNumberMember( id?: Matcher, - init?: Matcher + init?: Matcher, ): Matcher { - return new EnumNumberMemberMatcher(id, init) + return new EnumNumberMemberMatcher(id, init); } export class EnumStringBodyMatcher extends Matcher { constructor( private readonly members?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumStringBody { if (!t.isNode(node) || !t.isEnumStringBody(node)) { - return false + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function enumStringBody( members?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new EnumStringBodyMatcher(members) + return new EnumStringBodyMatcher(members); } export class EnumStringMemberMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly init?: Matcher + private readonly init?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumStringMember { if (!t.isNode(node) || !t.isEnumStringMember(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.init === 'undefined') { + if (typeof this.init === "undefined") { // undefined matcher means anything matches - } else if (!this.init.matchValue(node.init, [...keys, 'init'])) { - return false + } else if (!this.init.matchValue(node.init, [...keys, "init"])) { + return false; } - return true + return true; } } export function enumStringMember( id?: Matcher, - init?: Matcher + init?: Matcher, ): Matcher { - return new EnumStringMemberMatcher(id, init) + return new EnumStringMemberMatcher(id, init); } export class EnumSymbolBodyMatcher extends Matcher { constructor( private readonly members?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.EnumSymbolBody { if (!t.isNode(node) || !t.isEnumSymbolBody(node)) { - return false + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function enumSymbolBody( members?: | Matcher> - | Array> + | Array>, ): Matcher { - return new EnumSymbolBodyMatcher(members) + return new EnumSymbolBodyMatcher(members); } export class ExistsTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExistsTypeAnnotation { if (!t.isNode(node) || !t.isExistsTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function existsTypeAnnotation(): Matcher { - return new ExistsTypeAnnotationMatcher() + return new ExistsTypeAnnotationMatcher(); } export class ExportAllDeclarationMatcher extends Matcher { constructor(private readonly source?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportAllDeclaration { if (!t.isNode(node) || !t.isExportAllDeclaration(node)) { - return false + return false; } - if (typeof this.source === 'undefined') { + if (typeof this.source === "undefined") { // undefined matcher means anything matches - } else if (!this.source.matchValue(node.source, [...keys, 'source'])) { - return false + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; } - return true + return true; } } export function exportAllDeclaration( - source?: Matcher + source?: Matcher, ): Matcher { - return new ExportAllDeclarationMatcher(source) + return new ExportAllDeclarationMatcher(source); } export class ExportDefaultDeclarationMatcher extends Matcher { @@ -3190,28 +3190,28 @@ export class ExportDefaultDeclarationMatcher extends Matcher + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportDefaultDeclaration { if (!t.isNode(node) || !t.isExportDefaultDeclaration(node)) { - return false + return false; } - if (typeof this.declaration === 'undefined') { + if (typeof this.declaration === "undefined") { // undefined matcher means anything matches } else if ( - !this.declaration.matchValue(node.declaration, [...keys, 'declaration']) + !this.declaration.matchValue(node.declaration, [...keys, "declaration"]) ) { - return false + return false; } - return true + return true; } } @@ -3221,40 +3221,40 @@ export function exportDefaultDeclaration( | t.FunctionDeclaration | t.ClassDeclaration | t.Expression - > + >, ): Matcher { - return new ExportDefaultDeclarationMatcher(declaration) + return new ExportDefaultDeclarationMatcher(declaration); } export class ExportDefaultSpecifierMatcher extends Matcher { constructor(private readonly exported?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportDefaultSpecifier { if (!t.isNode(node) || !t.isExportDefaultSpecifier(node)) { - return false + return false; } - if (typeof this.exported === 'undefined') { + if (typeof this.exported === "undefined") { // undefined matcher means anything matches } else if ( - !this.exported.matchValue(node.exported, [...keys, 'exported']) + !this.exported.matchValue(node.exported, [...keys, "exported"]) ) { - return false + return false; } - return true + return true; } } export function exportDefaultSpecifier( - exported?: Matcher + exported?: Matcher, ): Matcher { - return new ExportDefaultSpecifierMatcher(exported) + return new ExportDefaultSpecifierMatcher(exported); } export class ExportNamedDeclarationMatcher extends Matcher { @@ -3273,65 +3273,61 @@ export class ExportNamedDeclarationMatcher extends Matcher | Matcher >, - private readonly source?: Matcher | null + private readonly source?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportNamedDeclaration { if (!t.isNode(node) || !t.isExportNamedDeclaration(node)) { - return false + return false; } - if (typeof this.declaration === 'undefined') { + if (typeof this.declaration === "undefined") { // undefined matcher means anything matches } else if (this.declaration === null) { // null matcher means we expect null value if (node.declaration !== null) { - return false + return false; } - } else if (node.declaration === null) { - return false } else if ( - !this.declaration.matchValue(node.declaration, [...keys, 'declaration']) + !this.declaration.matchValue(node.declaration, [...keys, "declaration"]) ) { - return false + return false; } - if (typeof this.specifiers === 'undefined') { + if (typeof this.specifiers === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.specifiers)) { if ( !tupleOf(...this.specifiers).matchValue(node.specifiers, [ ...keys, - 'specifiers', + "specifiers", ]) ) { - return false + return false; } } else if ( - !this.specifiers.matchValue(node.specifiers, [...keys, 'specifiers']) + !this.specifiers.matchValue(node.specifiers, [...keys, "specifiers"]) ) { - return false + return false; } - if (typeof this.source === 'undefined') { + if (typeof this.source === "undefined") { // undefined matcher means anything matches } else if (this.source === null) { // null matcher means we expect null value if (node.source !== null) { - return false + return false; } - } else if (node.source === null) { - return false - } else if (!this.source.matchValue(node.source, [...keys, 'source'])) { - return false + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; } - return true + return true; } } @@ -3350,112 +3346,112 @@ export function exportNamedDeclaration( | Matcher | Matcher >, - source?: Matcher | null + source?: Matcher | null, ): Matcher { - return new ExportNamedDeclarationMatcher(declaration, specifiers, source) + return new ExportNamedDeclarationMatcher(declaration, specifiers, source); } export class ExportNamespaceSpecifierMatcher extends Matcher { constructor(private readonly exported?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportNamespaceSpecifier { if (!t.isNode(node) || !t.isExportNamespaceSpecifier(node)) { - return false + return false; } - if (typeof this.exported === 'undefined') { + if (typeof this.exported === "undefined") { // undefined matcher means anything matches } else if ( - !this.exported.matchValue(node.exported, [...keys, 'exported']) + !this.exported.matchValue(node.exported, [...keys, "exported"]) ) { - return false + return false; } - return true + return true; } } export function exportNamespaceSpecifier( - exported?: Matcher + exported?: Matcher, ): Matcher { - return new ExportNamespaceSpecifierMatcher(exported) + return new ExportNamespaceSpecifierMatcher(exported); } export class ExportSpecifierMatcher extends Matcher { constructor( private readonly local?: Matcher, - private readonly exported?: Matcher + private readonly exported?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExportSpecifier { if (!t.isNode(node) || !t.isExportSpecifier(node)) { - return false + return false; } - if (typeof this.local === 'undefined') { + if (typeof this.local === "undefined") { // undefined matcher means anything matches - } else if (!this.local.matchValue(node.local, [...keys, 'local'])) { - return false + } else if (!this.local.matchValue(node.local, [...keys, "local"])) { + return false; } - if (typeof this.exported === 'undefined') { + if (typeof this.exported === "undefined") { // undefined matcher means anything matches } else if ( - !this.exported.matchValue(node.exported, [...keys, 'exported']) + !this.exported.matchValue(node.exported, [...keys, "exported"]) ) { - return false + return false; } - return true + return true; } } export function exportSpecifier( local?: Matcher, - exported?: Matcher + exported?: Matcher, ): Matcher { - return new ExportSpecifierMatcher(local, exported) + return new ExportSpecifierMatcher(local, exported); } export class ExpressionStatementMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ExpressionStatement { if (!t.isNode(node) || !t.isExpressionStatement(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function expressionStatement( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new ExpressionStatementMatcher(expression) + return new ExpressionStatementMatcher(expression); } export class FileMatcher extends Matcher { @@ -3464,107 +3460,103 @@ export class FileMatcher extends Matcher { private readonly comments?: Matcher< Array > | null, - private readonly tokens?: Matcher> | null + private readonly tokens?: Matcher> | null, ) { - super() + super(); } matchValue(node: unknown, keys: ReadonlyArray): node is t.File { if (!t.isNode(node) || !t.isFile(node)) { - return false + return false; } - if (typeof this.program === 'undefined') { + if (typeof this.program === "undefined") { // undefined matcher means anything matches - } else if (!this.program.matchValue(node.program, [...keys, 'program'])) { - return false + } else if (!this.program.matchValue(node.program, [...keys, "program"])) { + return false; } - if (typeof this.comments === 'undefined') { + if (typeof this.comments === "undefined") { // undefined matcher means anything matches } else if (this.comments === null) { // null matcher means we expect null value if (node.comments !== null) { - return false + return false; } - } else if (node.comments === null) { - return false } else if ( - !this.comments.matchValue(node.comments, [...keys, 'comments']) + !this.comments.matchValue(node.comments, [...keys, "comments"]) ) { - return false + return false; } - if (typeof this.tokens === 'undefined') { + if (typeof this.tokens === "undefined") { // undefined matcher means anything matches } else if (this.tokens === null) { // null matcher means we expect null value if (node.tokens !== null) { - return false + return false; } - } else if (node.tokens === null) { - return false - } else if (!this.tokens.matchValue(node.tokens, [...keys, 'tokens'])) { - return false + } else if (!this.tokens.matchValue(node.tokens, [...keys, "tokens"])) { + return false; } - return true + return true; } } export function file( program?: Matcher, comments?: Matcher> | null, - tokens?: Matcher> | null + tokens?: Matcher> | null, ): Matcher { - return new FileMatcher(program, comments, tokens) + return new FileMatcher(program, comments, tokens); } export class ForInStatementMatcher extends Matcher { constructor( private readonly left?: Matcher, private readonly right?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ForInStatement { if (!t.isNode(node) || !t.isForInStatement(node)) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function forInStatement( left?: Matcher, right?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new ForInStatementMatcher(left, right, body) + return new ForInStatementMatcher(left, right, body); } export class ForOfStatementMatcher extends Matcher { @@ -3572,48 +3564,48 @@ export class ForOfStatementMatcher extends Matcher { private readonly left?: Matcher, private readonly right?: Matcher, private readonly body?: Matcher, - private readonly _await?: Matcher | boolean + private readonly _await?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ForOfStatement { if (!t.isNode(node) || !t.isForOfStatement(node)) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this._await === 'undefined') { + if (typeof this._await === "undefined") { // undefined matcher means anything matches - } else if (typeof this._await === 'boolean') { + } else if (typeof this._await === "boolean") { if (this._await !== node.await) { - return false + return false; } - } else if (!this._await.matchValue(node.await, [...keys, 'await'])) { - return false + } else if (!this._await.matchValue(node.await, [...keys, "await"])) { + return false; } - return true + return true; } } @@ -3621,9 +3613,9 @@ export function forOfStatement( left?: Matcher, right?: Matcher, body?: Matcher, - _await?: Matcher | boolean + _await?: Matcher | boolean, ): Matcher { - return new ForOfStatementMatcher(left, right, body, _await) + return new ForOfStatementMatcher(left, right, body, _await); } export class ForStatementMatcher extends Matcher { @@ -3633,65 +3625,59 @@ export class ForStatementMatcher extends Matcher { > | null, private readonly test?: Matcher | null, private readonly update?: Matcher | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ForStatement { if (!t.isNode(node) || !t.isForStatement(node)) { - return false + return false; } - if (typeof this.init === 'undefined') { + if (typeof this.init === "undefined") { // undefined matcher means anything matches } else if (this.init === null) { // null matcher means we expect null value if (node.init !== null) { - return false + return false; } - } else if (node.init === null) { - return false - } else if (!this.init.matchValue(node.init, [...keys, 'init'])) { - return false + } else if (!this.init.matchValue(node.init, [...keys, "init"])) { + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches } else if (this.test === null) { // null matcher means we expect null value if (node.test !== null) { - return false + return false; } - } else if (node.test === null) { - return false - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.update === 'undefined') { + if (typeof this.update === "undefined") { // undefined matcher means anything matches } else if (this.update === null) { // null matcher means we expect null value if (node.update !== null) { - return false + return false; } - } else if (node.update === null) { - return false - } else if (!this.update.matchValue(node.update, [...keys, 'update'])) { - return false + } else if (!this.update.matchValue(node.update, [...keys, "update"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -3699,9 +3685,9 @@ export function forStatement( init?: Matcher | null, test?: Matcher | null, update?: Matcher | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new ForStatementMatcher(init, test, update, body) + return new ForStatementMatcher(init, test, update, body); } export class FunctionDeclarationMatcher extends Matcher { @@ -3714,76 +3700,74 @@ export class FunctionDeclarationMatcher extends Matcher { >, private readonly body?: Matcher, private readonly generator?: Matcher | boolean, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.FunctionDeclaration { if (!t.isNode(node) || !t.isFunctionDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches } else if (this.id === null) { // null matcher means we expect null value if (node.id !== null) { - return false + return false; } - } else if (node.id === null) { - return false - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.generator === 'undefined') { + if (typeof this.generator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.generator === 'boolean') { + } else if (typeof this.generator === "boolean") { if (this.generator !== node.generator) { - return false + return false; } } else if ( - !this.generator.matchValue(node.generator, [...keys, 'generator']) + !this.generator.matchValue(node.generator, [...keys, "generator"]) ) { - return false + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } @@ -3796,9 +3780,9 @@ export function functionDeclaration( >, body?: Matcher, generator?: Matcher | boolean, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { - return new FunctionDeclarationMatcher(id, params, body, generator, async) + return new FunctionDeclarationMatcher(id, params, body, generator, async); } export class FunctionExpressionMatcher extends Matcher { @@ -3811,76 +3795,74 @@ export class FunctionExpressionMatcher extends Matcher { >, private readonly body?: Matcher, private readonly generator?: Matcher | boolean, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.FunctionExpression { if (!t.isNode(node) || !t.isFunctionExpression(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches } else if (this.id === null) { // null matcher means we expect null value if (node.id !== null) { - return false + return false; } - } else if (node.id === null) { - return false - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.generator === 'undefined') { + if (typeof this.generator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.generator === 'boolean') { + } else if (typeof this.generator === "boolean") { if (this.generator !== node.generator) { - return false + return false; } } else if ( - !this.generator.matchValue(node.generator, [...keys, 'generator']) + !this.generator.matchValue(node.generator, [...keys, "generator"]) ) { - return false + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } @@ -3893,9 +3875,9 @@ export function functionExpression( >, body?: Matcher, generator?: Matcher | boolean, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { - return new FunctionExpressionMatcher(id, params, body, generator, async) + return new FunctionExpressionMatcher(id, params, body, generator, async); } export class FunctionTypeAnnotationMatcher extends Matcher { @@ -3905,74 +3887,70 @@ export class FunctionTypeAnnotationMatcher extends Matcher> | Array>, private readonly rest?: Matcher | null, - private readonly returnType?: Matcher + private readonly returnType?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.FunctionTypeAnnotation { if (!t.isNode(node) || !t.isFunctionTypeAnnotation(node)) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.rest === 'undefined') { + if (typeof this.rest === "undefined") { // undefined matcher means anything matches } else if (this.rest === null) { // null matcher means we expect null value if (node.rest !== null) { - return false + return false; } - } else if (node.rest === null) { - return false - } else if (!this.rest.matchValue(node.rest, [...keys, 'rest'])) { - return false + } else if (!this.rest.matchValue(node.rest, [...keys, "rest"])) { + return false; } - if (typeof this.returnType === 'undefined') { + if (typeof this.returnType === "undefined") { // undefined matcher means anything matches } else if ( - !this.returnType.matchValue(node.returnType, [...keys, 'returnType']) + !this.returnType.matchValue(node.returnType, [...keys, "returnType"]) ) { - return false + return false; } - return true + return true; } } @@ -3982,267 +3960,261 @@ export function functionTypeAnnotation( | Matcher> | Array>, rest?: Matcher | null, - returnType?: Matcher + returnType?: Matcher, ): Matcher { return new FunctionTypeAnnotationMatcher( typeParameters, params, rest, - returnType - ) + returnType, + ); } export class FunctionTypeParamMatcher extends Matcher { constructor( private readonly name?: Matcher | null, - private readonly typeAnnotation?: Matcher + private readonly typeAnnotation?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.FunctionTypeParam { if (!t.isNode(node) || !t.isFunctionTypeParam(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches } else if (this.name === null) { // null matcher means we expect null value if (node.name !== null) { - return false + return false; } - } else if (node.name === null) { - return false - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function functionTypeParam( name?: Matcher | null, - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new FunctionTypeParamMatcher(name, typeAnnotation) + return new FunctionTypeParamMatcher(name, typeAnnotation); } export class GenericTypeAnnotationMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.GenericTypeAnnotation { if (!t.isNode(node) || !t.isGenericTypeAnnotation(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function genericTypeAnnotation( id?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new GenericTypeAnnotationMatcher(id, typeParameters) + return new GenericTypeAnnotationMatcher(id, typeParameters); } export class IdentifierMatcher extends Matcher { constructor(private readonly name?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Identifier { if (!t.isNode(node) || !t.isIdentifier(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (typeof this.name === 'string') { + } else if (typeof this.name === "string") { if (this.name !== node.name) { - return false + return false; } - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function identifier( - name?: Matcher | string + name?: Matcher | string, ): Matcher { - return new IdentifierMatcher(name) + return new IdentifierMatcher(name); } export class IfStatementMatcher extends Matcher { constructor( private readonly test?: Matcher, private readonly consequent?: Matcher, - private readonly alternate?: Matcher | null + private readonly alternate?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.IfStatement { if (!t.isNode(node) || !t.isIfStatement(node)) { - return false + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.consequent === 'undefined') { + if (typeof this.consequent === "undefined") { // undefined matcher means anything matches } else if ( - !this.consequent.matchValue(node.consequent, [...keys, 'consequent']) + !this.consequent.matchValue(node.consequent, [...keys, "consequent"]) ) { - return false + return false; } - if (typeof this.alternate === 'undefined') { + if (typeof this.alternate === "undefined") { // undefined matcher means anything matches } else if (this.alternate === null) { // null matcher means we expect null value if (node.alternate !== null) { - return false + return false; } - } else if (node.alternate === null) { - return false } else if ( - !this.alternate.matchValue(node.alternate, [...keys, 'alternate']) + !this.alternate.matchValue(node.alternate, [...keys, "alternate"]) ) { - return false + return false; } - return true + return true; } } export function ifStatement( test?: Matcher, consequent?: Matcher, - alternate?: Matcher | null + alternate?: Matcher | null, ): Matcher { - return new IfStatementMatcher(test, consequent, alternate) + return new IfStatementMatcher(test, consequent, alternate); } export class ImportMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Import { if (!t.isNode(node) || !t.isImport(node)) { - return false + return false; } - return true + return true; } } export function Import(): Matcher { - return new ImportMatcher() + return new ImportMatcher(); } export class ImportAttributeMatcher extends Matcher { constructor( private readonly key?: Matcher, - private readonly value?: Matcher + private readonly value?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ImportAttribute { if (!t.isNode(node) || !t.isImportAttribute(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function importAttribute( key?: Matcher, - value?: Matcher + value?: Matcher, ): Matcher { - return new ImportAttributeMatcher(key, value) + return new ImportAttributeMatcher(key, value); } export class ImportDeclarationMatcher extends Matcher { @@ -4260,43 +4232,43 @@ export class ImportDeclarationMatcher extends Matcher { | Matcher | Matcher >, - private readonly source?: Matcher + private readonly source?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ImportDeclaration { if (!t.isNode(node) || !t.isImportDeclaration(node)) { - return false + return false; } - if (typeof this.specifiers === 'undefined') { + if (typeof this.specifiers === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.specifiers)) { if ( !tupleOf(...this.specifiers).matchValue(node.specifiers, [ ...keys, - 'specifiers', + "specifiers", ]) ) { - return false + return false; } } else if ( - !this.specifiers.matchValue(node.specifiers, [...keys, 'specifiers']) + !this.specifiers.matchValue(node.specifiers, [...keys, "specifiers"]) ) { - return false + return false; } - if (typeof this.source === 'undefined') { + if (typeof this.source === "undefined") { // undefined matcher means anything matches - } else if (!this.source.matchValue(node.source, [...keys, 'source'])) { - return false + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; } - return true + return true; } } @@ -4314,172 +4286,216 @@ export function importDeclaration( | Matcher | Matcher >, - source?: Matcher + source?: Matcher, ): Matcher { - return new ImportDeclarationMatcher(specifiers, source) + return new ImportDeclarationMatcher(specifiers, source); } export class ImportDefaultSpecifierMatcher extends Matcher { constructor(private readonly local?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ImportDefaultSpecifier { if (!t.isNode(node) || !t.isImportDefaultSpecifier(node)) { - return false + return false; } - if (typeof this.local === 'undefined') { + if (typeof this.local === "undefined") { // undefined matcher means anything matches - } else if (!this.local.matchValue(node.local, [...keys, 'local'])) { - return false + } else if (!this.local.matchValue(node.local, [...keys, "local"])) { + return false; } - return true + return true; } } export function importDefaultSpecifier( - local?: Matcher + local?: Matcher, ): Matcher { - return new ImportDefaultSpecifierMatcher(local) + return new ImportDefaultSpecifierMatcher(local); +} + +export class ImportExpressionMatcher extends Matcher { + constructor( + private readonly source?: Matcher, + private readonly options?: Matcher | null, + ) { + super(); + } + + matchValue( + node: unknown, + keys: ReadonlyArray, + ): node is t.ImportExpression { + if (!t.isNode(node) || !t.isImportExpression(node)) { + return false; + } + + if (typeof this.source === "undefined") { + // undefined matcher means anything matches + } else if (!this.source.matchValue(node.source, [...keys, "source"])) { + return false; + } + + if (typeof this.options === "undefined") { + // undefined matcher means anything matches + } else if (this.options === null) { + // null matcher means we expect null value + if (node.options !== null) { + return false; + } + } else if (!this.options.matchValue(node.options, [...keys, "options"])) { + return false; + } + + return true; + } +} + +export function importExpression( + source?: Matcher, + options?: Matcher | null, +): Matcher { + return new ImportExpressionMatcher(source, options); } export class ImportNamespaceSpecifierMatcher extends Matcher { constructor(private readonly local?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ImportNamespaceSpecifier { if (!t.isNode(node) || !t.isImportNamespaceSpecifier(node)) { - return false + return false; } - if (typeof this.local === 'undefined') { + if (typeof this.local === "undefined") { // undefined matcher means anything matches - } else if (!this.local.matchValue(node.local, [...keys, 'local'])) { - return false + } else if (!this.local.matchValue(node.local, [...keys, "local"])) { + return false; } - return true + return true; } } export function importNamespaceSpecifier( - local?: Matcher + local?: Matcher, ): Matcher { - return new ImportNamespaceSpecifierMatcher(local) + return new ImportNamespaceSpecifierMatcher(local); } export class ImportSpecifierMatcher extends Matcher { constructor( private readonly local?: Matcher, - private readonly imported?: Matcher + private readonly imported?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ImportSpecifier { if (!t.isNode(node) || !t.isImportSpecifier(node)) { - return false + return false; } - if (typeof this.local === 'undefined') { + if (typeof this.local === "undefined") { // undefined matcher means anything matches - } else if (!this.local.matchValue(node.local, [...keys, 'local'])) { - return false + } else if (!this.local.matchValue(node.local, [...keys, "local"])) { + return false; } - if (typeof this.imported === 'undefined') { + if (typeof this.imported === "undefined") { // undefined matcher means anything matches } else if ( - !this.imported.matchValue(node.imported, [...keys, 'imported']) + !this.imported.matchValue(node.imported, [...keys, "imported"]) ) { - return false + return false; } - return true + return true; } } export function importSpecifier( local?: Matcher, - imported?: Matcher + imported?: Matcher, ): Matcher { - return new ImportSpecifierMatcher(local, imported) + return new ImportSpecifierMatcher(local, imported); } export class IndexedAccessTypeMatcher extends Matcher { constructor( private readonly objectType?: Matcher, - private readonly indexType?: Matcher + private readonly indexType?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.IndexedAccessType { if (!t.isNode(node) || !t.isIndexedAccessType(node)) { - return false + return false; } - if (typeof this.objectType === 'undefined') { + if (typeof this.objectType === "undefined") { // undefined matcher means anything matches } else if ( - !this.objectType.matchValue(node.objectType, [...keys, 'objectType']) + !this.objectType.matchValue(node.objectType, [...keys, "objectType"]) ) { - return false + return false; } - if (typeof this.indexType === 'undefined') { + if (typeof this.indexType === "undefined") { // undefined matcher means anything matches } else if ( - !this.indexType.matchValue(node.indexType, [...keys, 'indexType']) + !this.indexType.matchValue(node.indexType, [...keys, "indexType"]) ) { - return false + return false; } - return true + return true; } } export function indexedAccessType( objectType?: Matcher, - indexType?: Matcher + indexType?: Matcher, ): Matcher { - return new IndexedAccessTypeMatcher(objectType, indexType) + return new IndexedAccessTypeMatcher(objectType, indexType); } export class InferredPredicateMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.InferredPredicate { if (!t.isNode(node) || !t.isInferredPredicate(node)) { - return false + return false; } - return true + return true; } } export function inferredPredicate(): Matcher { - return new InferredPredicateMatcher() + return new InferredPredicateMatcher(); } export class InterfaceDeclarationMatcher extends Matcher { @@ -4490,72 +4506,68 @@ export class InterfaceDeclarationMatcher extends Matcher | Matcher> | Array> | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.InterfaceDeclaration { if (!t.isNode(node) || !t.isInterfaceDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this._extends === 'undefined') { + if (typeof this._extends === "undefined") { // undefined matcher means anything matches } else if (this._extends === null) { // null matcher means we expect null value if (node.extends !== null) { - return false + return false; } - } else if (node.extends === null) { - return false } else if (Array.isArray(this._extends)) { if ( !tupleOf(...this._extends).matchValue(node.extends, [ ...keys, - 'extends', + "extends", ]) ) { - return false + return false; } - } else if (!this._extends.matchValue(node.extends, [...keys, 'extends'])) { - return false + } else if (!this._extends.matchValue(node.extends, [...keys, "extends"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -4566,60 +4578,58 @@ export function interfaceDeclaration( | Matcher> | Array> | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new InterfaceDeclarationMatcher(id, typeParameters, _extends, body) + return new InterfaceDeclarationMatcher(id, typeParameters, _extends, body); } export class InterfaceExtendsMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.InterfaceExtends { if (!t.isNode(node) || !t.isInterfaceExtends(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function interfaceExtends( id?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new InterfaceExtendsMatcher(id, typeParameters) + return new InterfaceExtendsMatcher(id, typeParameters); } export class InterfaceTypeAnnotationMatcher extends Matcher { @@ -4628,48 +4638,46 @@ export class InterfaceTypeAnnotationMatcher extends Matcher> | Array> | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.InterfaceTypeAnnotation { if (!t.isNode(node) || !t.isInterfaceTypeAnnotation(node)) { - return false + return false; } - if (typeof this._extends === 'undefined') { + if (typeof this._extends === "undefined") { // undefined matcher means anything matches } else if (this._extends === null) { // null matcher means we expect null value if (node.extends !== null) { - return false + return false; } - } else if (node.extends === null) { - return false } else if (Array.isArray(this._extends)) { if ( !tupleOf(...this._extends).matchValue(node.extends, [ ...keys, - 'extends', + "extends", ]) ) { - return false + return false; } - } else if (!this._extends.matchValue(node.extends, [...keys, 'extends'])) { - return false + } else if (!this._extends.matchValue(node.extends, [...keys, "extends"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -4678,84 +4686,84 @@ export function interfaceTypeAnnotation( | Matcher> | Array> | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new InterfaceTypeAnnotationMatcher(_extends, body) + return new InterfaceTypeAnnotationMatcher(_extends, body); } export class InterpreterDirectiveMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.InterpreterDirective { if (!t.isNode(node) || !t.isInterpreterDirective(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function interpreterDirective( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new InterpreterDirectiveMatcher(value) + return new InterpreterDirectiveMatcher(value); } export class IntersectionTypeAnnotationMatcher extends Matcher { constructor( private readonly types?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.IntersectionTypeAnnotation { if (!t.isNode(node) || !t.isIntersectionTypeAnnotation(node)) { - return false + return false; } - if (typeof this.types === 'undefined') { + if (typeof this.types === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.types)) { if ( !tupleOf(...this.types).matchValue(node.types, [ ...keys, - 'types', + "types", ]) ) { - return false + return false; } - } else if (!this.types.matchValue(node.types, [...keys, 'types'])) { - return false + } else if (!this.types.matchValue(node.types, [...keys, "types"])) { + return false; } - return true + return true; } } export function intersectionTypeAnnotation( - types?: Matcher> | Array> + types?: Matcher> | Array>, ): Matcher { - return new IntersectionTypeAnnotationMatcher(types) + return new IntersectionTypeAnnotationMatcher(types); } export class JSXAttributeMatcher extends Matcher { @@ -4763,39 +4771,37 @@ export class JSXAttributeMatcher extends Matcher { private readonly name?: Matcher, private readonly value?: Matcher< t.JSXElement | t.JSXFragment | t.StringLiteral | t.JSXExpressionContainer - > | null + > | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXAttribute { if (!t.isNode(node) || !t.isJSXAttribute(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches } else if (this.value === null) { // null matcher means we expect null value if (node.value !== null) { - return false + return false; } - } else if (node.value === null) { - return false - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } @@ -4803,63 +4809,63 @@ export function jsxAttribute( name?: Matcher, value?: Matcher< t.JSXElement | t.JSXFragment | t.StringLiteral | t.JSXExpressionContainer - > | null + > | null, ): Matcher { - return new JSXAttributeMatcher(name, value) + return new JSXAttributeMatcher(name, value); } export class JSXClosingElementMatcher extends Matcher { constructor( private readonly name?: Matcher< t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXClosingElement { if (!t.isNode(node) || !t.isJSXClosingElement(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function jsxClosingElement( - name?: Matcher + name?: Matcher, ): Matcher { - return new JSXClosingElementMatcher(name) + return new JSXClosingElementMatcher(name); } export class JSXClosingFragmentMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXClosingFragment { if (!t.isNode(node) || !t.isJSXClosingFragment(node)) { - return false + return false; } - return true + return true; } } export function jsxClosingFragment(): Matcher { - return new JSXClosingFragmentMatcher() + return new JSXClosingFragmentMatcher(); } export class JSXElementMatcher extends Matcher { @@ -4883,85 +4889,81 @@ export class JSXElementMatcher extends Matcher { | Matcher | Matcher >, - private readonly selfClosing?: Matcher | boolean | null + private readonly selfClosing?: Matcher | boolean | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXElement { if (!t.isNode(node) || !t.isJSXElement(node)) { - return false + return false; } - if (typeof this.openingElement === 'undefined') { + if (typeof this.openingElement === "undefined") { // undefined matcher means anything matches } else if ( !this.openingElement.matchValue(node.openingElement, [ ...keys, - 'openingElement', + "openingElement", ]) ) { - return false + return false; } - if (typeof this.closingElement === 'undefined') { + if (typeof this.closingElement === "undefined") { // undefined matcher means anything matches } else if (this.closingElement === null) { // null matcher means we expect null value if (node.closingElement !== null) { - return false + return false; } - } else if (node.closingElement === null) { - return false } else if ( !this.closingElement.matchValue(node.closingElement, [ ...keys, - 'closingElement', + "closingElement", ]) ) { - return false + return false; } - if (typeof this.children === 'undefined') { + if (typeof this.children === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.children)) { if ( !tupleOf(...this.children).matchValue(node.children, [ ...keys, - 'children', + "children", ]) ) { - return false + return false; } } else if ( - !this.children.matchValue(node.children, [...keys, 'children']) + !this.children.matchValue(node.children, [...keys, "children"]) ) { - return false + return false; } - if (typeof this.selfClosing === 'undefined') { + if (typeof this.selfClosing === "undefined") { // undefined matcher means anything matches - } else if (typeof this.selfClosing === 'boolean') { + } else if (typeof this.selfClosing === "boolean") { if (this.selfClosing !== node.selfClosing) { - return false + return false; } } else if (this.selfClosing === null) { // null matcher means we expect null value if (node.selfClosing !== null) { - return false + return false; } - } else if (node.selfClosing === null) { - return false } else if ( - !this.selfClosing.matchValue(node.selfClosing, [...keys, 'selfClosing']) + !this.selfClosing.matchValue(node.selfClosing, [...keys, "selfClosing"]) ) { - return false + return false; } - return true + return true; } } @@ -4985,68 +4987,68 @@ export function jsxElement( | Matcher | Matcher >, - selfClosing?: Matcher | boolean | null + selfClosing?: Matcher | boolean | null, ): Matcher { return new JSXElementMatcher( openingElement, closingElement, children, - selfClosing - ) + selfClosing, + ); } export class JSXEmptyExpressionMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXEmptyExpression { if (!t.isNode(node) || !t.isJSXEmptyExpression(node)) { - return false + return false; } - return true + return true; } } export function jsxEmptyExpression(): Matcher { - return new JSXEmptyExpressionMatcher() + return new JSXEmptyExpressionMatcher(); } export class JSXExpressionContainerMatcher extends Matcher { constructor( - private readonly expression?: Matcher + private readonly expression?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXExpressionContainer { if (!t.isNode(node) || !t.isJSXExpressionContainer(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function jsxExpressionContainer( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new JSXExpressionContainerMatcher(expression) + return new JSXExpressionContainerMatcher(expression); } export class JSXFragmentMatcher extends Matcher { @@ -5069,59 +5071,59 @@ export class JSXFragmentMatcher extends Matcher { | Matcher | Matcher | Matcher - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXFragment { if (!t.isNode(node) || !t.isJSXFragment(node)) { - return false + return false; } - if (typeof this.openingFragment === 'undefined') { + if (typeof this.openingFragment === "undefined") { // undefined matcher means anything matches } else if ( !this.openingFragment.matchValue(node.openingFragment, [ ...keys, - 'openingFragment', + "openingFragment", ]) ) { - return false + return false; } - if (typeof this.closingFragment === 'undefined') { + if (typeof this.closingFragment === "undefined") { // undefined matcher means anything matches } else if ( !this.closingFragment.matchValue(node.closingFragment, [ ...keys, - 'closingFragment', + "closingFragment", ]) ) { - return false + return false; } - if (typeof this.children === 'undefined') { + if (typeof this.children === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.children)) { if ( !tupleOf(...this.children).matchValue(node.children, [ ...keys, - 'children', + "children", ]) ) { - return false + return false; } } else if ( - !this.children.matchValue(node.children, [...keys, 'children']) + !this.children.matchValue(node.children, [...keys, "children"]) ) { - return false + return false; } - return true + return true; } } @@ -5144,124 +5146,124 @@ export function jsxFragment( | Matcher | Matcher | Matcher - > + >, ): Matcher { - return new JSXFragmentMatcher(openingFragment, closingFragment, children) + return new JSXFragmentMatcher(openingFragment, closingFragment, children); } export class JSXIdentifierMatcher extends Matcher { constructor(private readonly name?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXIdentifier { if (!t.isNode(node) || !t.isJSXIdentifier(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (typeof this.name === 'string') { + } else if (typeof this.name === "string") { if (this.name !== node.name) { - return false + return false; } - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function jsxIdentifier( - name?: Matcher | string + name?: Matcher | string, ): Matcher { - return new JSXIdentifierMatcher(name) + return new JSXIdentifierMatcher(name); } export class JSXMemberExpressionMatcher extends Matcher { constructor( private readonly object?: Matcher, - private readonly property?: Matcher + private readonly property?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXMemberExpression { if (!t.isNode(node) || !t.isJSXMemberExpression(node)) { - return false + return false; } - if (typeof this.object === 'undefined') { + if (typeof this.object === "undefined") { // undefined matcher means anything matches - } else if (!this.object.matchValue(node.object, [...keys, 'object'])) { - return false + } else if (!this.object.matchValue(node.object, [...keys, "object"])) { + return false; } - if (typeof this.property === 'undefined') { + if (typeof this.property === "undefined") { // undefined matcher means anything matches } else if ( - !this.property.matchValue(node.property, [...keys, 'property']) + !this.property.matchValue(node.property, [...keys, "property"]) ) { - return false + return false; } - return true + return true; } } export function jsxMemberExpression( object?: Matcher, - property?: Matcher + property?: Matcher, ): Matcher { - return new JSXMemberExpressionMatcher(object, property) + return new JSXMemberExpressionMatcher(object, property); } export class JSXNamespacedNameMatcher extends Matcher { constructor( private readonly namespace?: Matcher, - private readonly name?: Matcher + private readonly name?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXNamespacedName { if (!t.isNode(node) || !t.isJSXNamespacedName(node)) { - return false + return false; } - if (typeof this.namespace === 'undefined') { + if (typeof this.namespace === "undefined") { // undefined matcher means anything matches } else if ( - !this.namespace.matchValue(node.namespace, [...keys, 'namespace']) + !this.namespace.matchValue(node.namespace, [...keys, "namespace"]) ) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function jsxNamespacedName( namespace?: Matcher, - name?: Matcher + name?: Matcher, ): Matcher { - return new JSXNamespacedNameMatcher(namespace, name) + return new JSXNamespacedNameMatcher(namespace, name); } export class JSXOpeningElementMatcher extends Matcher { @@ -5272,55 +5274,55 @@ export class JSXOpeningElementMatcher extends Matcher { private readonly attributes?: | Matcher> | Array | Matcher>, - private readonly selfClosing?: Matcher | boolean + private readonly selfClosing?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXOpeningElement { if (!t.isNode(node) || !t.isJSXOpeningElement(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - if (typeof this.attributes === 'undefined') { + if (typeof this.attributes === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.attributes)) { if ( !tupleOf(...this.attributes).matchValue(node.attributes, [ ...keys, - 'attributes', + "attributes", ]) ) { - return false + return false; } } else if ( - !this.attributes.matchValue(node.attributes, [...keys, 'attributes']) + !this.attributes.matchValue(node.attributes, [...keys, "attributes"]) ) { - return false + return false; } - if (typeof this.selfClosing === 'undefined') { + if (typeof this.selfClosing === "undefined") { // undefined matcher means anything matches - } else if (typeof this.selfClosing === 'boolean') { + } else if (typeof this.selfClosing === "boolean") { if (this.selfClosing !== node.selfClosing) { - return false + return false; } } else if ( - !this.selfClosing.matchValue(node.selfClosing, [...keys, 'selfClosing']) + !this.selfClosing.matchValue(node.selfClosing, [...keys, "selfClosing"]) ) { - return false + return false; } - return true + return true; } } @@ -5329,215 +5331,215 @@ export function jsxOpeningElement( attributes?: | Matcher> | Array | Matcher>, - selfClosing?: Matcher | boolean + selfClosing?: Matcher | boolean, ): Matcher { - return new JSXOpeningElementMatcher(name, attributes, selfClosing) + return new JSXOpeningElementMatcher(name, attributes, selfClosing); } export class JSXOpeningFragmentMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXOpeningFragment { if (!t.isNode(node) || !t.isJSXOpeningFragment(node)) { - return false + return false; } - return true + return true; } } export function jsxOpeningFragment(): Matcher { - return new JSXOpeningFragmentMatcher() + return new JSXOpeningFragmentMatcher(); } export class JSXSpreadAttributeMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXSpreadAttribute { if (!t.isNode(node) || !t.isJSXSpreadAttribute(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function jsxSpreadAttribute( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new JSXSpreadAttributeMatcher(argument) + return new JSXSpreadAttributeMatcher(argument); } export class JSXSpreadChildMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXSpreadChild { if (!t.isNode(node) || !t.isJSXSpreadChild(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function jsxSpreadChild( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new JSXSpreadChildMatcher(expression) + return new JSXSpreadChildMatcher(expression); } export class JSXTextMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.JSXText { if (!t.isNode(node) || !t.isJSXText(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function jsxText(value?: Matcher | string): Matcher { - return new JSXTextMatcher(value) + return new JSXTextMatcher(value); } export class LabeledStatementMatcher extends Matcher { constructor( private readonly label?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.LabeledStatement { if (!t.isNode(node) || !t.isLabeledStatement(node)) { - return false + return false; } - if (typeof this.label === 'undefined') { + if (typeof this.label === "undefined") { // undefined matcher means anything matches - } else if (!this.label.matchValue(node.label, [...keys, 'label'])) { - return false + } else if (!this.label.matchValue(node.label, [...keys, "label"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function labeledStatement( label?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new LabeledStatementMatcher(label, body) + return new LabeledStatementMatcher(label, body); } export class LogicalExpressionMatcher extends Matcher { constructor( - private readonly operator?: Matcher<'||' | '&&' | '??'> | string, + private readonly operator?: Matcher<"||" | "&&" | "??"> | string, private readonly left?: Matcher, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.LogicalExpression { if (!t.isNode(node) || !t.isLogicalExpression(node)) { - return false + return false; } - if (typeof this.operator === 'undefined') { + if (typeof this.operator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.operator === 'string') { + } else if (typeof this.operator === "string") { if (this.operator !== node.operator) { - return false + return false; } } else if ( - !this.operator.matchValue(node.operator, [...keys, 'operator']) + !this.operator.matchValue(node.operator, [...keys, "operator"]) ) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function logicalExpression( - operator?: Matcher<'||' | '&&' | '??'> | string, + operator?: Matcher<"||" | "&&" | "??"> | string, left?: Matcher, - right?: Matcher + right?: Matcher, ): Matcher { - return new LogicalExpressionMatcher(operator, left, right) + return new LogicalExpressionMatcher(operator, left, right); } export class MemberExpressionMatcher extends Matcher { @@ -5547,65 +5549,63 @@ export class MemberExpressionMatcher extends Matcher { t.Expression | t.Identifier | t.PrivateName >, private readonly computed?: Matcher | boolean, - private readonly optional?: Matcher | boolean | null + private readonly optional?: Matcher | boolean | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.MemberExpression { if (!t.isNode(node) || !t.isMemberExpression(node)) { - return false + return false; } - if (typeof this.object === 'undefined') { + if (typeof this.object === "undefined") { // undefined matcher means anything matches - } else if (!this.object.matchValue(node.object, [...keys, 'object'])) { - return false + } else if (!this.object.matchValue(node.object, [...keys, "object"])) { + return false; } - if (typeof this.property === 'undefined') { + if (typeof this.property === "undefined") { // undefined matcher means anything matches } else if ( - !this.property.matchValue(node.property, [...keys, 'property']) + !this.property.matchValue(node.property, [...keys, "property"]) ) { - return false + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this.optional === 'undefined') { + if (typeof this.optional === "undefined") { // undefined matcher means anything matches - } else if (typeof this.optional === 'boolean') { + } else if (typeof this.optional === "boolean") { if (this.optional !== node.optional) { - return false + return false; } } else if (this.optional === null) { // null matcher means we expect null value if (node.optional !== null) { - return false + return false; } - } else if (node.optional === null) { - return false } else if ( - !this.optional.matchValue(node.optional, [...keys, 'optional']) + !this.optional.matchValue(node.optional, [...keys, "optional"]) ) { - return false + return false; } - return true + return true; } } @@ -5613,100 +5613,100 @@ export function memberExpression( object?: Matcher, property?: Matcher, computed?: Matcher | boolean, - optional?: Matcher | boolean | null + optional?: Matcher | boolean | null, ): Matcher { - return new MemberExpressionMatcher(object, property, computed, optional) + return new MemberExpressionMatcher(object, property, computed, optional); } export class MetaPropertyMatcher extends Matcher { constructor( private readonly meta?: Matcher, - private readonly property?: Matcher + private readonly property?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.MetaProperty { if (!t.isNode(node) || !t.isMetaProperty(node)) { - return false + return false; } - if (typeof this.meta === 'undefined') { + if (typeof this.meta === "undefined") { // undefined matcher means anything matches - } else if (!this.meta.matchValue(node.meta, [...keys, 'meta'])) { - return false + } else if (!this.meta.matchValue(node.meta, [...keys, "meta"])) { + return false; } - if (typeof this.property === 'undefined') { + if (typeof this.property === "undefined") { // undefined matcher means anything matches } else if ( - !this.property.matchValue(node.property, [...keys, 'property']) + !this.property.matchValue(node.property, [...keys, "property"]) ) { - return false + return false; } - return true + return true; } } export function metaProperty( meta?: Matcher, - property?: Matcher + property?: Matcher, ): Matcher { - return new MetaPropertyMatcher(meta, property) + return new MetaPropertyMatcher(meta, property); } export class MixedTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.MixedTypeAnnotation { if (!t.isNode(node) || !t.isMixedTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function mixedTypeAnnotation(): Matcher { - return new MixedTypeAnnotationMatcher() + return new MixedTypeAnnotationMatcher(); } export class ModuleExpressionMatcher extends Matcher { constructor(private readonly body?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ModuleExpression { if (!t.isNode(node) || !t.isModuleExpression(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function moduleExpression( - body?: Matcher + body?: Matcher, ): Matcher { - return new ModuleExpressionMatcher(body) + return new ModuleExpressionMatcher(body); } export class NewExpressionMatcher extends Matcher { @@ -5715,259 +5715,243 @@ export class NewExpressionMatcher extends Matcher { t.Expression | t.Super | t.V8IntrinsicIdentifier >, private readonly _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NewExpression { if (!t.isNode(node) || !t.isNewExpression(node)) { - return false + return false; } - if (typeof this.callee === 'undefined') { + if (typeof this.callee === "undefined") { // undefined matcher means anything matches - } else if (!this.callee.matchValue(node.callee, [...keys, 'callee'])) { - return false + } else if (!this.callee.matchValue(node.callee, [...keys, "callee"])) { + return false; } - if (typeof this._arguments === 'undefined') { + if (typeof this._arguments === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this._arguments)) { if ( !tupleOf(...this._arguments).matchValue(node.arguments, [ ...keys, - 'arguments', + "arguments", ]) ) { - return false + return false; } } else if ( - !this._arguments.matchValue(node.arguments, [...keys, 'arguments']) + !this._arguments.matchValue(node.arguments, [...keys, "arguments"]) ) { - return false + return false; } - return true + return true; } } export function newExpression( callee?: Matcher, _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher - > + >, ): Matcher { - return new NewExpressionMatcher(callee, _arguments) + return new NewExpressionMatcher(callee, _arguments); } export class NoopMatcher extends Matcher { constructor() { - super() + super(); } matchValue(node: unknown, keys: ReadonlyArray): node is t.Noop { if (!t.isNode(node) || !t.isNoop(node)) { - return false + return false; } - return true + return true; } } export function noop(): Matcher { - return new NoopMatcher() + return new NoopMatcher(); } export class NullLiteralMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NullLiteral { if (!t.isNode(node) || !t.isNullLiteral(node)) { - return false + return false; } - return true + return true; } } export function nullLiteral(): Matcher { - return new NullLiteralMatcher() + return new NullLiteralMatcher(); } export class NullLiteralTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NullLiteralTypeAnnotation { if (!t.isNode(node) || !t.isNullLiteralTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function nullLiteralTypeAnnotation(): Matcher { - return new NullLiteralTypeAnnotationMatcher() + return new NullLiteralTypeAnnotationMatcher(); } export class NullableTypeAnnotationMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NullableTypeAnnotation { if (!t.isNode(node) || !t.isNullableTypeAnnotation(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function nullableTypeAnnotation( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new NullableTypeAnnotationMatcher(typeAnnotation) + return new NullableTypeAnnotationMatcher(typeAnnotation); } export class NumberLiteralTypeAnnotationMatcher extends Matcher { constructor(private readonly value?: Matcher | number) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NumberLiteralTypeAnnotation { if (!t.isNode(node) || !t.isNumberLiteralTypeAnnotation(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'number') { + } else if (typeof this.value === "number") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function numberLiteralTypeAnnotation( - value?: Matcher | number + value?: Matcher | number, ): Matcher { - return new NumberLiteralTypeAnnotationMatcher(value) + return new NumberLiteralTypeAnnotationMatcher(value); } export class NumberTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NumberTypeAnnotation { if (!t.isNode(node) || !t.isNumberTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function numberTypeAnnotation(): Matcher { - return new NumberTypeAnnotationMatcher() + return new NumberTypeAnnotationMatcher(); } export class NumericLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | number) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.NumericLiteral { if (!t.isNode(node) || !t.isNumericLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'number') { + } else if (typeof this.value === "number") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function numericLiteral( - value?: Matcher | number + value?: Matcher | number, ): Matcher { - return new NumericLiteralMatcher(value) + return new NumericLiteralMatcher(value); } export class ObjectExpressionMatcher extends Matcher { @@ -5978,37 +5962,37 @@ export class ObjectExpressionMatcher extends Matcher { | Matcher | Matcher | Matcher - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectExpression { if (!t.isNode(node) || !t.isObjectExpression(node)) { - return false + return false; } - if (typeof this.properties === 'undefined') { + if (typeof this.properties === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.properties)) { if ( !tupleOf(...this.properties).matchValue(node.properties, [ ...keys, - 'properties', + "properties", ]) ) { - return false + return false; } } else if ( - !this.properties.matchValue(node.properties, [...keys, 'properties']) + !this.properties.matchValue(node.properties, [...keys, "properties"]) ) { - return false + return false; } - return true + return true; } } @@ -6019,14 +6003,14 @@ export function objectExpression( | Matcher | Matcher | Matcher - > + >, ): Matcher { - return new ObjectExpressionMatcher(properties) + return new ObjectExpressionMatcher(properties); } export class ObjectMethodMatcher extends Matcher { constructor( - private readonly kind?: Matcher<'method' | 'get' | 'set'> | string, + private readonly kind?: Matcher<"method" | "get" | "set"> | string, private readonly key?: Matcher< | t.Expression | t.Identifier @@ -6042,96 +6026,96 @@ export class ObjectMethodMatcher extends Matcher { private readonly body?: Matcher, private readonly computed?: Matcher | boolean, private readonly generator?: Matcher | boolean, - private readonly async?: Matcher | boolean + private readonly async?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectMethod { if (!t.isNode(node) || !t.isObjectMethod(node)) { - return false + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this.generator === 'undefined') { + if (typeof this.generator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.generator === 'boolean') { + } else if (typeof this.generator === "boolean") { if (this.generator !== node.generator) { - return false + return false; } } else if ( - !this.generator.matchValue(node.generator, [...keys, 'generator']) + !this.generator.matchValue(node.generator, [...keys, "generator"]) ) { - return false + return false; } - if (typeof this.async === 'undefined') { + if (typeof this.async === "undefined") { // undefined matcher means anything matches - } else if (typeof this.async === 'boolean') { + } else if (typeof this.async === "boolean") { if (this.async !== node.async) { - return false + return false; } - } else if (!this.async.matchValue(node.async, [...keys, 'async'])) { - return false + } else if (!this.async.matchValue(node.async, [...keys, "async"])) { + return false; } - return true + return true; } } export function objectMethod( - kind?: Matcher<'method' | 'get' | 'set'> | string, + kind?: Matcher<"method" | "get" | "set"> | string, key?: Matcher< | t.Expression | t.Identifier @@ -6147,7 +6131,7 @@ export function objectMethod( body?: Matcher, computed?: Matcher | boolean, generator?: Matcher | boolean, - async?: Matcher | boolean + async?: Matcher | boolean, ): Matcher { return new ObjectMethodMatcher( kind, @@ -6156,54 +6140,54 @@ export function objectMethod( body, computed, generator, - async - ) + async, + ); } export class ObjectPatternMatcher extends Matcher { constructor( private readonly properties?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectPattern { if (!t.isNode(node) || !t.isObjectPattern(node)) { - return false + return false; } - if (typeof this.properties === 'undefined') { + if (typeof this.properties === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.properties)) { if ( !tupleOf(...this.properties).matchValue(node.properties, [ ...keys, - 'properties', + "properties", ]) ) { - return false + return false; } } else if ( - !this.properties.matchValue(node.properties, [...keys, 'properties']) + !this.properties.matchValue(node.properties, [...keys, "properties"]) ) { - return false + return false; } - return true + return true; } } export function objectPattern( properties?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new ObjectPatternMatcher(properties) + return new ObjectPatternMatcher(properties); } export class ObjectPropertyMatcher extends Matcher { @@ -6223,80 +6207,78 @@ export class ObjectPropertyMatcher extends Matcher { private readonly decorators?: | Matcher> | Array> - | null + | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectProperty { if (!t.isNode(node) || !t.isObjectProperty(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this.shorthand === 'undefined') { + if (typeof this.shorthand === "undefined") { // undefined matcher means anything matches - } else if (typeof this.shorthand === 'boolean') { + } else if (typeof this.shorthand === "boolean") { if (this.shorthand !== node.shorthand) { - return false + return false; } } else if ( - !this.shorthand.matchValue(node.shorthand, [...keys, 'shorthand']) + !this.shorthand.matchValue(node.shorthand, [...keys, "shorthand"]) ) { - return false + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - return true + return true; } } @@ -6313,9 +6295,9 @@ export function objectProperty( value?: Matcher, computed?: Matcher | boolean, shorthand?: Matcher | boolean, - decorators?: Matcher> | Array> | null + decorators?: Matcher> | Array> | null, ): Matcher { - return new ObjectPropertyMatcher(key, value, computed, shorthand, decorators) + return new ObjectPropertyMatcher(key, value, computed, shorthand, decorators); } export class ObjectTypeAnnotationMatcher extends Matcher { @@ -6337,125 +6319,119 @@ export class ObjectTypeAnnotationMatcher extends Matcher | Matcher> | Array> | null, - private readonly exact?: Matcher | boolean + private readonly exact?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeAnnotation { if (!t.isNode(node) || !t.isObjectTypeAnnotation(node)) { - return false + return false; } - if (typeof this.properties === 'undefined') { + if (typeof this.properties === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.properties)) { if ( !tupleOf(...this.properties).matchValue(node.properties, [ ...keys, - 'properties', + "properties", ]) ) { - return false + return false; } } else if ( - !this.properties.matchValue(node.properties, [...keys, 'properties']) + !this.properties.matchValue(node.properties, [...keys, "properties"]) ) { - return false + return false; } - if (typeof this.indexers === 'undefined') { + if (typeof this.indexers === "undefined") { // undefined matcher means anything matches } else if (this.indexers === null) { // null matcher means we expect null value if (node.indexers !== null) { - return false + return false; } - } else if (node.indexers === null) { - return false } else if (Array.isArray(this.indexers)) { if ( !tupleOf(...this.indexers).matchValue(node.indexers, [ ...keys, - 'indexers', + "indexers", ]) ) { - return false + return false; } } else if ( - !this.indexers.matchValue(node.indexers, [...keys, 'indexers']) + !this.indexers.matchValue(node.indexers, [...keys, "indexers"]) ) { - return false + return false; } - if (typeof this.callProperties === 'undefined') { + if (typeof this.callProperties === "undefined") { // undefined matcher means anything matches } else if (this.callProperties === null) { // null matcher means we expect null value if (node.callProperties !== null) { - return false + return false; } - } else if (node.callProperties === null) { - return false } else if (Array.isArray(this.callProperties)) { if ( !tupleOf(...this.callProperties).matchValue( node.callProperties, - [...keys, 'callProperties'] + [...keys, "callProperties"], ) ) { - return false + return false; } } else if ( !this.callProperties.matchValue(node.callProperties, [ ...keys, - 'callProperties', + "callProperties", ]) ) { - return false + return false; } - if (typeof this.internalSlots === 'undefined') { + if (typeof this.internalSlots === "undefined") { // undefined matcher means anything matches } else if (this.internalSlots === null) { // null matcher means we expect null value if (node.internalSlots !== null) { - return false + return false; } - } else if (node.internalSlots === null) { - return false } else if (Array.isArray(this.internalSlots)) { if ( !tupleOf(...this.internalSlots).matchValue( node.internalSlots, - [...keys, 'internalSlots'] + [...keys, "internalSlots"], ) ) { - return false + return false; } } else if ( !this.internalSlots.matchValue(node.internalSlots, [ ...keys, - 'internalSlots', + "internalSlots", ]) ) { - return false + return false; } - if (typeof this.exact === 'undefined') { + if (typeof this.exact === "undefined") { // undefined matcher means anything matches - } else if (typeof this.exact === 'boolean') { + } else if (typeof this.exact === "boolean") { if (this.exact !== node.exact) { - return false + return false; } - } else if (!this.exact.matchValue(node.exact, [...keys, 'exact'])) { - return false + } else if (!this.exact.matchValue(node.exact, [...keys, "exact"])) { + return false; } - return true + return true; } } @@ -6477,44 +6453,44 @@ export function objectTypeAnnotation( | Matcher> | Array> | null, - exact?: Matcher | boolean + exact?: Matcher | boolean, ): Matcher { return new ObjectTypeAnnotationMatcher( properties, indexers, callProperties, internalSlots, - exact - ) + exact, + ); } export class ObjectTypeCallPropertyMatcher extends Matcher { constructor(private readonly value?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeCallProperty { if (!t.isNode(node) || !t.isObjectTypeCallProperty(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function objectTypeCallProperty( - value?: Matcher + value?: Matcher, ): Matcher { - return new ObjectTypeCallPropertyMatcher(value) + return new ObjectTypeCallPropertyMatcher(value); } export class ObjectTypeIndexerMatcher extends Matcher { @@ -6522,60 +6498,56 @@ export class ObjectTypeIndexerMatcher extends Matcher { private readonly id?: Matcher | null, private readonly key?: Matcher, private readonly value?: Matcher, - private readonly variance?: Matcher | null + private readonly variance?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeIndexer { if (!t.isNode(node) || !t.isObjectTypeIndexer(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches } else if (this.id === null) { // null matcher means we expect null value if (node.id !== null) { - return false + return false; } - } else if (node.id === null) { - return false - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.variance === 'undefined') { + if (typeof this.variance === "undefined") { // undefined matcher means anything matches } else if (this.variance === null) { // null matcher means we expect null value if (node.variance !== null) { - return false + return false; } - } else if (node.variance === null) { - return false } else if ( - !this.variance.matchValue(node.variance, [...keys, 'variance']) + !this.variance.matchValue(node.variance, [...keys, "variance"]) ) { - return false + return false; } - return true + return true; } } @@ -6583,9 +6555,9 @@ export function objectTypeIndexer( id?: Matcher | null, key?: Matcher, value?: Matcher, - variance?: Matcher | null + variance?: Matcher | null, ): Matcher { - return new ObjectTypeIndexerMatcher(id, key, value, variance) + return new ObjectTypeIndexerMatcher(id, key, value, variance); } export class ObjectTypeInternalSlotMatcher extends Matcher { @@ -6594,64 +6566,64 @@ export class ObjectTypeInternalSlotMatcher extends Matcher, private readonly optional?: Matcher | boolean, private readonly _static?: Matcher | boolean, - private readonly method?: Matcher | boolean + private readonly method?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeInternalSlot { if (!t.isNode(node) || !t.isObjectTypeInternalSlot(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.optional === 'undefined') { + if (typeof this.optional === "undefined") { // undefined matcher means anything matches - } else if (typeof this.optional === 'boolean') { + } else if (typeof this.optional === "boolean") { if (this.optional !== node.optional) { - return false + return false; } } else if ( - !this.optional.matchValue(node.optional, [...keys, 'optional']) + !this.optional.matchValue(node.optional, [...keys, "optional"]) ) { - return false + return false; } - if (typeof this._static === 'undefined') { + if (typeof this._static === "undefined") { // undefined matcher means anything matches - } else if (typeof this._static === 'boolean') { + } else if (typeof this._static === "boolean") { if (this._static !== node.static) { - return false + return false; } - } else if (!this._static.matchValue(node.static, [...keys, 'static'])) { - return false + } else if (!this._static.matchValue(node.static, [...keys, "static"])) { + return false; } - if (typeof this.method === 'undefined') { + if (typeof this.method === "undefined") { // undefined matcher means anything matches - } else if (typeof this.method === 'boolean') { + } else if (typeof this.method === "boolean") { if (this.method !== node.method) { - return false + return false; } - } else if (!this.method.matchValue(node.method, [...keys, 'method'])) { - return false + } else if (!this.method.matchValue(node.method, [...keys, "method"])) { + return false; } - return true + return true; } } @@ -6660,96 +6632,100 @@ export function objectTypeInternalSlot( value?: Matcher, optional?: Matcher | boolean, _static?: Matcher | boolean, - method?: Matcher | boolean + method?: Matcher | boolean, ): Matcher { - return new ObjectTypeInternalSlotMatcher(id, value, optional, _static, method) + return new ObjectTypeInternalSlotMatcher( + id, + value, + optional, + _static, + method, + ); } export class ObjectTypePropertyMatcher extends Matcher { constructor( private readonly key?: Matcher, private readonly value?: Matcher, - private readonly variance?: Matcher | null + private readonly variance?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeProperty { if (!t.isNode(node) || !t.isObjectTypeProperty(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.variance === 'undefined') { + if (typeof this.variance === "undefined") { // undefined matcher means anything matches } else if (this.variance === null) { // null matcher means we expect null value if (node.variance !== null) { - return false + return false; } - } else if (node.variance === null) { - return false } else if ( - !this.variance.matchValue(node.variance, [...keys, 'variance']) + !this.variance.matchValue(node.variance, [...keys, "variance"]) ) { - return false + return false; } - return true + return true; } } export function objectTypeProperty( key?: Matcher, value?: Matcher, - variance?: Matcher | null + variance?: Matcher | null, ): Matcher { - return new ObjectTypePropertyMatcher(key, value, variance) + return new ObjectTypePropertyMatcher(key, value, variance); } export class ObjectTypeSpreadPropertyMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ObjectTypeSpreadProperty { if (!t.isNode(node) || !t.isObjectTypeSpreadProperty(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function objectTypeSpreadProperty( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new ObjectTypeSpreadPropertyMatcher(argument) + return new ObjectTypeSpreadPropertyMatcher(argument); } export class OpaqueTypeMatcher extends Matcher { @@ -6757,67 +6733,63 @@ export class OpaqueTypeMatcher extends Matcher { private readonly id?: Matcher, private readonly typeParameters?: Matcher | null, private readonly supertype?: Matcher | null, - private readonly impltype?: Matcher + private readonly impltype?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.OpaqueType { if (!t.isNode(node) || !t.isOpaqueType(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.supertype === 'undefined') { + if (typeof this.supertype === "undefined") { // undefined matcher means anything matches } else if (this.supertype === null) { // null matcher means we expect null value if (node.supertype !== null) { - return false + return false; } - } else if (node.supertype === null) { - return false } else if ( - !this.supertype.matchValue(node.supertype, [...keys, 'supertype']) + !this.supertype.matchValue(node.supertype, [...keys, "supertype"]) ) { - return false + return false; } - if (typeof this.impltype === 'undefined') { + if (typeof this.impltype === "undefined") { // undefined matcher means anything matches } else if ( - !this.impltype.matchValue(node.impltype, [...keys, 'impltype']) + !this.impltype.matchValue(node.impltype, [...keys, "impltype"]) ) { - return false + return false; } - return true + return true; } } @@ -6825,144 +6797,128 @@ export function opaqueType( id?: Matcher, typeParameters?: Matcher | null, supertype?: Matcher | null, - impltype?: Matcher + impltype?: Matcher, ): Matcher { - return new OpaqueTypeMatcher(id, typeParameters, supertype, impltype) + return new OpaqueTypeMatcher(id, typeParameters, supertype, impltype); } export class OptionalCallExpressionMatcher extends Matcher { constructor( private readonly callee?: Matcher, private readonly _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher >, - private readonly optional?: Matcher | boolean + private readonly optional?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.OptionalCallExpression { if (!t.isNode(node) || !t.isOptionalCallExpression(node)) { - return false + return false; } - if (typeof this.callee === 'undefined') { + if (typeof this.callee === "undefined") { // undefined matcher means anything matches - } else if (!this.callee.matchValue(node.callee, [...keys, 'callee'])) { - return false + } else if (!this.callee.matchValue(node.callee, [...keys, "callee"])) { + return false; } - if (typeof this._arguments === 'undefined') { + if (typeof this._arguments === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this._arguments)) { if ( !tupleOf(...this._arguments).matchValue(node.arguments, [ ...keys, - 'arguments', + "arguments", ]) ) { - return false + return false; } } else if ( - !this._arguments.matchValue(node.arguments, [...keys, 'arguments']) + !this._arguments.matchValue(node.arguments, [...keys, "arguments"]) ) { - return false + return false; } - if (typeof this.optional === 'undefined') { + if (typeof this.optional === "undefined") { // undefined matcher means anything matches - } else if (typeof this.optional === 'boolean') { + } else if (typeof this.optional === "boolean") { if (this.optional !== node.optional) { - return false + return false; } } else if ( - !this.optional.matchValue(node.optional, [...keys, 'optional']) + !this.optional.matchValue(node.optional, [...keys, "optional"]) ) { - return false + return false; } - return true + return true; } } export function optionalCallExpression( callee?: Matcher, _arguments?: - | Matcher< - Array< - | t.Expression - | t.SpreadElement - | t.JSXNamespacedName - | t.ArgumentPlaceholder - > - > + | Matcher> | Array< | Matcher | Matcher - | Matcher | Matcher >, - optional?: Matcher | boolean + optional?: Matcher | boolean, ): Matcher { - return new OptionalCallExpressionMatcher(callee, _arguments, optional) + return new OptionalCallExpressionMatcher(callee, _arguments, optional); } export class OptionalIndexedAccessTypeMatcher extends Matcher { constructor( private readonly objectType?: Matcher, - private readonly indexType?: Matcher + private readonly indexType?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.OptionalIndexedAccessType { if (!t.isNode(node) || !t.isOptionalIndexedAccessType(node)) { - return false + return false; } - if (typeof this.objectType === 'undefined') { + if (typeof this.objectType === "undefined") { // undefined matcher means anything matches } else if ( - !this.objectType.matchValue(node.objectType, [...keys, 'objectType']) + !this.objectType.matchValue(node.objectType, [...keys, "objectType"]) ) { - return false + return false; } - if (typeof this.indexType === 'undefined') { + if (typeof this.indexType === "undefined") { // undefined matcher means anything matches } else if ( - !this.indexType.matchValue(node.indexType, [...keys, 'indexType']) + !this.indexType.matchValue(node.indexType, [...keys, "indexType"]) ) { - return false + return false; } - return true + return true; } } export function optionalIndexedAccessType( objectType?: Matcher, - indexType?: Matcher + indexType?: Matcher, ): Matcher { - return new OptionalIndexedAccessTypeMatcher(objectType, indexType) + return new OptionalIndexedAccessTypeMatcher(objectType, indexType); } export class OptionalMemberExpressionMatcher extends Matcher { @@ -6970,58 +6926,58 @@ export class OptionalMemberExpressionMatcher extends Matcher, private readonly property?: Matcher, private readonly computed?: Matcher | boolean, - private readonly optional?: Matcher | boolean + private readonly optional?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.OptionalMemberExpression { if (!t.isNode(node) || !t.isOptionalMemberExpression(node)) { - return false + return false; } - if (typeof this.object === 'undefined') { + if (typeof this.object === "undefined") { // undefined matcher means anything matches - } else if (!this.object.matchValue(node.object, [...keys, 'object'])) { - return false + } else if (!this.object.matchValue(node.object, [...keys, "object"])) { + return false; } - if (typeof this.property === 'undefined') { + if (typeof this.property === "undefined") { // undefined matcher means anything matches } else if ( - !this.property.matchValue(node.property, [...keys, 'property']) + !this.property.matchValue(node.property, [...keys, "property"]) ) { - return false + return false; } - if (typeof this.computed === 'undefined') { + if (typeof this.computed === "undefined") { // undefined matcher means anything matches - } else if (typeof this.computed === 'boolean') { + } else if (typeof this.computed === "boolean") { if (this.computed !== node.computed) { - return false + return false; } } else if ( - !this.computed.matchValue(node.computed, [...keys, 'computed']) + !this.computed.matchValue(node.computed, [...keys, "computed"]) ) { - return false + return false; } - if (typeof this.optional === 'undefined') { + if (typeof this.optional === "undefined") { // undefined matcher means anything matches - } else if (typeof this.optional === 'boolean') { + } else if (typeof this.optional === "boolean") { if (this.optional !== node.optional) { - return false + return false; } } else if ( - !this.optional.matchValue(node.optional, [...keys, 'optional']) + !this.optional.matchValue(node.optional, [...keys, "optional"]) ) { - return false + return false; } - return true + return true; } } @@ -7029,225 +6985,225 @@ export function optionalMemberExpression( object?: Matcher, property?: Matcher, computed?: Matcher | boolean, - optional?: Matcher | boolean + optional?: Matcher | boolean, ): Matcher { return new OptionalMemberExpressionMatcher( object, property, computed, - optional - ) + optional, + ); } export class ParenthesizedExpressionMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ParenthesizedExpression { if (!t.isNode(node) || !t.isParenthesizedExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function parenthesizedExpression( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new ParenthesizedExpressionMatcher(expression) + return new ParenthesizedExpressionMatcher(expression); } export class PipelineBareFunctionMatcher extends Matcher { constructor(private readonly callee?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.PipelineBareFunction { if (!t.isNode(node) || !t.isPipelineBareFunction(node)) { - return false + return false; } - if (typeof this.callee === 'undefined') { + if (typeof this.callee === "undefined") { // undefined matcher means anything matches - } else if (!this.callee.matchValue(node.callee, [...keys, 'callee'])) { - return false + } else if (!this.callee.matchValue(node.callee, [...keys, "callee"])) { + return false; } - return true + return true; } } export function pipelineBareFunction( - callee?: Matcher + callee?: Matcher, ): Matcher { - return new PipelineBareFunctionMatcher(callee) + return new PipelineBareFunctionMatcher(callee); } export class PipelinePrimaryTopicReferenceMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.PipelinePrimaryTopicReference { if (!t.isNode(node) || !t.isPipelinePrimaryTopicReference(node)) { - return false + return false; } - return true + return true; } } export function pipelinePrimaryTopicReference(): Matcher { - return new PipelinePrimaryTopicReferenceMatcher() + return new PipelinePrimaryTopicReferenceMatcher(); } export class PipelineTopicExpressionMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.PipelineTopicExpression { if (!t.isNode(node) || !t.isPipelineTopicExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function pipelineTopicExpression( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new PipelineTopicExpressionMatcher(expression) + return new PipelineTopicExpressionMatcher(expression); } export class PlaceholderMatcher extends Matcher { constructor( private readonly expectedNode?: | Matcher< - | 'Identifier' - | 'StringLiteral' - | 'Expression' - | 'Statement' - | 'Declaration' - | 'BlockStatement' - | 'ClassBody' - | 'Pattern' + | "Identifier" + | "StringLiteral" + | "Expression" + | "Statement" + | "Declaration" + | "BlockStatement" + | "ClassBody" + | "Pattern" > | string, - private readonly name?: Matcher + private readonly name?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Placeholder { if (!t.isNode(node) || !t.isPlaceholder(node)) { - return false + return false; } - if (typeof this.expectedNode === 'undefined') { + if (typeof this.expectedNode === "undefined") { // undefined matcher means anything matches - } else if (typeof this.expectedNode === 'string') { + } else if (typeof this.expectedNode === "string") { if (this.expectedNode !== node.expectedNode) { - return false + return false; } } else if ( !this.expectedNode.matchValue(node.expectedNode, [ ...keys, - 'expectedNode', + "expectedNode", ]) ) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function placeholder( expectedNode?: | Matcher< - | 'Identifier' - | 'StringLiteral' - | 'Expression' - | 'Statement' - | 'Declaration' - | 'BlockStatement' - | 'ClassBody' - | 'Pattern' + | "Identifier" + | "StringLiteral" + | "Expression" + | "Statement" + | "Declaration" + | "BlockStatement" + | "ClassBody" + | "Pattern" > | string, - name?: Matcher + name?: Matcher, ): Matcher { - return new PlaceholderMatcher(expectedNode, name) + return new PlaceholderMatcher(expectedNode, name); } export class PrivateNameMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.PrivateName { if (!t.isNode(node) || !t.isPrivateName(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function privateName( - id?: Matcher + id?: Matcher, ): Matcher { - return new PrivateNameMatcher(id) + return new PrivateNameMatcher(id); } export class ProgramMatcher extends Matcher { @@ -7258,87 +7214,85 @@ export class ProgramMatcher extends Matcher { private readonly directives?: | Matcher> | Array>, - private readonly sourceType?: Matcher<'script' | 'module'> | string, - private readonly interpreter?: Matcher | null + private readonly sourceType?: Matcher<"script" | "module"> | string, + private readonly interpreter?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Program { if (!t.isNode(node) || !t.isProgram(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - if (typeof this.directives === 'undefined') { + if (typeof this.directives === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.directives)) { if ( !tupleOf(...this.directives).matchValue(node.directives, [ ...keys, - 'directives', + "directives", ]) ) { - return false + return false; } } else if ( - !this.directives.matchValue(node.directives, [...keys, 'directives']) + !this.directives.matchValue(node.directives, [...keys, "directives"]) ) { - return false + return false; } - if (typeof this.sourceType === 'undefined') { + if (typeof this.sourceType === "undefined") { // undefined matcher means anything matches - } else if (typeof this.sourceType === 'string') { + } else if (typeof this.sourceType === "string") { if (this.sourceType !== node.sourceType) { - return false + return false; } } else if ( - !this.sourceType.matchValue(node.sourceType, [...keys, 'sourceType']) + !this.sourceType.matchValue(node.sourceType, [...keys, "sourceType"]) ) { - return false + return false; } - if (typeof this.interpreter === 'undefined') { + if (typeof this.interpreter === "undefined") { // undefined matcher means anything matches } else if (this.interpreter === null) { // null matcher means we expect null value if (node.interpreter !== null) { - return false + return false; } - } else if (node.interpreter === null) { - return false } else if ( - !this.interpreter.matchValue(node.interpreter, [...keys, 'interpreter']) + !this.interpreter.matchValue(node.interpreter, [...keys, "interpreter"]) ) { - return false + return false; } - return true + return true; } } export function program( body?: Matcher> | Array>, directives?: Matcher> | Array>, - sourceType?: Matcher<'script' | 'module'> | string, - interpreter?: Matcher | null + sourceType?: Matcher<"script" | "module"> | string, + interpreter?: Matcher | null, ): Matcher { - return new ProgramMatcher(body, directives, sourceType, interpreter) + return new ProgramMatcher(body, directives, sourceType, interpreter); } export class QualifiedTypeIdentifierMatcher extends Matcher { @@ -7346,426 +7300,424 @@ export class QualifiedTypeIdentifierMatcher extends Matcher, private readonly qualification?: Matcher< t.Identifier | t.QualifiedTypeIdentifier - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.QualifiedTypeIdentifier { if (!t.isNode(node) || !t.isQualifiedTypeIdentifier(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.qualification === 'undefined') { + if (typeof this.qualification === "undefined") { // undefined matcher means anything matches } else if ( !this.qualification.matchValue(node.qualification, [ ...keys, - 'qualification', + "qualification", ]) ) { - return false + return false; } - return true + return true; } } export function qualifiedTypeIdentifier( id?: Matcher, - qualification?: Matcher + qualification?: Matcher, ): Matcher { - return new QualifiedTypeIdentifierMatcher(id, qualification) + return new QualifiedTypeIdentifierMatcher(id, qualification); } export class RecordExpressionMatcher extends Matcher { constructor( private readonly properties?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.RecordExpression { if (!t.isNode(node) || !t.isRecordExpression(node)) { - return false + return false; } - if (typeof this.properties === 'undefined') { + if (typeof this.properties === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.properties)) { if ( !tupleOf(...this.properties).matchValue(node.properties, [ ...keys, - 'properties', + "properties", ]) ) { - return false + return false; } } else if ( - !this.properties.matchValue(node.properties, [...keys, 'properties']) + !this.properties.matchValue(node.properties, [...keys, "properties"]) ) { - return false + return false; } - return true + return true; } } export function recordExpression( properties?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new RecordExpressionMatcher(properties) + return new RecordExpressionMatcher(properties); } export class RegExpLiteralMatcher extends Matcher { constructor( private readonly pattern?: Matcher | string, - private readonly flags?: Matcher | string + private readonly flags?: Matcher | string, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.RegExpLiteral { if (!t.isNode(node) || !t.isRegExpLiteral(node)) { - return false + return false; } - if (typeof this.pattern === 'undefined') { + if (typeof this.pattern === "undefined") { // undefined matcher means anything matches - } else if (typeof this.pattern === 'string') { + } else if (typeof this.pattern === "string") { if (this.pattern !== node.pattern) { - return false + return false; } - } else if (!this.pattern.matchValue(node.pattern, [...keys, 'pattern'])) { - return false + } else if (!this.pattern.matchValue(node.pattern, [...keys, "pattern"])) { + return false; } - if (typeof this.flags === 'undefined') { + if (typeof this.flags === "undefined") { // undefined matcher means anything matches - } else if (typeof this.flags === 'string') { + } else if (typeof this.flags === "string") { if (this.flags !== node.flags) { - return false + return false; } - } else if (!this.flags.matchValue(node.flags, [...keys, 'flags'])) { - return false + } else if (!this.flags.matchValue(node.flags, [...keys, "flags"])) { + return false; } - return true + return true; } } export function regExpLiteral( pattern?: Matcher | string, - flags?: Matcher | string + flags?: Matcher | string, ): Matcher { - return new RegExpLiteralMatcher(pattern, flags) + return new RegExpLiteralMatcher(pattern, flags); } export class RestElementMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.RestElement { if (!t.isNode(node) || !t.isRestElement(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function restElement( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new RestElementMatcher(argument) + return new RestElementMatcher(argument); } export class ReturnStatementMatcher extends Matcher { constructor(private readonly argument?: Matcher | null) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ReturnStatement { if (!t.isNode(node) || !t.isReturnStatement(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if (this.argument === null) { // null matcher means we expect null value if (node.argument !== null) { - return false + return false; } - } else if (node.argument === null) { - return false } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function returnStatement( - argument?: Matcher | null + argument?: Matcher | null, ): Matcher { - return new ReturnStatementMatcher(argument) + return new ReturnStatementMatcher(argument); } export class SequenceExpressionMatcher extends Matcher { constructor( private readonly expressions?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.SequenceExpression { if (!t.isNode(node) || !t.isSequenceExpression(node)) { - return false + return false; } - if (typeof this.expressions === 'undefined') { + if (typeof this.expressions === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.expressions)) { if ( !tupleOf(...this.expressions).matchValue(node.expressions, [ ...keys, - 'expressions', + "expressions", ]) ) { - return false + return false; } } else if ( - !this.expressions.matchValue(node.expressions, [...keys, 'expressions']) + !this.expressions.matchValue(node.expressions, [...keys, "expressions"]) ) { - return false + return false; } - return true + return true; } } export function sequenceExpression( - expressions?: Matcher> | Array> + expressions?: Matcher> | Array>, ): Matcher { - return new SequenceExpressionMatcher(expressions) + return new SequenceExpressionMatcher(expressions); } export class SpreadElementMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.SpreadElement { if (!t.isNode(node) || !t.isSpreadElement(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function spreadElement( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new SpreadElementMatcher(argument) + return new SpreadElementMatcher(argument); } export class StaticBlockMatcher extends Matcher { constructor( private readonly body?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.StaticBlock { if (!t.isNode(node) || !t.isStaticBlock(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function staticBlock( - body?: Matcher> | Array> + body?: Matcher> | Array>, ): Matcher { - return new StaticBlockMatcher(body) + return new StaticBlockMatcher(body); } export class StringLiteralMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.StringLiteral { if (!t.isNode(node) || !t.isStringLiteral(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function stringLiteral( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new StringLiteralMatcher(value) + return new StringLiteralMatcher(value); } export class StringLiteralTypeAnnotationMatcher extends Matcher { constructor(private readonly value?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.StringLiteralTypeAnnotation { if (!t.isNode(node) || !t.isStringLiteralTypeAnnotation(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (typeof this.value === 'string') { + } else if (typeof this.value === "string") { if (this.value !== node.value) { - return false + return false; } - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - return true + return true; } } export function stringLiteralTypeAnnotation( - value?: Matcher | string + value?: Matcher | string, ): Matcher { - return new StringLiteralTypeAnnotationMatcher(value) + return new StringLiteralTypeAnnotationMatcher(value); } export class StringTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.StringTypeAnnotation { if (!t.isNode(node) || !t.isStringTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function stringTypeAnnotation(): Matcher { - return new StringTypeAnnotationMatcher() + return new StringTypeAnnotationMatcher(); } export class SuperMatcher extends Matcher { constructor() { - super() + super(); } matchValue(node: unknown, keys: ReadonlyArray): node is t.Super { if (!t.isNode(node) || !t.isSuper(node)) { - return false + return false; } - return true + return true; } } export function Super(): Matcher { - return new SuperMatcher() + return new SuperMatcher(); } export class SwitchCaseMatcher extends Matcher { @@ -7773,58 +7725,56 @@ export class SwitchCaseMatcher extends Matcher { private readonly test?: Matcher | null, private readonly consequent?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.SwitchCase { if (!t.isNode(node) || !t.isSwitchCase(node)) { - return false + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches } else if (this.test === null) { // null matcher means we expect null value if (node.test !== null) { - return false + return false; } - } else if (node.test === null) { - return false - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.consequent === 'undefined') { + if (typeof this.consequent === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.consequent)) { if ( !tupleOf(...this.consequent).matchValue(node.consequent, [ ...keys, - 'consequent', + "consequent", ]) ) { - return false + return false; } } else if ( - !this.consequent.matchValue(node.consequent, [...keys, 'consequent']) + !this.consequent.matchValue(node.consequent, [...keys, "consequent"]) ) { - return false + return false; } - return true + return true; } } export function switchCase( test?: Matcher | null, - consequent?: Matcher> | Array> + consequent?: Matcher> | Array>, ): Matcher { - return new SwitchCaseMatcher(test, consequent) + return new SwitchCaseMatcher(test, consequent); } export class SwitchStatementMatcher extends Matcher { @@ -7832,305 +7782,315 @@ export class SwitchStatementMatcher extends Matcher { private readonly discriminant?: Matcher, private readonly cases?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.SwitchStatement { if (!t.isNode(node) || !t.isSwitchStatement(node)) { - return false + return false; } - if (typeof this.discriminant === 'undefined') { + if (typeof this.discriminant === "undefined") { // undefined matcher means anything matches } else if ( !this.discriminant.matchValue(node.discriminant, [ ...keys, - 'discriminant', + "discriminant", ]) ) { - return false + return false; } - if (typeof this.cases === 'undefined') { + if (typeof this.cases === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.cases)) { if ( !tupleOf(...this.cases).matchValue(node.cases, [ ...keys, - 'cases', + "cases", ]) ) { - return false + return false; } - } else if (!this.cases.matchValue(node.cases, [...keys, 'cases'])) { - return false + } else if (!this.cases.matchValue(node.cases, [...keys, "cases"])) { + return false; } - return true + return true; } } export function switchStatement( discriminant?: Matcher, - cases?: Matcher> | Array> + cases?: Matcher> | Array>, ): Matcher { - return new SwitchStatementMatcher(discriminant, cases) + return new SwitchStatementMatcher(discriminant, cases); } export class SymbolTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.SymbolTypeAnnotation { if (!t.isNode(node) || !t.isSymbolTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function symbolTypeAnnotation(): Matcher { - return new SymbolTypeAnnotationMatcher() + return new SymbolTypeAnnotationMatcher(); } export class TSAnyKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSAnyKeyword { if (!t.isNode(node) || !t.isTSAnyKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsAnyKeyword(): Matcher { - return new TSAnyKeywordMatcher() + return new TSAnyKeywordMatcher(); } export class TSArrayTypeMatcher extends Matcher { constructor(private readonly elementType?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSArrayType { if (!t.isNode(node) || !t.isTSArrayType(node)) { - return false + return false; } - if (typeof this.elementType === 'undefined') { + if (typeof this.elementType === "undefined") { // undefined matcher means anything matches } else if ( - !this.elementType.matchValue(node.elementType, [...keys, 'elementType']) + !this.elementType.matchValue(node.elementType, [...keys, "elementType"]) ) { - return false + return false; } - return true + return true; } } export function tsArrayType( - elementType?: Matcher + elementType?: Matcher, ): Matcher { - return new TSArrayTypeMatcher(elementType) + return new TSArrayTypeMatcher(elementType); } export class TSAsExpressionMatcher extends Matcher { constructor( private readonly expression?: Matcher, - private readonly typeAnnotation?: Matcher + private readonly typeAnnotation?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSAsExpression { if (!t.isNode(node) || !t.isTSAsExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsAsExpression( expression?: Matcher, - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSAsExpressionMatcher(expression, typeAnnotation) + return new TSAsExpressionMatcher(expression, typeAnnotation); } export class TSBigIntKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSBigIntKeyword { if (!t.isNode(node) || !t.isTSBigIntKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsBigIntKeyword(): Matcher { - return new TSBigIntKeywordMatcher() + return new TSBigIntKeywordMatcher(); } export class TSBooleanKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSBooleanKeyword { if (!t.isNode(node) || !t.isTSBooleanKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsBooleanKeyword(): Matcher { - return new TSBooleanKeywordMatcher() + return new TSBooleanKeywordMatcher(); } export class TSCallSignatureDeclarationMatcher extends Matcher { constructor( private readonly typeParameters?: Matcher | null, private readonly parameters?: - | Matcher> - | Array | Matcher>, - private readonly typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSCallSignatureDeclaration { if (!t.isNode(node) || !t.isTSCallSignatureDeclaration(node)) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsCallSignatureDeclaration( typeParameters?: Matcher | null, parameters?: - | Matcher> - | Array | Matcher>, - typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + typeAnnotation?: Matcher | null, ): Matcher { return new TSCallSignatureDeclarationMatcher( typeParameters, parameters, - typeAnnotation - ) + typeAnnotation, + ); } export class TSConditionalTypeMatcher extends Matcher { @@ -8138,52 +8098,52 @@ export class TSConditionalTypeMatcher extends Matcher { private readonly checkType?: Matcher, private readonly extendsType?: Matcher, private readonly trueType?: Matcher, - private readonly falseType?: Matcher + private readonly falseType?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSConditionalType { if (!t.isNode(node) || !t.isTSConditionalType(node)) { - return false + return false; } - if (typeof this.checkType === 'undefined') { + if (typeof this.checkType === "undefined") { // undefined matcher means anything matches } else if ( - !this.checkType.matchValue(node.checkType, [...keys, 'checkType']) + !this.checkType.matchValue(node.checkType, [...keys, "checkType"]) ) { - return false + return false; } - if (typeof this.extendsType === 'undefined') { + if (typeof this.extendsType === "undefined") { // undefined matcher means anything matches } else if ( - !this.extendsType.matchValue(node.extendsType, [...keys, 'extendsType']) + !this.extendsType.matchValue(node.extendsType, [...keys, "extendsType"]) ) { - return false + return false; } - if (typeof this.trueType === 'undefined') { + if (typeof this.trueType === "undefined") { // undefined matcher means anything matches } else if ( - !this.trueType.matchValue(node.trueType, [...keys, 'trueType']) + !this.trueType.matchValue(node.trueType, [...keys, "trueType"]) ) { - return false + return false; } - if (typeof this.falseType === 'undefined') { + if (typeof this.falseType === "undefined") { // undefined matcher means anything matches } else if ( - !this.falseType.matchValue(node.falseType, [...keys, 'falseType']) + !this.falseType.matchValue(node.falseType, [...keys, "falseType"]) ) { - return false + return false; } - return true + return true; } } @@ -8191,194 +8151,214 @@ export function tsConditionalType( checkType?: Matcher, extendsType?: Matcher, trueType?: Matcher, - falseType?: Matcher + falseType?: Matcher, ): Matcher { return new TSConditionalTypeMatcher( checkType, extendsType, trueType, - falseType - ) + falseType, + ); } export class TSConstructSignatureDeclarationMatcher extends Matcher { constructor( private readonly typeParameters?: Matcher | null, private readonly parameters?: - | Matcher> - | Array | Matcher>, - private readonly typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSConstructSignatureDeclaration { if (!t.isNode(node) || !t.isTSConstructSignatureDeclaration(node)) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsConstructSignatureDeclaration( typeParameters?: Matcher | null, parameters?: - | Matcher> - | Array | Matcher>, - typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + typeAnnotation?: Matcher | null, ): Matcher { return new TSConstructSignatureDeclarationMatcher( typeParameters, parameters, - typeAnnotation - ) + typeAnnotation, + ); } export class TSConstructorTypeMatcher extends Matcher { constructor( private readonly typeParameters?: Matcher | null, private readonly parameters?: - | Matcher> - | Array | Matcher>, - private readonly typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSConstructorType { if (!t.isNode(node) || !t.isTSConstructorType(node)) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsConstructorType( typeParameters?: Matcher | null, parameters?: - | Matcher> - | Array | Matcher>, - typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + typeAnnotation?: Matcher | null, ): Matcher { return new TSConstructorTypeMatcher( typeParameters, parameters, - typeAnnotation - ) + typeAnnotation, + ); } export class TSDeclareFunctionMatcher extends Matcher { @@ -8392,81 +8372,75 @@ export class TSDeclareFunctionMatcher extends Matcher { | Array< Matcher | Matcher | Matcher >, - private readonly returnType?: Matcher | null + private readonly returnType?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSDeclareFunction { if (!t.isNode(node) || !t.isTSDeclareFunction(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches } else if (this.id === null) { // null matcher means we expect null value if (node.id !== null) { - return false + return false; } - } else if (node.id === null) { - return false - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.returnType === 'undefined') { + if (typeof this.returnType === "undefined") { // undefined matcher means anything matches } else if (this.returnType === null) { // null matcher means we expect null value if (node.returnType !== null) { - return false + return false; } - } else if (node.returnType === null) { - return false } else if ( - !this.returnType.matchValue(node.returnType, [...keys, 'returnType']) + !this.returnType.matchValue(node.returnType, [...keys, "returnType"]) ) { - return false + return false; } - return true + return true; } } @@ -8478,9 +8452,9 @@ export function tsDeclareFunction( | Array< Matcher | Matcher | Matcher >, - returnType?: Matcher | null + returnType?: Matcher | null, ): Matcher { - return new TSDeclareFunctionMatcher(id, typeParameters, params, returnType) + return new TSDeclareFunctionMatcher(id, typeParameters, params, returnType); } export class TSDeclareMethodMatcher extends Matcher { @@ -8511,98 +8485,92 @@ export class TSDeclareMethodMatcher extends Matcher { | Matcher | Matcher >, - private readonly returnType?: Matcher | null + private readonly returnType?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSDeclareMethod { if (!t.isNode(node) || !t.isTSDeclareMethod(node)) { - return false + return false; } - if (typeof this.decorators === 'undefined') { + if (typeof this.decorators === "undefined") { // undefined matcher means anything matches } else if (this.decorators === null) { // null matcher means we expect null value if (node.decorators !== null) { - return false + return false; } - } else if (node.decorators === null) { - return false } else if (Array.isArray(this.decorators)) { if ( !tupleOf(...this.decorators).matchValue(node.decorators, [ ...keys, - 'decorators', + "decorators", ]) ) { - return false + return false; } } else if ( - !this.decorators.matchValue(node.decorators, [...keys, 'decorators']) + !this.decorators.matchValue(node.decorators, [...keys, "decorators"]) ) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - if (typeof this.returnType === 'undefined') { + if (typeof this.returnType === "undefined") { // undefined matcher means anything matches } else if (this.returnType === null) { // null matcher means we expect null value if (node.returnType !== null) { - return false + return false; } - } else if (node.returnType === null) { - return false } else if ( - !this.returnType.matchValue(node.returnType, [...keys, 'returnType']) + !this.returnType.matchValue(node.returnType, [...keys, "returnType"]) ) { - return false + return false; } - return true + return true; } } @@ -8626,15 +8594,15 @@ export function tsDeclareMethod( | Matcher | Matcher >, - returnType?: Matcher | null + returnType?: Matcher | null, ): Matcher { return new TSDeclareMethodMatcher( decorators, key, typeParameters, params, - returnType - ) + returnType, + ); } export class TSEnumDeclarationMatcher extends Matcher { @@ -8642,298 +8610,304 @@ export class TSEnumDeclarationMatcher extends Matcher { private readonly id?: Matcher, private readonly members?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSEnumDeclaration { if (!t.isNode(node) || !t.isTSEnumDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function tsEnumDeclaration( id?: Matcher, - members?: Matcher> | Array> + members?: Matcher> | Array>, ): Matcher { - return new TSEnumDeclarationMatcher(id, members) + return new TSEnumDeclarationMatcher(id, members); } export class TSEnumMemberMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly initializer?: Matcher | null + private readonly initializer?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSEnumMember { if (!t.isNode(node) || !t.isTSEnumMember(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.initializer === 'undefined') { + if (typeof this.initializer === "undefined") { // undefined matcher means anything matches } else if (this.initializer === null) { // null matcher means we expect null value if (node.initializer !== null) { - return false + return false; } - } else if (node.initializer === null) { - return false } else if ( - !this.initializer.matchValue(node.initializer, [...keys, 'initializer']) + !this.initializer.matchValue(node.initializer, [...keys, "initializer"]) ) { - return false + return false; } - return true + return true; } } export function tsEnumMember( id?: Matcher, - initializer?: Matcher | null + initializer?: Matcher | null, ): Matcher { - return new TSEnumMemberMatcher(id, initializer) + return new TSEnumMemberMatcher(id, initializer); } export class TSExportAssignmentMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSExportAssignment { if (!t.isNode(node) || !t.isTSExportAssignment(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function tsExportAssignment( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new TSExportAssignmentMatcher(expression) + return new TSExportAssignmentMatcher(expression); } export class TSExpressionWithTypeArgumentsMatcher extends Matcher { constructor( private readonly expression?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSExpressionWithTypeArguments { if (!t.isNode(node) || !t.isTSExpressionWithTypeArguments(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function tsExpressionWithTypeArguments( expression?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new TSExpressionWithTypeArgumentsMatcher(expression, typeParameters) + return new TSExpressionWithTypeArgumentsMatcher(expression, typeParameters); } export class TSExternalModuleReferenceMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSExternalModuleReference { if (!t.isNode(node) || !t.isTSExternalModuleReference(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function tsExternalModuleReference( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new TSExternalModuleReferenceMatcher(expression) + return new TSExternalModuleReferenceMatcher(expression); } export class TSFunctionTypeMatcher extends Matcher { constructor( private readonly typeParameters?: Matcher | null, private readonly parameters?: - | Matcher> - | Array | Matcher>, - private readonly typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSFunctionType { if (!t.isNode(node) || !t.isTSFunctionType(node)) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsFunctionType( typeParameters?: Matcher | null, parameters?: - | Matcher> - | Array | Matcher>, - typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + typeAnnotation?: Matcher | null, ): Matcher { - return new TSFunctionTypeMatcher(typeParameters, parameters, typeAnnotation) + return new TSFunctionTypeMatcher(typeParameters, parameters, typeAnnotation); } export class TSImportEqualsDeclarationMatcher extends Matcher { @@ -8941,115 +8915,111 @@ export class TSImportEqualsDeclarationMatcher extends Matcher, private readonly moduleReference?: Matcher< t.TSEntityName | t.TSExternalModuleReference - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSImportEqualsDeclaration { if (!t.isNode(node) || !t.isTSImportEqualsDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.moduleReference === 'undefined') { + if (typeof this.moduleReference === "undefined") { // undefined matcher means anything matches } else if ( !this.moduleReference.matchValue(node.moduleReference, [ ...keys, - 'moduleReference', + "moduleReference", ]) ) { - return false + return false; } - return true + return true; } } export function tsImportEqualsDeclaration( id?: Matcher, - moduleReference?: Matcher + moduleReference?: Matcher, ): Matcher { - return new TSImportEqualsDeclarationMatcher(id, moduleReference) + return new TSImportEqualsDeclarationMatcher(id, moduleReference); } export class TSImportTypeMatcher extends Matcher { constructor( private readonly argument?: Matcher, private readonly qualifier?: Matcher | null, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSImportType { if (!t.isNode(node) || !t.isTSImportType(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - if (typeof this.qualifier === 'undefined') { + if (typeof this.qualifier === "undefined") { // undefined matcher means anything matches } else if (this.qualifier === null) { // null matcher means we expect null value if (node.qualifier !== null) { - return false + return false; } - } else if (node.qualifier === null) { - return false } else if ( - !this.qualifier.matchValue(node.qualifier, [...keys, 'qualifier']) + !this.qualifier.matchValue(node.qualifier, [...keys, "qualifier"]) ) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function tsImportType( argument?: Matcher, qualifier?: Matcher | null, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new TSImportTypeMatcher(argument, qualifier, typeParameters) + return new TSImportTypeMatcher(argument, qualifier, typeParameters); } export class TSIndexSignatureMatcher extends Matcher { @@ -9057,232 +9027,228 @@ export class TSIndexSignatureMatcher extends Matcher { private readonly parameters?: | Matcher> | Array>, - private readonly typeAnnotation?: Matcher | null + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSIndexSignature { if (!t.isNode(node) || !t.isTSIndexSignature(node)) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsIndexSignature( parameters?: Matcher> | Array>, - typeAnnotation?: Matcher | null + typeAnnotation?: Matcher | null, ): Matcher { - return new TSIndexSignatureMatcher(parameters, typeAnnotation) + return new TSIndexSignatureMatcher(parameters, typeAnnotation); } export class TSIndexedAccessTypeMatcher extends Matcher { constructor( private readonly objectType?: Matcher, - private readonly indexType?: Matcher + private readonly indexType?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSIndexedAccessType { if (!t.isNode(node) || !t.isTSIndexedAccessType(node)) { - return false + return false; } - if (typeof this.objectType === 'undefined') { + if (typeof this.objectType === "undefined") { // undefined matcher means anything matches } else if ( - !this.objectType.matchValue(node.objectType, [...keys, 'objectType']) + !this.objectType.matchValue(node.objectType, [...keys, "objectType"]) ) { - return false + return false; } - if (typeof this.indexType === 'undefined') { + if (typeof this.indexType === "undefined") { // undefined matcher means anything matches } else if ( - !this.indexType.matchValue(node.indexType, [...keys, 'indexType']) + !this.indexType.matchValue(node.indexType, [...keys, "indexType"]) ) { - return false + return false; } - return true + return true; } } export function tsIndexedAccessType( objectType?: Matcher, - indexType?: Matcher + indexType?: Matcher, ): Matcher { - return new TSIndexedAccessTypeMatcher(objectType, indexType) + return new TSIndexedAccessTypeMatcher(objectType, indexType); } export class TSInferTypeMatcher extends Matcher { constructor(private readonly typeParameter?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSInferType { if (!t.isNode(node) || !t.isTSInferType(node)) { - return false + return false; } - if (typeof this.typeParameter === 'undefined') { + if (typeof this.typeParameter === "undefined") { // undefined matcher means anything matches } else if ( !this.typeParameter.matchValue(node.typeParameter, [ ...keys, - 'typeParameter', + "typeParameter", ]) ) { - return false + return false; } - return true + return true; } } export function tsInferType( - typeParameter?: Matcher + typeParameter?: Matcher, ): Matcher { - return new TSInferTypeMatcher(typeParameter) + return new TSInferTypeMatcher(typeParameter); } export class TSInstantiationExpressionMatcher extends Matcher { constructor( private readonly expression?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSInstantiationExpression { if (!t.isNode(node) || !t.isTSInstantiationExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function tsInstantiationExpression( expression?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new TSInstantiationExpressionMatcher(expression, typeParameters) + return new TSInstantiationExpressionMatcher(expression, typeParameters); } export class TSInterfaceBodyMatcher extends Matcher { constructor( private readonly body?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSInterfaceBody { if (!t.isNode(node) || !t.isTSInterfaceBody(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function tsInterfaceBody( - body?: Matcher> | Array> + body?: Matcher> | Array>, ): Matcher { - return new TSInterfaceBodyMatcher(body) + return new TSInterfaceBodyMatcher(body); } export class TSInterfaceDeclarationMatcher extends Matcher { @@ -9293,72 +9259,68 @@ export class TSInterfaceDeclarationMatcher extends Matcher> | Array> | null, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSInterfaceDeclaration { if (!t.isNode(node) || !t.isTSInterfaceDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this._extends === 'undefined') { + if (typeof this._extends === "undefined") { // undefined matcher means anything matches } else if (this._extends === null) { // null matcher means we expect null value if (node.extends !== null) { - return false + return false; } - } else if (node.extends === null) { - return false } else if (Array.isArray(this._extends)) { if ( !tupleOf(...this._extends).matchValue(node.extends, [ ...keys, - 'extends', + "extends", ]) ) { - return false + return false; } - } else if (!this._extends.matchValue(node.extends, [...keys, 'extends'])) { - return false + } else if (!this._extends.matchValue(node.extends, [...keys, "extends"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } @@ -9369,70 +9331,72 @@ export function tsInterfaceDeclaration( | Matcher> | Array> | null, - body?: Matcher + body?: Matcher, ): Matcher { - return new TSInterfaceDeclarationMatcher(id, typeParameters, _extends, body) + return new TSInterfaceDeclarationMatcher(id, typeParameters, _extends, body); } export class TSIntersectionTypeMatcher extends Matcher { constructor( - private readonly types?: Matcher> | Array> + private readonly types?: + | Matcher> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSIntersectionType { if (!t.isNode(node) || !t.isTSIntersectionType(node)) { - return false + return false; } - if (typeof this.types === 'undefined') { + if (typeof this.types === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.types)) { if ( !tupleOf(...this.types).matchValue(node.types, [ ...keys, - 'types', + "types", ]) ) { - return false + return false; } - } else if (!this.types.matchValue(node.types, [...keys, 'types'])) { - return false + } else if (!this.types.matchValue(node.types, [...keys, "types"])) { + return false; } - return true + return true; } } export function tsIntersectionType( - types?: Matcher> | Array> + types?: Matcher> | Array>, ): Matcher { - return new TSIntersectionTypeMatcher(types) + return new TSIntersectionTypeMatcher(types); } export class TSIntrinsicKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSIntrinsicKeyword { if (!t.isNode(node) || !t.isTSIntrinsicKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsIntrinsicKeyword(): Matcher { - return new TSIntrinsicKeywordMatcher() + return new TSIntrinsicKeywordMatcher(); } export class TSLiteralTypeMatcher extends Matcher { @@ -9444,26 +9408,26 @@ export class TSLiteralTypeMatcher extends Matcher { | t.BigIntLiteral | t.TemplateLiteral | t.UnaryExpression - > + >, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSLiteralType { if (!t.isNode(node) || !t.isTSLiteralType(node)) { - return false + return false; } - if (typeof this.literal === 'undefined') { + if (typeof this.literal === "undefined") { // undefined matcher means anything matches - } else if (!this.literal.matchValue(node.literal, [...keys, 'literal'])) { - return false + } else if (!this.literal.matchValue(node.literal, [...keys, "literal"])) { + return false; } - return true + return true; } } @@ -9475,82 +9439,78 @@ export function tsLiteralType( | t.BigIntLiteral | t.TemplateLiteral | t.UnaryExpression - > + >, ): Matcher { - return new TSLiteralTypeMatcher(literal) + return new TSLiteralTypeMatcher(literal); } export class TSMappedTypeMatcher extends Matcher { constructor( private readonly typeParameter?: Matcher, private readonly typeAnnotation?: Matcher | null, - private readonly nameType?: Matcher | null + private readonly nameType?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSMappedType { if (!t.isNode(node) || !t.isTSMappedType(node)) { - return false + return false; } - if (typeof this.typeParameter === 'undefined') { + if (typeof this.typeParameter === "undefined") { // undefined matcher means anything matches } else if ( !this.typeParameter.matchValue(node.typeParameter, [ ...keys, - 'typeParameter', + "typeParameter", ]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - if (typeof this.nameType === 'undefined') { + if (typeof this.nameType === "undefined") { // undefined matcher means anything matches } else if (this.nameType === null) { // null matcher means we expect null value if (node.nameType !== null) { - return false + return false; } - } else if (node.nameType === null) { - return false } else if ( - !this.nameType.matchValue(node.nameType, [...keys, 'nameType']) + !this.nameType.matchValue(node.nameType, [...keys, "nameType"]) ) { - return false + return false; } - return true + return true; } } export function tsMappedType( typeParameter?: Matcher, typeAnnotation?: Matcher | null, - nameType?: Matcher | null + nameType?: Matcher | null, ): Matcher { - return new TSMappedTypeMatcher(typeParameter, typeAnnotation, nameType) + return new TSMappedTypeMatcher(typeParameter, typeAnnotation, nameType); } export class TSMethodSignatureMatcher extends Matcher { @@ -9558,81 +9518,84 @@ export class TSMethodSignatureMatcher extends Matcher { private readonly key?: Matcher, private readonly typeParameters?: Matcher | null, private readonly parameters?: - | Matcher> - | Array | Matcher>, - private readonly typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + private readonly typeAnnotation?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSMethodSignature { if (!t.isNode(node) || !t.isTSMethodSignature(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.parameters === 'undefined') { + if (typeof this.parameters === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.parameters)) { if ( !tupleOf(...this.parameters).matchValue(node.parameters, [ ...keys, - 'parameters', + "parameters", ]) ) { - return false + return false; } } else if ( - !this.parameters.matchValue(node.parameters, [...keys, 'parameters']) + !this.parameters.matchValue(node.parameters, [...keys, "parameters"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } @@ -9640,1430 +9603,1408 @@ export function tsMethodSignature( key?: Matcher, typeParameters?: Matcher | null, parameters?: - | Matcher> - | Array | Matcher>, - typeAnnotation?: Matcher | null + | Matcher< + Array + > + | Array< + | Matcher + | Matcher + | Matcher + | Matcher + >, + typeAnnotation?: Matcher | null, ): Matcher { return new TSMethodSignatureMatcher( key, typeParameters, parameters, - typeAnnotation - ) + typeAnnotation, + ); } export class TSModuleBlockMatcher extends Matcher { constructor( private readonly body?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSModuleBlock { if (!t.isNode(node) || !t.isTSModuleBlock(node)) { - return false + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.body)) { if ( - !tupleOf(...this.body).matchValue(node.body, [...keys, 'body']) + !tupleOf(...this.body).matchValue(node.body, [...keys, "body"]) ) { - return false + return false; } - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function tsModuleBlock( - body?: Matcher> | Array> + body?: Matcher> | Array>, ): Matcher { - return new TSModuleBlockMatcher(body) + return new TSModuleBlockMatcher(body); } export class TSModuleDeclarationMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSModuleDeclaration { if (!t.isNode(node) || !t.isTSModuleDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function tsModuleDeclaration( id?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new TSModuleDeclarationMatcher(id, body) + return new TSModuleDeclarationMatcher(id, body); } export class TSNamedTupleMemberMatcher extends Matcher { constructor( private readonly label?: Matcher, private readonly elementType?: Matcher, - private readonly optional?: Matcher | boolean + private readonly optional?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNamedTupleMember { if (!t.isNode(node) || !t.isTSNamedTupleMember(node)) { - return false + return false; } - if (typeof this.label === 'undefined') { + if (typeof this.label === "undefined") { // undefined matcher means anything matches - } else if (!this.label.matchValue(node.label, [...keys, 'label'])) { - return false + } else if (!this.label.matchValue(node.label, [...keys, "label"])) { + return false; } - if (typeof this.elementType === 'undefined') { + if (typeof this.elementType === "undefined") { // undefined matcher means anything matches } else if ( - !this.elementType.matchValue(node.elementType, [...keys, 'elementType']) + !this.elementType.matchValue(node.elementType, [...keys, "elementType"]) ) { - return false + return false; } - if (typeof this.optional === 'undefined') { + if (typeof this.optional === "undefined") { // undefined matcher means anything matches - } else if (typeof this.optional === 'boolean') { + } else if (typeof this.optional === "boolean") { if (this.optional !== node.optional) { - return false + return false; } } else if ( - !this.optional.matchValue(node.optional, [...keys, 'optional']) + !this.optional.matchValue(node.optional, [...keys, "optional"]) ) { - return false + return false; } - return true + return true; } } export function tsNamedTupleMember( label?: Matcher, elementType?: Matcher, - optional?: Matcher | boolean + optional?: Matcher | boolean, ): Matcher { - return new TSNamedTupleMemberMatcher(label, elementType, optional) + return new TSNamedTupleMemberMatcher(label, elementType, optional); } export class TSNamespaceExportDeclarationMatcher extends Matcher { constructor(private readonly id?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNamespaceExportDeclaration { if (!t.isNode(node) || !t.isTSNamespaceExportDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - return true + return true; } } export function tsNamespaceExportDeclaration( - id?: Matcher + id?: Matcher, ): Matcher { - return new TSNamespaceExportDeclarationMatcher(id) + return new TSNamespaceExportDeclarationMatcher(id); } export class TSNeverKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNeverKeyword { if (!t.isNode(node) || !t.isTSNeverKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsNeverKeyword(): Matcher { - return new TSNeverKeywordMatcher() + return new TSNeverKeywordMatcher(); } export class TSNonNullExpressionMatcher extends Matcher { constructor(private readonly expression?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNonNullExpression { if (!t.isNode(node) || !t.isTSNonNullExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function tsNonNullExpression( - expression?: Matcher + expression?: Matcher, ): Matcher { - return new TSNonNullExpressionMatcher(expression) + return new TSNonNullExpressionMatcher(expression); } export class TSNullKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNullKeyword { if (!t.isNode(node) || !t.isTSNullKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsNullKeyword(): Matcher { - return new TSNullKeywordMatcher() + return new TSNullKeywordMatcher(); } export class TSNumberKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSNumberKeyword { if (!t.isNode(node) || !t.isTSNumberKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsNumberKeyword(): Matcher { - return new TSNumberKeywordMatcher() + return new TSNumberKeywordMatcher(); } export class TSObjectKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSObjectKeyword { if (!t.isNode(node) || !t.isTSObjectKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsObjectKeyword(): Matcher { - return new TSObjectKeywordMatcher() + return new TSObjectKeywordMatcher(); } export class TSOptionalTypeMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSOptionalType { if (!t.isNode(node) || !t.isTSOptionalType(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsOptionalType( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSOptionalTypeMatcher(typeAnnotation) + return new TSOptionalTypeMatcher(typeAnnotation); } export class TSParameterPropertyMatcher extends Matcher { constructor( - private readonly parameter?: Matcher + private readonly parameter?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSParameterProperty { if (!t.isNode(node) || !t.isTSParameterProperty(node)) { - return false + return false; } - if (typeof this.parameter === 'undefined') { + if (typeof this.parameter === "undefined") { // undefined matcher means anything matches } else if ( - !this.parameter.matchValue(node.parameter, [...keys, 'parameter']) + !this.parameter.matchValue(node.parameter, [...keys, "parameter"]) ) { - return false + return false; } - return true + return true; } } export function tsParameterProperty( - parameter?: Matcher + parameter?: Matcher, ): Matcher { - return new TSParameterPropertyMatcher(parameter) + return new TSParameterPropertyMatcher(parameter); } export class TSParenthesizedTypeMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSParenthesizedType { if (!t.isNode(node) || !t.isTSParenthesizedType(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsParenthesizedType( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSParenthesizedTypeMatcher(typeAnnotation) + return new TSParenthesizedTypeMatcher(typeAnnotation); } export class TSPropertySignatureMatcher extends Matcher { constructor( private readonly key?: Matcher, private readonly typeAnnotation?: Matcher | null, - private readonly initializer?: Matcher | null ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSPropertySignature { if (!t.isNode(node) || !t.isTSPropertySignature(node)) { - return false + return false; } - if (typeof this.key === 'undefined') { + if (typeof this.key === "undefined") { // undefined matcher means anything matches - } else if (!this.key.matchValue(node.key, [...keys, 'key'])) { - return false + } else if (!this.key.matchValue(node.key, [...keys, "key"])) { + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false - } - - if (typeof this.initializer === 'undefined') { - // undefined matcher means anything matches - } else if (this.initializer === null) { - // null matcher means we expect null value - if (node.initializer !== null) { - return false - } - } else if (node.initializer === null) { - return false - } else if ( - !this.initializer.matchValue(node.initializer, [...keys, 'initializer']) - ) { - return false + return false; } - return true + return true; } } export function tsPropertySignature( key?: Matcher, typeAnnotation?: Matcher | null, - initializer?: Matcher | null ): Matcher { - return new TSPropertySignatureMatcher(key, typeAnnotation, initializer) + return new TSPropertySignatureMatcher(key, typeAnnotation); } export class TSQualifiedNameMatcher extends Matcher { constructor( private readonly left?: Matcher, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSQualifiedName { if (!t.isNode(node) || !t.isTSQualifiedName(node)) { - return false + return false; } - if (typeof this.left === 'undefined') { + if (typeof this.left === "undefined") { // undefined matcher means anything matches - } else if (!this.left.matchValue(node.left, [...keys, 'left'])) { - return false + } else if (!this.left.matchValue(node.left, [...keys, "left"])) { + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function tsQualifiedName( left?: Matcher, - right?: Matcher + right?: Matcher, ): Matcher { - return new TSQualifiedNameMatcher(left, right) + return new TSQualifiedNameMatcher(left, right); } export class TSRestTypeMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSRestType { if (!t.isNode(node) || !t.isTSRestType(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsRestType( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSRestTypeMatcher(typeAnnotation) + return new TSRestTypeMatcher(typeAnnotation); } export class TSSatisfiesExpressionMatcher extends Matcher { constructor( private readonly expression?: Matcher, - private readonly typeAnnotation?: Matcher + private readonly typeAnnotation?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSSatisfiesExpression { if (!t.isNode(node) || !t.isTSSatisfiesExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsSatisfiesExpression( expression?: Matcher, - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSSatisfiesExpressionMatcher(expression, typeAnnotation) + return new TSSatisfiesExpressionMatcher(expression, typeAnnotation); } export class TSStringKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSStringKeyword { if (!t.isNode(node) || !t.isTSStringKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsStringKeyword(): Matcher { - return new TSStringKeywordMatcher() + return new TSStringKeywordMatcher(); } export class TSSymbolKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSSymbolKeyword { if (!t.isNode(node) || !t.isTSSymbolKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsSymbolKeyword(): Matcher { - return new TSSymbolKeywordMatcher() + return new TSSymbolKeywordMatcher(); } export class TSThisTypeMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSThisType { if (!t.isNode(node) || !t.isTSThisType(node)) { - return false + return false; } - return true + return true; } } export function tsThisType(): Matcher { - return new TSThisTypeMatcher() + return new TSThisTypeMatcher(); } export class TSTupleTypeMatcher extends Matcher { constructor( private readonly elementTypes?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTupleType { if (!t.isNode(node) || !t.isTSTupleType(node)) { - return false + return false; } - if (typeof this.elementTypes === 'undefined') { + if (typeof this.elementTypes === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.elementTypes)) { if ( !tupleOf(...this.elementTypes).matchValue(node.elementTypes, [ ...keys, - 'elementTypes', + "elementTypes", ]) ) { - return false + return false; } } else if ( !this.elementTypes.matchValue(node.elementTypes, [ ...keys, - 'elementTypes', + "elementTypes", ]) ) { - return false + return false; } - return true + return true; } } export function tsTupleType( elementTypes?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new TSTupleTypeMatcher(elementTypes) + return new TSTupleTypeMatcher(elementTypes); } export class TSTypeAliasDeclarationMatcher extends Matcher { constructor( private readonly id?: Matcher, private readonly typeParameters?: Matcher | null, - private readonly typeAnnotation?: Matcher + private readonly typeAnnotation?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeAliasDeclaration { if (!t.isNode(node) || !t.isTSTypeAliasDeclaration(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsTypeAliasDeclaration( id?: Matcher, typeParameters?: Matcher | null, - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSTypeAliasDeclarationMatcher(id, typeParameters, typeAnnotation) + return new TSTypeAliasDeclarationMatcher(id, typeParameters, typeAnnotation); } export class TSTypeAnnotationMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeAnnotation { if (!t.isNode(node) || !t.isTSTypeAnnotation(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsTypeAnnotation( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSTypeAnnotationMatcher(typeAnnotation) + return new TSTypeAnnotationMatcher(typeAnnotation); } export class TSTypeAssertionMatcher extends Matcher { constructor( private readonly typeAnnotation?: Matcher, - private readonly expression?: Matcher + private readonly expression?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeAssertion { if (!t.isNode(node) || !t.isTSTypeAssertion(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - return true + return true; } } export function tsTypeAssertion( typeAnnotation?: Matcher, - expression?: Matcher + expression?: Matcher, ): Matcher { - return new TSTypeAssertionMatcher(typeAnnotation, expression) + return new TSTypeAssertionMatcher(typeAnnotation, expression); } export class TSTypeLiteralMatcher extends Matcher { constructor( private readonly members?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeLiteral { if (!t.isNode(node) || !t.isTSTypeLiteral(node)) { - return false + return false; } - if (typeof this.members === 'undefined') { + if (typeof this.members === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.members)) { if ( !tupleOf(...this.members).matchValue(node.members, [ ...keys, - 'members', + "members", ]) ) { - return false + return false; } - } else if (!this.members.matchValue(node.members, [...keys, 'members'])) { - return false + } else if (!this.members.matchValue(node.members, [...keys, "members"])) { + return false; } - return true + return true; } } export function tsTypeLiteral( - members?: Matcher> | Array> + members?: Matcher> | Array>, ): Matcher { - return new TSTypeLiteralMatcher(members) + return new TSTypeLiteralMatcher(members); } export class TSTypeOperatorMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeOperator { if (!t.isNode(node) || !t.isTSTypeOperator(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function tsTypeOperator( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TSTypeOperatorMatcher(typeAnnotation) + return new TSTypeOperatorMatcher(typeAnnotation); } export class TSTypeParameterMatcher extends Matcher { constructor( private readonly constraint?: Matcher | null, private readonly _default?: Matcher | null, - private readonly name?: Matcher | string + private readonly name?: Matcher | string, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeParameter { if (!t.isNode(node) || !t.isTSTypeParameter(node)) { - return false + return false; } - if (typeof this.constraint === 'undefined') { + if (typeof this.constraint === "undefined") { // undefined matcher means anything matches } else if (this.constraint === null) { // null matcher means we expect null value if (node.constraint !== null) { - return false + return false; } - } else if (node.constraint === null) { - return false } else if ( - !this.constraint.matchValue(node.constraint, [...keys, 'constraint']) + !this.constraint.matchValue(node.constraint, [...keys, "constraint"]) ) { - return false + return false; } - if (typeof this._default === 'undefined') { + if (typeof this._default === "undefined") { // undefined matcher means anything matches } else if (this._default === null) { // null matcher means we expect null value if (node.default !== null) { - return false + return false; } - } else if (node.default === null) { - return false - } else if (!this._default.matchValue(node.default, [...keys, 'default'])) { - return false + } else if (!this._default.matchValue(node.default, [...keys, "default"])) { + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (typeof this.name === 'string') { + } else if (typeof this.name === "string") { if (this.name !== node.name) { - return false + return false; } - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function tsTypeParameter( constraint?: Matcher | null, _default?: Matcher | null, - name?: Matcher | string + name?: Matcher | string, ): Matcher { - return new TSTypeParameterMatcher(constraint, _default, name) + return new TSTypeParameterMatcher(constraint, _default, name); } export class TSTypeParameterDeclarationMatcher extends Matcher { constructor( private readonly params?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeParameterDeclaration { if (!t.isNode(node) || !t.isTSTypeParameterDeclaration(node)) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - return true + return true; } } export function tsTypeParameterDeclaration( - params?: Matcher> | Array> + params?: + | Matcher> + | Array>, ): Matcher { - return new TSTypeParameterDeclarationMatcher(params) + return new TSTypeParameterDeclarationMatcher(params); } export class TSTypeParameterInstantiationMatcher extends Matcher { constructor( private readonly params?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeParameterInstantiation { if (!t.isNode(node) || !t.isTSTypeParameterInstantiation(node)) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - return true + return true; } } export function tsTypeParameterInstantiation( - params?: Matcher> | Array> + params?: Matcher> | Array>, ): Matcher { - return new TSTypeParameterInstantiationMatcher(params) + return new TSTypeParameterInstantiationMatcher(params); } export class TSTypePredicateMatcher extends Matcher { constructor( private readonly parameterName?: Matcher, private readonly typeAnnotation?: Matcher | null, - private readonly asserts?: Matcher | boolean | null + private readonly asserts?: Matcher | boolean | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypePredicate { if (!t.isNode(node) || !t.isTSTypePredicate(node)) { - return false + return false; } - if (typeof this.parameterName === 'undefined') { + if (typeof this.parameterName === "undefined") { // undefined matcher means anything matches } else if ( !this.parameterName.matchValue(node.parameterName, [ ...keys, - 'parameterName', + "parameterName", ]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if (this.typeAnnotation === null) { // null matcher means we expect null value if (node.typeAnnotation !== null) { - return false + return false; } - } else if (node.typeAnnotation === null) { - return false } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - if (typeof this.asserts === 'undefined') { + if (typeof this.asserts === "undefined") { // undefined matcher means anything matches - } else if (typeof this.asserts === 'boolean') { + } else if (typeof this.asserts === "boolean") { if (this.asserts !== node.asserts) { - return false + return false; } } else if (this.asserts === null) { // null matcher means we expect null value if (node.asserts !== null) { - return false + return false; } - } else if (node.asserts === null) { - return false - } else if (!this.asserts.matchValue(node.asserts, [...keys, 'asserts'])) { - return false + } else if (!this.asserts.matchValue(node.asserts, [...keys, "asserts"])) { + return false; } - return true + return true; } } export function tsTypePredicate( parameterName?: Matcher, typeAnnotation?: Matcher | null, - asserts?: Matcher | boolean | null + asserts?: Matcher | boolean | null, ): Matcher { - return new TSTypePredicateMatcher(parameterName, typeAnnotation, asserts) + return new TSTypePredicateMatcher(parameterName, typeAnnotation, asserts); } export class TSTypeQueryMatcher extends Matcher { constructor( private readonly exprName?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeQuery { if (!t.isNode(node) || !t.isTSTypeQuery(node)) { - return false + return false; } - if (typeof this.exprName === 'undefined') { + if (typeof this.exprName === "undefined") { // undefined matcher means anything matches } else if ( - !this.exprName.matchValue(node.exprName, [...keys, 'exprName']) + !this.exprName.matchValue(node.exprName, [...keys, "exprName"]) ) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function tsTypeQuery( exprName?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new TSTypeQueryMatcher(exprName, typeParameters) + return new TSTypeQueryMatcher(exprName, typeParameters); } export class TSTypeReferenceMatcher extends Matcher { constructor( private readonly typeName?: Matcher, - private readonly typeParameters?: Matcher | null + private readonly typeParameters?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSTypeReference { if (!t.isNode(node) || !t.isTSTypeReference(node)) { - return false + return false; } - if (typeof this.typeName === 'undefined') { + if (typeof this.typeName === "undefined") { // undefined matcher means anything matches } else if ( - !this.typeName.matchValue(node.typeName, [...keys, 'typeName']) + !this.typeName.matchValue(node.typeName, [...keys, "typeName"]) ) { - return false + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - return true + return true; } } export function tsTypeReference( typeName?: Matcher, - typeParameters?: Matcher | null + typeParameters?: Matcher | null, ): Matcher { - return new TSTypeReferenceMatcher(typeName, typeParameters) + return new TSTypeReferenceMatcher(typeName, typeParameters); } export class TSUndefinedKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSUndefinedKeyword { if (!t.isNode(node) || !t.isTSUndefinedKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsUndefinedKeyword(): Matcher { - return new TSUndefinedKeywordMatcher() + return new TSUndefinedKeywordMatcher(); } export class TSUnionTypeMatcher extends Matcher { constructor( - private readonly types?: Matcher> | Array> + private readonly types?: + | Matcher> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSUnionType { if (!t.isNode(node) || !t.isTSUnionType(node)) { - return false + return false; } - if (typeof this.types === 'undefined') { + if (typeof this.types === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.types)) { if ( !tupleOf(...this.types).matchValue(node.types, [ ...keys, - 'types', + "types", ]) ) { - return false + return false; } - } else if (!this.types.matchValue(node.types, [...keys, 'types'])) { - return false + } else if (!this.types.matchValue(node.types, [...keys, "types"])) { + return false; } - return true + return true; } } export function tsUnionType( - types?: Matcher> | Array> + types?: Matcher> | Array>, ): Matcher { - return new TSUnionTypeMatcher(types) + return new TSUnionTypeMatcher(types); } export class TSUnknownKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSUnknownKeyword { if (!t.isNode(node) || !t.isTSUnknownKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsUnknownKeyword(): Matcher { - return new TSUnknownKeywordMatcher() + return new TSUnknownKeywordMatcher(); } export class TSVoidKeywordMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TSVoidKeyword { if (!t.isNode(node) || !t.isTSVoidKeyword(node)) { - return false + return false; } - return true + return true; } } export function tsVoidKeyword(): Matcher { - return new TSVoidKeywordMatcher() + return new TSVoidKeywordMatcher(); } export class TaggedTemplateExpressionMatcher extends Matcher { constructor( private readonly tag?: Matcher, - private readonly quasi?: Matcher + private readonly quasi?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TaggedTemplateExpression { if (!t.isNode(node) || !t.isTaggedTemplateExpression(node)) { - return false + return false; } - if (typeof this.tag === 'undefined') { + if (typeof this.tag === "undefined") { // undefined matcher means anything matches - } else if (!this.tag.matchValue(node.tag, [...keys, 'tag'])) { - return false + } else if (!this.tag.matchValue(node.tag, [...keys, "tag"])) { + return false; } - if (typeof this.quasi === 'undefined') { + if (typeof this.quasi === "undefined") { // undefined matcher means anything matches - } else if (!this.quasi.matchValue(node.quasi, [...keys, 'quasi'])) { - return false + } else if (!this.quasi.matchValue(node.quasi, [...keys, "quasi"])) { + return false; } - return true + return true; } } export function taggedTemplateExpression( tag?: Matcher, - quasi?: Matcher + quasi?: Matcher, ): Matcher { - return new TaggedTemplateExpressionMatcher(tag, quasi) + return new TaggedTemplateExpressionMatcher(tag, quasi); } export class TemplateElementMatcher extends Matcher { constructor( private readonly value?: Matcher, - private readonly tail?: Matcher | boolean + private readonly tail?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TemplateElement { if (!t.isNode(node) || !t.isTemplateElement(node)) { - return false + return false; } - if (typeof this.value === 'undefined') { + if (typeof this.value === "undefined") { // undefined matcher means anything matches - } else if (!this.value.matchValue(node.value, [...keys, 'value'])) { - return false + } else if (!this.value.matchValue(node.value, [...keys, "value"])) { + return false; } - if (typeof this.tail === 'undefined') { + if (typeof this.tail === "undefined") { // undefined matcher means anything matches - } else if (typeof this.tail === 'boolean') { + } else if (typeof this.tail === "boolean") { if (this.tail !== node.tail) { - return false + return false; } - } else if (!this.tail.matchValue(node.tail, [...keys, 'tail'])) { - return false + } else if (!this.tail.matchValue(node.tail, [...keys, "tail"])) { + return false; } - return true + return true; } } export function templateElement( value?: Matcher, - tail?: Matcher | boolean + tail?: Matcher | boolean, ): Matcher { - return new TemplateElementMatcher(value, tail) + return new TemplateElementMatcher(value, tail); } export class TemplateLiteralMatcher extends Matcher { @@ -11073,52 +11014,52 @@ export class TemplateLiteralMatcher extends Matcher { | Array>, private readonly expressions?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TemplateLiteral { if (!t.isNode(node) || !t.isTemplateLiteral(node)) { - return false + return false; } - if (typeof this.quasis === 'undefined') { + if (typeof this.quasis === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.quasis)) { if ( !tupleOf(...this.quasis).matchValue(node.quasis, [ ...keys, - 'quasis', + "quasis", ]) ) { - return false + return false; } - } else if (!this.quasis.matchValue(node.quasis, [...keys, 'quasis'])) { - return false + } else if (!this.quasis.matchValue(node.quasis, [...keys, "quasis"])) { + return false; } - if (typeof this.expressions === 'undefined') { + if (typeof this.expressions === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.expressions)) { if ( !tupleOf(...this.expressions).matchValue(node.expressions, [ ...keys, - 'expressions', + "expressions", ]) ) { - return false + return false; } } else if ( - !this.expressions.matchValue(node.expressions, [...keys, 'expressions']) + !this.expressions.matchValue(node.expressions, [...keys, "expressions"]) ) { - return false + return false; } - return true + return true; } } @@ -11128,1066 +11069,1052 @@ export function templateLiteral( | Array>, expressions?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new TemplateLiteralMatcher(quasis, expressions) + return new TemplateLiteralMatcher(quasis, expressions); } export class ThisExpressionMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ThisExpression { if (!t.isNode(node) || !t.isThisExpression(node)) { - return false + return false; } - return true + return true; } } export function thisExpression(): Matcher { - return new ThisExpressionMatcher() + return new ThisExpressionMatcher(); } export class ThisTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ThisTypeAnnotation { if (!t.isNode(node) || !t.isThisTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function thisTypeAnnotation(): Matcher { - return new ThisTypeAnnotationMatcher() + return new ThisTypeAnnotationMatcher(); } export class ThrowStatementMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.ThrowStatement { if (!t.isNode(node) || !t.isThrowStatement(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function throwStatement( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new ThrowStatementMatcher(argument) + return new ThrowStatementMatcher(argument); } export class TopicReferenceMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TopicReference { if (!t.isNode(node) || !t.isTopicReference(node)) { - return false + return false; } - return true + return true; } } export function topicReference(): Matcher { - return new TopicReferenceMatcher() + return new TopicReferenceMatcher(); } export class TryStatementMatcher extends Matcher { constructor( private readonly block?: Matcher, private readonly handler?: Matcher | null, - private readonly finalizer?: Matcher | null + private readonly finalizer?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TryStatement { if (!t.isNode(node) || !t.isTryStatement(node)) { - return false + return false; } - if (typeof this.block === 'undefined') { + if (typeof this.block === "undefined") { // undefined matcher means anything matches - } else if (!this.block.matchValue(node.block, [...keys, 'block'])) { - return false + } else if (!this.block.matchValue(node.block, [...keys, "block"])) { + return false; } - if (typeof this.handler === 'undefined') { + if (typeof this.handler === "undefined") { // undefined matcher means anything matches } else if (this.handler === null) { // null matcher means we expect null value if (node.handler !== null) { - return false + return false; } - } else if (node.handler === null) { - return false - } else if (!this.handler.matchValue(node.handler, [...keys, 'handler'])) { - return false + } else if (!this.handler.matchValue(node.handler, [...keys, "handler"])) { + return false; } - if (typeof this.finalizer === 'undefined') { + if (typeof this.finalizer === "undefined") { // undefined matcher means anything matches } else if (this.finalizer === null) { // null matcher means we expect null value if (node.finalizer !== null) { - return false + return false; } - } else if (node.finalizer === null) { - return false } else if ( - !this.finalizer.matchValue(node.finalizer, [...keys, 'finalizer']) + !this.finalizer.matchValue(node.finalizer, [...keys, "finalizer"]) ) { - return false + return false; } - return true + return true; } } export function tryStatement( block?: Matcher, handler?: Matcher | null, - finalizer?: Matcher | null + finalizer?: Matcher | null, ): Matcher { - return new TryStatementMatcher(block, handler, finalizer) + return new TryStatementMatcher(block, handler, finalizer); } export class TupleExpressionMatcher extends Matcher { constructor( private readonly elements?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TupleExpression { if (!t.isNode(node) || !t.isTupleExpression(node)) { - return false + return false; } - if (typeof this.elements === 'undefined') { + if (typeof this.elements === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.elements)) { if ( !tupleOf(...this.elements).matchValue(node.elements, [ ...keys, - 'elements', + "elements", ]) ) { - return false + return false; } } else if ( - !this.elements.matchValue(node.elements, [...keys, 'elements']) + !this.elements.matchValue(node.elements, [...keys, "elements"]) ) { - return false + return false; } - return true + return true; } } export function tupleExpression( elements?: | Matcher> - | Array | Matcher> + | Array | Matcher>, ): Matcher { - return new TupleExpressionMatcher(elements) + return new TupleExpressionMatcher(elements); } export class TupleTypeAnnotationMatcher extends Matcher { constructor( private readonly types?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TupleTypeAnnotation { if (!t.isNode(node) || !t.isTupleTypeAnnotation(node)) { - return false + return false; } - if (typeof this.types === 'undefined') { + if (typeof this.types === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.types)) { if ( !tupleOf(...this.types).matchValue(node.types, [ ...keys, - 'types', + "types", ]) ) { - return false + return false; } - } else if (!this.types.matchValue(node.types, [...keys, 'types'])) { - return false + } else if (!this.types.matchValue(node.types, [...keys, "types"])) { + return false; } - return true + return true; } } export function tupleTypeAnnotation( - types?: Matcher> | Array> + types?: Matcher> | Array>, ): Matcher { - return new TupleTypeAnnotationMatcher(types) + return new TupleTypeAnnotationMatcher(types); } export class TypeAliasMatcher extends Matcher { constructor( private readonly id?: Matcher, private readonly typeParameters?: Matcher | null, - private readonly right?: Matcher + private readonly right?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeAlias { if (!t.isNode(node) || !t.isTypeAlias(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.typeParameters === 'undefined') { + if (typeof this.typeParameters === "undefined") { // undefined matcher means anything matches } else if (this.typeParameters === null) { // null matcher means we expect null value if (node.typeParameters !== null) { - return false + return false; } - } else if (node.typeParameters === null) { - return false } else if ( !this.typeParameters.matchValue(node.typeParameters, [ ...keys, - 'typeParameters', + "typeParameters", ]) ) { - return false + return false; } - if (typeof this.right === 'undefined') { + if (typeof this.right === "undefined") { // undefined matcher means anything matches - } else if (!this.right.matchValue(node.right, [...keys, 'right'])) { - return false + } else if (!this.right.matchValue(node.right, [...keys, "right"])) { + return false; } - return true + return true; } } export function typeAlias( id?: Matcher, typeParameters?: Matcher | null, - right?: Matcher + right?: Matcher, ): Matcher { - return new TypeAliasMatcher(id, typeParameters, right) + return new TypeAliasMatcher(id, typeParameters, right); } export class TypeAnnotationMatcher extends Matcher { constructor(private readonly typeAnnotation?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeAnnotation { if (!t.isNode(node) || !t.isTypeAnnotation(node)) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function typeAnnotation( - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TypeAnnotationMatcher(typeAnnotation) + return new TypeAnnotationMatcher(typeAnnotation); } export class TypeCastExpressionMatcher extends Matcher { constructor( private readonly expression?: Matcher, - private readonly typeAnnotation?: Matcher + private readonly typeAnnotation?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeCastExpression { if (!t.isNode(node) || !t.isTypeCastExpression(node)) { - return false + return false; } - if (typeof this.expression === 'undefined') { + if (typeof this.expression === "undefined") { // undefined matcher means anything matches } else if ( - !this.expression.matchValue(node.expression, [...keys, 'expression']) + !this.expression.matchValue(node.expression, [...keys, "expression"]) ) { - return false + return false; } - if (typeof this.typeAnnotation === 'undefined') { + if (typeof this.typeAnnotation === "undefined") { // undefined matcher means anything matches } else if ( !this.typeAnnotation.matchValue(node.typeAnnotation, [ ...keys, - 'typeAnnotation', + "typeAnnotation", ]) ) { - return false + return false; } - return true + return true; } } export function typeCastExpression( expression?: Matcher, - typeAnnotation?: Matcher + typeAnnotation?: Matcher, ): Matcher { - return new TypeCastExpressionMatcher(expression, typeAnnotation) + return new TypeCastExpressionMatcher(expression, typeAnnotation); } export class TypeParameterMatcher extends Matcher { constructor( private readonly bound?: Matcher | null, private readonly _default?: Matcher | null, - private readonly variance?: Matcher | null + private readonly variance?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeParameter { if (!t.isNode(node) || !t.isTypeParameter(node)) { - return false + return false; } - if (typeof this.bound === 'undefined') { + if (typeof this.bound === "undefined") { // undefined matcher means anything matches } else if (this.bound === null) { // null matcher means we expect null value if (node.bound !== null) { - return false + return false; } - } else if (node.bound === null) { - return false - } else if (!this.bound.matchValue(node.bound, [...keys, 'bound'])) { - return false + } else if (!this.bound.matchValue(node.bound, [...keys, "bound"])) { + return false; } - if (typeof this._default === 'undefined') { + if (typeof this._default === "undefined") { // undefined matcher means anything matches } else if (this._default === null) { // null matcher means we expect null value if (node.default !== null) { - return false + return false; } - } else if (node.default === null) { - return false - } else if (!this._default.matchValue(node.default, [...keys, 'default'])) { - return false + } else if (!this._default.matchValue(node.default, [...keys, "default"])) { + return false; } - if (typeof this.variance === 'undefined') { + if (typeof this.variance === "undefined") { // undefined matcher means anything matches } else if (this.variance === null) { // null matcher means we expect null value if (node.variance !== null) { - return false + return false; } - } else if (node.variance === null) { - return false } else if ( - !this.variance.matchValue(node.variance, [...keys, 'variance']) + !this.variance.matchValue(node.variance, [...keys, "variance"]) ) { - return false + return false; } - return true + return true; } } export function typeParameter( bound?: Matcher | null, _default?: Matcher | null, - variance?: Matcher | null + variance?: Matcher | null, ): Matcher { - return new TypeParameterMatcher(bound, _default, variance) + return new TypeParameterMatcher(bound, _default, variance); } export class TypeParameterDeclarationMatcher extends Matcher { constructor( private readonly params?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeParameterDeclaration { if (!t.isNode(node) || !t.isTypeParameterDeclaration(node)) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - return true + return true; } } export function typeParameterDeclaration( - params?: Matcher> | Array> + params?: Matcher> | Array>, ): Matcher { - return new TypeParameterDeclarationMatcher(params) + return new TypeParameterDeclarationMatcher(params); } export class TypeParameterInstantiationMatcher extends Matcher { constructor( private readonly params?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeParameterInstantiation { if (!t.isNode(node) || !t.isTypeParameterInstantiation(node)) { - return false + return false; } - if (typeof this.params === 'undefined') { + if (typeof this.params === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.params)) { if ( !tupleOf(...this.params).matchValue(node.params, [ ...keys, - 'params', + "params", ]) ) { - return false + return false; } - } else if (!this.params.matchValue(node.params, [...keys, 'params'])) { - return false + } else if (!this.params.matchValue(node.params, [...keys, "params"])) { + return false; } - return true + return true; } } export function typeParameterInstantiation( - params?: Matcher> | Array> + params?: Matcher> | Array>, ): Matcher { - return new TypeParameterInstantiationMatcher(params) + return new TypeParameterInstantiationMatcher(params); } export class TypeofTypeAnnotationMatcher extends Matcher { constructor(private readonly argument?: Matcher) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.TypeofTypeAnnotation { if (!t.isNode(node) || !t.isTypeofTypeAnnotation(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - return true + return true; } } export function typeofTypeAnnotation( - argument?: Matcher + argument?: Matcher, ): Matcher { - return new TypeofTypeAnnotationMatcher(argument) + return new TypeofTypeAnnotationMatcher(argument); } export class UnaryExpressionMatcher extends Matcher { constructor( private readonly operator?: - | Matcher<'void' | 'throw' | 'delete' | '!' | '+' | '-' | '~' | 'typeof'> + | Matcher<"void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"> | string, private readonly argument?: Matcher, - private readonly prefix?: Matcher | boolean + private readonly prefix?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.UnaryExpression { if (!t.isNode(node) || !t.isUnaryExpression(node)) { - return false + return false; } - if (typeof this.operator === 'undefined') { + if (typeof this.operator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.operator === 'string') { + } else if (typeof this.operator === "string") { if (this.operator !== node.operator) { - return false + return false; } } else if ( - !this.operator.matchValue(node.operator, [...keys, 'operator']) + !this.operator.matchValue(node.operator, [...keys, "operator"]) ) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - if (typeof this.prefix === 'undefined') { + if (typeof this.prefix === "undefined") { // undefined matcher means anything matches - } else if (typeof this.prefix === 'boolean') { + } else if (typeof this.prefix === "boolean") { if (this.prefix !== node.prefix) { - return false + return false; } - } else if (!this.prefix.matchValue(node.prefix, [...keys, 'prefix'])) { - return false + } else if (!this.prefix.matchValue(node.prefix, [...keys, "prefix"])) { + return false; } - return true + return true; } } export function unaryExpression( operator?: - | Matcher<'void' | 'throw' | 'delete' | '!' | '+' | '-' | '~' | 'typeof'> + | Matcher<"void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"> | string, argument?: Matcher, - prefix?: Matcher | boolean + prefix?: Matcher | boolean, ): Matcher { - return new UnaryExpressionMatcher(operator, argument, prefix) + return new UnaryExpressionMatcher(operator, argument, prefix); } export class UnionTypeAnnotationMatcher extends Matcher { constructor( private readonly types?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.UnionTypeAnnotation { if (!t.isNode(node) || !t.isUnionTypeAnnotation(node)) { - return false + return false; } - if (typeof this.types === 'undefined') { + if (typeof this.types === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.types)) { if ( !tupleOf(...this.types).matchValue(node.types, [ ...keys, - 'types', + "types", ]) ) { - return false + return false; } - } else if (!this.types.matchValue(node.types, [...keys, 'types'])) { - return false + } else if (!this.types.matchValue(node.types, [...keys, "types"])) { + return false; } - return true + return true; } } export function unionTypeAnnotation( - types?: Matcher> | Array> + types?: Matcher> | Array>, ): Matcher { - return new UnionTypeAnnotationMatcher(types) + return new UnionTypeAnnotationMatcher(types); } export class UpdateExpressionMatcher extends Matcher { constructor( - private readonly operator?: Matcher<'++' | '--'> | string, + private readonly operator?: Matcher<"++" | "--"> | string, private readonly argument?: Matcher, - private readonly prefix?: Matcher | boolean + private readonly prefix?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.UpdateExpression { if (!t.isNode(node) || !t.isUpdateExpression(node)) { - return false + return false; } - if (typeof this.operator === 'undefined') { + if (typeof this.operator === "undefined") { // undefined matcher means anything matches - } else if (typeof this.operator === 'string') { + } else if (typeof this.operator === "string") { if (this.operator !== node.operator) { - return false + return false; } } else if ( - !this.operator.matchValue(node.operator, [...keys, 'operator']) + !this.operator.matchValue(node.operator, [...keys, "operator"]) ) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - if (typeof this.prefix === 'undefined') { + if (typeof this.prefix === "undefined") { // undefined matcher means anything matches - } else if (typeof this.prefix === 'boolean') { + } else if (typeof this.prefix === "boolean") { if (this.prefix !== node.prefix) { - return false + return false; } - } else if (!this.prefix.matchValue(node.prefix, [...keys, 'prefix'])) { - return false + } else if (!this.prefix.matchValue(node.prefix, [...keys, "prefix"])) { + return false; } - return true + return true; } } export function updateExpression( - operator?: Matcher<'++' | '--'> | string, + operator?: Matcher<"++" | "--"> | string, argument?: Matcher, - prefix?: Matcher | boolean + prefix?: Matcher | boolean, ): Matcher { - return new UpdateExpressionMatcher(operator, argument, prefix) + return new UpdateExpressionMatcher(operator, argument, prefix); } export class V8IntrinsicIdentifierMatcher extends Matcher { constructor(private readonly name?: Matcher | string) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.V8IntrinsicIdentifier { if (!t.isNode(node) || !t.isV8IntrinsicIdentifier(node)) { - return false + return false; } - if (typeof this.name === 'undefined') { + if (typeof this.name === "undefined") { // undefined matcher means anything matches - } else if (typeof this.name === 'string') { + } else if (typeof this.name === "string") { if (this.name !== node.name) { - return false + return false; } - } else if (!this.name.matchValue(node.name, [...keys, 'name'])) { - return false + } else if (!this.name.matchValue(node.name, [...keys, "name"])) { + return false; } - return true + return true; } } export function v8IntrinsicIdentifier( - name?: Matcher | string + name?: Matcher | string, ): Matcher { - return new V8IntrinsicIdentifierMatcher(name) + return new V8IntrinsicIdentifierMatcher(name); } export class VariableDeclarationMatcher extends Matcher { constructor( - private readonly kind?: Matcher<'var' | 'let' | 'const' | 'using'> | string, + private readonly kind?: + | Matcher<"var" | "let" | "const" | "using" | "await using"> + | string, private readonly declarations?: | Matcher> - | Array> + | Array>, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.VariableDeclaration { if (!t.isNode(node) || !t.isVariableDeclaration(node)) { - return false + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - if (typeof this.declarations === 'undefined') { + if (typeof this.declarations === "undefined") { // undefined matcher means anything matches } else if (Array.isArray(this.declarations)) { if ( !tupleOf(...this.declarations).matchValue(node.declarations, [ ...keys, - 'declarations', + "declarations", ]) ) { - return false + return false; } } else if ( !this.declarations.matchValue(node.declarations, [ ...keys, - 'declarations', + "declarations", ]) ) { - return false + return false; } - return true + return true; } } export function variableDeclaration( - kind?: Matcher<'var' | 'let' | 'const' | 'using'> | string, + kind?: Matcher<"var" | "let" | "const" | "using" | "await using"> | string, declarations?: | Matcher> - | Array> + | Array>, ): Matcher { - return new VariableDeclarationMatcher(kind, declarations) + return new VariableDeclarationMatcher(kind, declarations); } export class VariableDeclaratorMatcher extends Matcher { constructor( private readonly id?: Matcher, - private readonly init?: Matcher | null + private readonly init?: Matcher | null, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.VariableDeclarator { if (!t.isNode(node) || !t.isVariableDeclarator(node)) { - return false + return false; } - if (typeof this.id === 'undefined') { + if (typeof this.id === "undefined") { // undefined matcher means anything matches - } else if (!this.id.matchValue(node.id, [...keys, 'id'])) { - return false + } else if (!this.id.matchValue(node.id, [...keys, "id"])) { + return false; } - if (typeof this.init === 'undefined') { + if (typeof this.init === "undefined") { // undefined matcher means anything matches } else if (this.init === null) { // null matcher means we expect null value if (node.init !== null) { - return false + return false; } - } else if (node.init === null) { - return false - } else if (!this.init.matchValue(node.init, [...keys, 'init'])) { - return false + } else if (!this.init.matchValue(node.init, [...keys, "init"])) { + return false; } - return true + return true; } } export function variableDeclarator( id?: Matcher, - init?: Matcher | null + init?: Matcher | null, ): Matcher { - return new VariableDeclaratorMatcher(id, init) + return new VariableDeclaratorMatcher(id, init); } export class VarianceMatcher extends Matcher { - constructor(private readonly kind?: Matcher<'minus' | 'plus'> | string) { - super() + constructor(private readonly kind?: Matcher<"minus" | "plus"> | string) { + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.Variance { if (!t.isNode(node) || !t.isVariance(node)) { - return false + return false; } - if (typeof this.kind === 'undefined') { + if (typeof this.kind === "undefined") { // undefined matcher means anything matches - } else if (typeof this.kind === 'string') { + } else if (typeof this.kind === "string") { if (this.kind !== node.kind) { - return false + return false; } - } else if (!this.kind.matchValue(node.kind, [...keys, 'kind'])) { - return false + } else if (!this.kind.matchValue(node.kind, [...keys, "kind"])) { + return false; } - return true + return true; } } export function variance( - kind?: Matcher<'minus' | 'plus'> | string + kind?: Matcher<"minus" | "plus"> | string, ): Matcher { - return new VarianceMatcher(kind) + return new VarianceMatcher(kind); } export class VoidTypeAnnotationMatcher extends Matcher { constructor() { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.VoidTypeAnnotation { if (!t.isNode(node) || !t.isVoidTypeAnnotation(node)) { - return false + return false; } - return true + return true; } } export function voidTypeAnnotation(): Matcher { - return new VoidTypeAnnotationMatcher() + return new VoidTypeAnnotationMatcher(); } export class WhileStatementMatcher extends Matcher { constructor( private readonly test?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.WhileStatement { if (!t.isNode(node) || !t.isWhileStatement(node)) { - return false + return false; } - if (typeof this.test === 'undefined') { + if (typeof this.test === "undefined") { // undefined matcher means anything matches - } else if (!this.test.matchValue(node.test, [...keys, 'test'])) { - return false + } else if (!this.test.matchValue(node.test, [...keys, "test"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function whileStatement( test?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new WhileStatementMatcher(test, body) + return new WhileStatementMatcher(test, body); } export class WithStatementMatcher extends Matcher { constructor( private readonly object?: Matcher, - private readonly body?: Matcher + private readonly body?: Matcher, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.WithStatement { if (!t.isNode(node) || !t.isWithStatement(node)) { - return false + return false; } - if (typeof this.object === 'undefined') { + if (typeof this.object === "undefined") { // undefined matcher means anything matches - } else if (!this.object.matchValue(node.object, [...keys, 'object'])) { - return false + } else if (!this.object.matchValue(node.object, [...keys, "object"])) { + return false; } - if (typeof this.body === 'undefined') { + if (typeof this.body === "undefined") { // undefined matcher means anything matches - } else if (!this.body.matchValue(node.body, [...keys, 'body'])) { - return false + } else if (!this.body.matchValue(node.body, [...keys, "body"])) { + return false; } - return true + return true; } } export function withStatement( object?: Matcher, - body?: Matcher + body?: Matcher, ): Matcher { - return new WithStatementMatcher(object, body) + return new WithStatementMatcher(object, body); } export class YieldExpressionMatcher extends Matcher { constructor( private readonly argument?: Matcher | null, - private readonly delegate?: Matcher | boolean + private readonly delegate?: Matcher | boolean, ) { - super() + super(); } matchValue( node: unknown, - keys: ReadonlyArray + keys: ReadonlyArray, ): node is t.YieldExpression { if (!t.isNode(node) || !t.isYieldExpression(node)) { - return false + return false; } - if (typeof this.argument === 'undefined') { + if (typeof this.argument === "undefined") { // undefined matcher means anything matches } else if (this.argument === null) { // null matcher means we expect null value if (node.argument !== null) { - return false + return false; } - } else if (node.argument === null) { - return false } else if ( - !this.argument.matchValue(node.argument, [...keys, 'argument']) + !this.argument.matchValue(node.argument, [...keys, "argument"]) ) { - return false + return false; } - if (typeof this.delegate === 'undefined') { + if (typeof this.delegate === "undefined") { // undefined matcher means anything matches - } else if (typeof this.delegate === 'boolean') { + } else if (typeof this.delegate === "boolean") { if (this.delegate !== node.delegate) { - return false + return false; } } else if ( - !this.delegate.matchValue(node.delegate, [...keys, 'delegate']) + !this.delegate.matchValue(node.delegate, [...keys, "delegate"]) ) { - return false + return false; } - return true + return true; } } export function yieldExpression( argument?: Matcher | null, - delegate?: Matcher | boolean + delegate?: Matcher | boolean, ): Matcher { - return new YieldExpressionMatcher(argument, delegate) + return new YieldExpressionMatcher(argument, delegate); } diff --git a/packages/matchers/src/matchers/index.ts b/packages/matchers/src/matchers/index.ts index 94928b86..f6d677ac 100644 --- a/packages/matchers/src/matchers/index.ts +++ b/packages/matchers/src/matchers/index.ts @@ -6,7 +6,7 @@ export { anyStatement } from './anyStatement' export { anyString } from './anyString' export { anything } from './anything' export { arrayOf } from './arrayOf' -export { capture, CaptureBase, CapturedMatcher } from './capture' +export { capture, type CaptureBase, CapturedMatcher } from './capture' export { containerOf } from './containerOf' export { fromCapture } from './fromCapture' export { Function, function } from './function' diff --git a/packages/matchers/src/matchers/or.ts b/packages/matchers/src/matchers/or.ts index 96703e88..906147ea 100644 --- a/packages/matchers/src/matchers/or.ts +++ b/packages/matchers/src/matchers/or.ts @@ -14,7 +14,8 @@ export class OrMatcher | T>> extends Matcher { if (matcherOrValue.matchValue(value, keys)) { return true } - } else if (matcherOrValue === value) { + } + else if (matcherOrValue === value) { return true } } @@ -26,26 +27,64 @@ export function or(): Matcher export function or(first: Matcher | T): Matcher export function or( first: Matcher | T, - second: Matcher | U + second: Matcher | U, ): Matcher export function or( first: Matcher | T, second: Matcher | U, - third: Matcher | V + third: Matcher | V, ): Matcher export function or( first: Matcher | T, second: Matcher | U, third: Matcher | V, - fourth: Matcher | W + fourth: Matcher | W, ): Matcher export function or( first: Matcher | T, second: Matcher | U, third: Matcher | V, fourth: Matcher | W, - fifth: Matcher | X + fifth: Matcher | X, ): Matcher +export function or( + first: Matcher | T, + second: Matcher | U, + third: Matcher | V, + fourth: Matcher | W, + fifth: Matcher | X, + sixth: Matcher | Y, +): Matcher +export function or( + first: Matcher | T, + second: Matcher | U, + third: Matcher | V, + fourth: Matcher | W, + fifth: Matcher | X, + sixth: Matcher | Y, + seventh: Matcher | Z, +): Matcher +export function or( + first: Matcher | T, + second: Matcher | U, + third: Matcher | V, + fourth: Matcher | W, + fifth: Matcher | X, + sixth: Matcher | Y, + seventh: Matcher | Z, + eighth: Matcher | A, +): Matcher +export function or( + first: Matcher | T, + second: Matcher | U, + third: Matcher | V, + fourth: Matcher | W, + fifth: Matcher | X, + sixth: Matcher | Y, + seventh: Matcher | Z, + eighth: Matcher | A, + nineth: Matcher | B, +): Matcher export function or | T>>( ...matchersOrValues: A ): Matcher { diff --git a/packages/matchers/src/matchers/slice.ts b/packages/matchers/src/matchers/slice.ts index 150a8e65..d4605970 100644 --- a/packages/matchers/src/matchers/slice.ts +++ b/packages/matchers/src/matchers/slice.ts @@ -1,11 +1,11 @@ -import { Matcher } from './Matcher' import { anything } from './anything' +import { Matcher } from './Matcher' export class SliceMatcher extends Matcher { constructor( readonly min: number, readonly max: number, - readonly matcher: Matcher + readonly matcher: Matcher, ) { super() } @@ -26,7 +26,7 @@ export class SliceMatcher extends Matcher { * ``` */ export function zeroOrMore( - matcher: Matcher = anything() + matcher: Matcher = anything(), ): SliceMatcher { return new SliceMatcher(0, Infinity, matcher) } @@ -42,7 +42,7 @@ export function zeroOrMore( * ``` */ export function oneOrMore( - matcher: Matcher = anything() + matcher: Matcher = anything(), ): SliceMatcher { return new SliceMatcher(1, Infinity, matcher) } @@ -66,11 +66,7 @@ export interface SliceOptions { * m.anyList([m.anyString(), m.slice({ min: 1, max: 2 })]) * ``` */ -export function slice({ - min = 0, - max = min, - matcher = anything(), -}: SliceOptions): SliceMatcher +export function slice(options: SliceOptions): SliceMatcher /** * Match a slice of an array of the given length. For use with `anyList`. @@ -96,7 +92,7 @@ export function slice(length: number, matcher?: Matcher): SliceMatcher */ export function slice( optionsOrLength: SliceOptions | number, - matcherOrUndefined?: Matcher + matcherOrUndefined?: Matcher, ): SliceMatcher { let min: number let max: number @@ -106,15 +102,17 @@ export function slice( min = optionsOrLength max = optionsOrLength matcher = matcherOrUndefined ?? anything() - } else if ( - typeof optionsOrLength === 'object' && - typeof matcherOrUndefined === 'undefined' + } + else if ( + typeof optionsOrLength === 'object' + && typeof matcherOrUndefined === 'undefined' ) { min = optionsOrLength.min ?? 0 max = optionsOrLength.max ?? Infinity matcher = optionsOrLength.matcher ?? anything() - } else { - throw new Error('Invalid arguments') + } + else { + throw new TypeError('Invalid arguments') } return new SliceMatcher(min, max, matcher) diff --git a/packages/matchers/src/matchers/tupleOf.ts b/packages/matchers/src/matchers/tupleOf.ts index d0915fbc..971ed6ee 100644 --- a/packages/matchers/src/matchers/tupleOf.ts +++ b/packages/matchers/src/matchers/tupleOf.ts @@ -2,7 +2,7 @@ import { Matcher } from './Matcher' export class TupleOfMatcher< T, - A extends Array = Array + A extends Array = Array, > extends Matcher { private readonly matchers: Array> @@ -22,7 +22,7 @@ export class TupleOfMatcher< for (let i = 0; i < this.matchers.length; i++) { const matcher = this.matchers[i] - const element = value[i] + const element: unknown = value[i] if (!matcher.matchValue(element, [...keys, i])) { return false diff --git a/packages/matchers/src/utils/distributeAcrossSlices.ts b/packages/matchers/src/utils/distributeAcrossSlices.ts index 5e4fda6a..aec731bc 100644 --- a/packages/matchers/src/utils/distributeAcrossSlices.ts +++ b/packages/matchers/src/utils/distributeAcrossSlices.ts @@ -1,21 +1,23 @@ -import { SliceMatcher } from '../matchers/slice' +import type { SliceMatcher } from '../matchers/slice' /** * Iterates through the possible allocations of `available` across `slices`. */ export function* distributeAcrossSlices( slices: Array>, - available: number + available: number, ): IterableIterator> { if (slices.length === 0) { yield [] - } else if (slices.length === 1) { + } + else if (slices.length === 1) { const spacer = slices[0] if (spacer.min <= available && available <= spacer.max) { yield [available] } - } else { + } + else { const last = slices[slices.length - 1] for ( @@ -27,7 +29,7 @@ export function* distributeAcrossSlices( for (const allButLastAllocations of distributeAcrossSlices( allButLast, - available - allocateToLast + available - allocateToLast, )) { yield [...allButLastAllocations, allocateToLast] } diff --git a/packages/matchers/src/utils/match.ts b/packages/matchers/src/utils/match.ts index 4c669a4b..9d3615a1 100644 --- a/packages/matchers/src/utils/match.ts +++ b/packages/matchers/src/utils/match.ts @@ -1,4 +1,4 @@ -import * as m from '../matchers' +import type * as m from '../matchers' /** * This helper makes it easier to use a matcher together with captured values, @@ -13,7 +13,7 @@ import * as m from '../matchers' * * @example * - * import * as m from '@codemod/matchers'; + * import * as m from '@codemod-esm/matchers'; * * let id: m.CapturedMatcher; * const idPlusIdMatcher = m.binaryExpression( @@ -36,7 +36,7 @@ export function match( matcher: m.Matcher, captures: { [K in keyof C]: m.CapturedMatcher }, value: T, - callback: (captures: C) => void + callback: (captures: C) => void, ): void { if (matcher.match(value)) { const capturedValues = {} as C diff --git a/packages/matchers/src/utils/matchPath.ts b/packages/matchers/src/utils/matchPath.ts index 9a24102e..470d4fd2 100644 --- a/packages/matchers/src/utils/matchPath.ts +++ b/packages/matchers/src/utils/matchPath.ts @@ -1,6 +1,6 @@ -import { NodePath } from '@babel/core' -import * as t from '@babel/types' -import * as m from '../matchers' +import type { NodePath } from '@babel/traverse' +import type * as t from '@babel/types' +import type * as m from '../matchers' export type CapturedNodePaths = { [K in keyof C]: C[K] extends t.Node ? NodePath : C[K] @@ -14,7 +14,7 @@ export type CapturedMatchers = { [K in keyof C]: m.CapturedMatcher } * * @example * - * import * as m from '@codemod/matchers'; + * import * as m from '@codemod-esm/matchers'; * import { PluginObj } from '@babel/core'; * * const negativeOneArgument = m.capture(m.numericLiteral(-1)); @@ -41,22 +41,22 @@ export function matchPath( matcher: m.Matcher, captures: CapturedMatchers, value: NodePath, - callback: (paths: CapturedNodePaths) => void + callback: (paths: CapturedNodePaths) => void, ): void export function matchPath( matcher: m.Matcher>, captures: CapturedMatchers, value: Array>, - callback: (paths: CapturedNodePaths) => void + callback: (paths: CapturedNodePaths) => void, ): void export function matchPath( matcher: m.Matcher>, captures: CapturedMatchers, value: NodePath | Array>, - callback: (paths: CapturedNodePaths) => void + callback: (paths: CapturedNodePaths) => void, ): void { const toMatch = Array.isArray(value) - ? value.map((element) => element.node) + ? value.map(element => element.node) : value.node if (matcher.match(toMatch)) { const capturedPaths = {} as CapturedNodePaths @@ -67,7 +67,7 @@ export function matchPath( if (current !== undefined && currentKeys !== undefined) { capturedPaths[key as keyof C] = extractCapturedPath( value, - currentKeys + currentKeys, ) } } @@ -79,45 +79,50 @@ export function matchPath( function extractCapturedPath( value: NodePath | Array>, - keys: ReadonlyArray + keys: ReadonlyArray, ): C[keyof C] extends t.Node ? NodePath : C[keyof C] { let capturedPath: NodePath | Array> = value for (const [i, key] of keys.entries()) { if (typeof key === 'string') { if (Array.isArray(capturedPath)) { - throw new Error( + throw new TypeError( `failed to get '${keys.join('.')}'; at '${keys .slice(0, i + 1) - .join('.')}' expected a NodePath but got an array` + .join('.')}' expected a NodePath but got an array`, ) } - capturedPath = capturedPath.get(key as string) - } else if (typeof key === 'number') { + capturedPath = capturedPath.get(key) + } + else if (typeof key === 'number') { if (!Array.isArray(capturedPath)) { - throw new Error( + throw new TypeError( `failed to get '${keys.join('.')}'; at '${keys .slice(0, i + 1) - .join('.')}' expected an array but got a NodePath` + .join('.')}' expected an array but got a NodePath`, ) } capturedPath = capturedPath[key] - } else { - throw new Error( + } + else { + throw new TypeError( `failed to get '${keys.join('.')}'; key '${String( - key - )}' is neither a string nor a number, not ${typeof key}` + key, + )}' is neither a string nor a number, not ${typeof key}`, ) } } if (!Array.isArray(capturedPath) && typeof capturedPath.node !== 'object') { + // eslint-disable-next-line ts/no-unsafe-return return capturedPath.node as C[keyof C] extends t.Node ? NodePath : C[keyof C] - } else { + } + else { + // eslint-disable-next-line ts/no-unsafe-return return capturedPath as C[keyof C] extends t.Node ? NodePath : C[keyof C] diff --git a/packages/matchers/tsconfig.build.json b/packages/matchers/tsconfig.build.json index 4484fc90..0fb26be5 100644 --- a/packages/matchers/tsconfig.build.json +++ b/packages/matchers/tsconfig.build.json @@ -1,17 +1,27 @@ { "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], "compilerOptions": { - "noEmit": false, "rootDir": "src", - "outDir": "build", "declaration": true, + "noEmit": false, + "outDir": "dist", "sourceMap": true }, "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { + "path": "../core/tsconfig.build.json" + }, + { + "path": "../parser/tsconfig.build.json" + }, + { + "path": "../utils/tsconfig.build.json" + } + ], + "include": [ + "src" + ], + "exclude": [ + "src/__tests__" ] } diff --git a/packages/matchers/tsconfig.json b/packages/matchers/tsconfig.json index 4d96d550..57c3cd59 100644 --- a/packages/matchers/tsconfig.json +++ b/packages/matchers/tsconfig.json @@ -1,16 +1,6 @@ { - "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "composite": true, - "noEmit": true, - "strict": true, - "esModuleInterop": true - }, - "exclude": ["build"], - "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + "extends": "../../tsconfig.json", + "exclude": [ + "dist" ] } diff --git a/packages/parser/.eslintignore b/packages/parser/.eslintignore deleted file mode 100644 index 5498e0f4..00000000 --- a/packages/parser/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build -coverage diff --git a/packages/parser/README.md b/packages/parser/README.md index f2505866..a64f0ca0 100644 --- a/packages/parser/README.md +++ b/packages/parser/README.md @@ -13,7 +13,7 @@ $ npm install @codemod/parser ## Usage ```ts -import { parse } from '@codemod/parser' +import { parse } from '@codemod-esm/parser' console.log(parse('a ?? b').program.body[0].expression.operator) // '??' ``` diff --git a/packages/parser/jest.config.js b/packages/parser/jest.config.js deleted file mode 100644 index 8ba8a00a..00000000 --- a/packages/parser/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, -} diff --git a/packages/parser/package.json b/packages/parser/package.json index ea8c27fb..1349edf4 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,35 +1,35 @@ { - "name": "@codemod/parser", - "version": "1.4.1", + "name": "@codemod-esm/parser", + "type": "module", + "version": "1.4.3", "description": "Wrapper around @babel/parser that allows parsing everything.", - "repository": "https://github.com/codemod-js/codemod", - "license": "Apache-2.0", "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", + "license": "Apache-2.0", + "repository": "https://github.com/codemod-js/codemod", + "exports": { + "default": "./dist/index.js" + }, + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "build" + "dist" ], "scripts": { "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", + "clean": "rimraf dist tsconfig.build.tsbuildinfo", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" + "test": "bun test" }, "dependencies": { - "@babel/parser": "^7.20.15" + "@babel/parser": "^7.26.9" }, "devDependencies": { - "@babel/types": "^7.20.7", - "@types/jest": "^25.1.0", - "@types/node": "^18.14.0", - "is-ci-cli": "^2.2.0", - "jest": "^27.3.1", - "typescript": "^4.9.5" + "@babel/types": "^7.26.9", + "@types/bun": "^1.2.4", + "@types/node": "^22.13.9", + "typescript": "^5.8.2" }, "publishConfig": { "access": "public" diff --git a/packages/parser/src/__tests__/test.ts b/packages/parser/src/__tests__/index.test.ts similarity index 67% rename from packages/parser/src/__tests__/test.ts rename to packages/parser/src/__tests__/index.test.ts index 681c457f..dfa4a483 100644 --- a/packages/parser/src/__tests__/test.ts +++ b/packages/parser/src/__tests__/index.test.ts @@ -1,119 +1,119 @@ -import { parse, buildOptions } from '..' import * as t from '@babel/types' +import { buildOptions, parse } from '..' -test('defaults `sourceType` to "unambiguous"', () => { +it('defaults `sourceType` to "unambiguous"', () => { expect(buildOptions().sourceType).toBe('unambiguous') }) -test('defaults `allowAwaitOutsideFunction` to true', () => { +it('defaults `allowAwaitOutsideFunction` to true', () => { expect(buildOptions().allowAwaitOutsideFunction).toBe(true) }) -test('defaults `allowImportExportEverywhere` to true', () => { +it('defaults `allowImportExportEverywhere` to true', () => { expect(buildOptions().allowImportExportEverywhere).toBe(true) }) -test('defaults `allowReturnOutsideFunction` to true', () => { +it('defaults `allowReturnOutsideFunction` to true', () => { expect(buildOptions().allowReturnOutsideFunction).toBe(true) }) -test('defaults `allowSuperOutsideMethod` to true', () => { +it('defaults `allowSuperOutsideMethod` to true', () => { expect(buildOptions().allowSuperOutsideMethod).toBe(true) }) -test('defaults `allowUndeclaredExports` to true', () => { +it('defaults `allowUndeclaredExports` to true', () => { expect(buildOptions().allowUndeclaredExports).toBe(true) }) -test('includes various plugins by default', () => { +it('includes various plugins by default', () => { expect(buildOptions().plugins).toBeInstanceOf(Array) }) -test('includes "typescript" plugin when `sourceFilename` is not present', () => { +it('includes "typescript" plugin when `sourceFilename` is not present', () => { expect(buildOptions().plugins).toContain('typescript') }) -test('includes "flow" plugin when `sourceFilename` is not TypeScript', () => { +it('includes "flow" plugin when `sourceFilename` is not TypeScript', () => { expect(buildOptions({ sourceFilename: 'index.js' }).plugins).toContain('flow') expect(buildOptions({ sourceFilename: 'index.jsx' }).plugins).toContain( - 'flow' + 'flow', ) }) -test('includes "typescript" plugin when `sourceFilename` is TypeScript', () => { +it('includes "typescript" plugin when `sourceFilename` is TypeScript', () => { expect(buildOptions({ sourceFilename: 'index.ts' }).plugins).toContain( - 'typescript' + 'typescript', ) expect(buildOptions({ sourceFilename: 'index.tsx' }).plugins).toContain( - 'typescript' + 'typescript', ) }) -test('does not include "typescript" plugin when "flow" is already enabled', () => { +it('does not include "typescript" plugin when "flow" is already enabled', () => { expect( - buildOptions({ plugins: [['flow', { all: true }]] }).plugins + buildOptions({ plugins: [['flow', { all: true }]] }).plugins, ).not.toContain('typescript') }) -test('does not mix conflicting "recordAndTuple" and "pipelineOperator" plugins', () => { +it('does not mix conflicting "recordAndTuple" and "pipelineOperator" plugins', () => { // adding recordAndTuple to existing plugins expect( buildOptions({ plugins: [['pipelineOperator', { proposal: 'smart' }]] }) - .plugins + .plugins, ).not.toContainEqual(['recordAndTuple', expect.anything()]) expect( buildOptions({ plugins: [['pipelineOperator', { proposal: 'hack', topicToken: '#' }]], - }).plugins + }).plugins, ).not.toContainEqual(['recordAndTuple', expect.anything()]) expect( buildOptions({ plugins: [['pipelineOperator', { proposal: 'hack', topicToken: '%' }]], - }).plugins + }).plugins, ).toContainEqual(['recordAndTuple', { syntaxType: 'hash' }]) // adding pipelineOperator to existing plugins expect( buildOptions({ plugins: [['recordAndTuple', { syntaxType: 'hash' }]] }) - .plugins + .plugins, ).toContainEqual(['pipelineOperator', { proposal: 'minimal' }]) }) -test('does not mutate `plugins` array', () => { - const plugins = [] +it('does not mutate `plugins` array', () => { + const plugins: Array = [] buildOptions({ plugins }) expect(plugins).toHaveLength(0) }) -test('does not mutate options', () => { +it('does not mutate options', () => { const options = {} buildOptions(options) expect(options).toEqual({}) }) -test('includes "decorators" plugin with options by default', () => { +it('includes "decorators" plugin with options by default', () => { expect(buildOptions().plugins).toContainEqual([ 'decorators', { decoratorsBeforeExport: true }, ]) }) -test('does not include "decorators" plugin if "decorators-legacy" is already enabled', () => { - expect(buildOptions({ plugins: ['decorators-legacy'] })).not.toContain( - 'decorators' - ) +it('does not include "decorators" plugin if "decorators-legacy" is already enabled', () => { + expect( + buildOptions({ plugins: ['decorators-legacy'] }).plugins, + ).not.toContain('decorators') }) -test('enables `topLevelAwait` even if `allowAwaitOutsideFunction` is disabled', () => { +it('enables `topLevelAwait` even if `allowAwaitOutsideFunction` is disabled', () => { const options = buildOptions({ allowAwaitOutsideFunction: false }) expect(options.plugins).toContain('topLevelAwait') expect( (parse('await 0', options).program.body[0] as t.ExpressionStatement) - .expression.type + .expression.type, ).toEqual('AwaitExpression') }) -test('parses with a very broad set of options', () => { +it('parses with a very broad set of options', () => { expect( parse(` // demonstrate 'allowReturnOutsideFunction' option and 'throwExpressions' plugin @@ -130,9 +130,9 @@ test('parses with a very broad set of options', () => { #[1, 2, #{a: 3}] // demonstrate 'pipelineOperator' plugin with proposal=minimal x |> y - `).program.body.map((node) => - t.isExpressionStatement(node) ? node.expression.type : node.type - ) + `).program.body.map(node => + t.isExpressionStatement(node) ? node.expression.type : node.type, + ), ).toEqual([ 'ReturnStatement', 'ExportNamedDeclaration', @@ -144,19 +144,18 @@ test('parses with a very broad set of options', () => { ]) }) -test('does not parse placeholders by default as they conflict with TypeScript', () => { +it('does not parse placeholders by default as they conflict with TypeScript', () => { const placeholderCode = ` // demonstrate 'placeholders' plugin %%statement%% ` expect(() => parse(placeholderCode)).toThrowError() - const node = parse(placeholderCode, { plugins: ['placeholders'] }).program - .body[0] + const node = parse(placeholderCode, { plugins: ['placeholders'] }).program.body[0] expect(node.type).toBe('Placeholder') }) -test('allows parsing records and tuples with "bar" syntax', () => { +it('allows parsing records and tuples with "bar" syntax', () => { const tuple = ( parse(`[|1, 2, {|a: 1|}|]`, { plugins: [['recordAndTuple', { syntaxType: 'bar' }]], @@ -164,16 +163,16 @@ test('allows parsing records and tuples with "bar" syntax', () => { ).expression expect(t.isTupleExpression(tuple)).toBe(true) expect(t.isRecordExpression((tuple as t.TupleExpression).elements[2])).toBe( - true + true, ) }) -test('allows parsing of abstract classes with abstract methods', () => { +it('allows parsing of abstract classes with abstract methods', () => { expect( parse(` abstract class Foo { abstract bar(): void; } - `).program.body[0].type + `).program.body[0].type, ).toBe('ClassDeclaration') }) diff --git a/packages/parser/src/index.ts b/packages/parser/src/index.ts index f80e27f0..1265d39e 100644 --- a/packages/parser/src/index.ts +++ b/packages/parser/src/index.ts @@ -1,16 +1,22 @@ +import type { ParserOptions as BabelParserOptions } from '@babel/parser' +import type { File } from '@babel/types' +import type { ParserOptions, ParserPluginName } from './options' import { parse as babelParse, - ParserOptions as BabelParserOptions, + } from '@babel/parser' -import { File } from '@babel/types' import { buildOptions, isParserPluginName, - ParserOptions, - ParserPluginName, + } from './options' -export { buildOptions, isParserPluginName, ParserOptions, ParserPluginName } +export { + buildOptions, + isParserPluginName, + type ParserOptions, + type ParserPluginName, +} /** * Wraps `parse` from `@babel/parser`, but sets default options such that as few diff --git a/packages/parser/src/options.ts b/packages/parser/src/options.ts index 051e9ba7..4ad7d165 100644 --- a/packages/parser/src/options.ts +++ b/packages/parser/src/options.ts @@ -1,7 +1,7 @@ -import { +import type { + ParserOptions as BabelParserOptions, DecoratorsPluginOptions, FlowPluginOptions, - ParserOptions as BabelParserOptions, ParserPlugin, PipelineOperatorPluginOptions, RecordAndTuplePluginOptions, @@ -106,49 +106,51 @@ export function buildOptions({ * typePluginForSourceFileName('index.jsx'); // 'flow' */ function typePluginForSourceFileName( - sourceFileName?: string + sourceFileName?: string, ): 'flow' | 'typescript' { if (typeof sourceFileName === 'string' && !/\.tsx?$/i.test(sourceFileName)) { return 'flow' - } else { + } + else { return 'typescript' } } function getPluginOptions( plugins: Array, - name: 'decorators' + name: 'decorators', ): DecoratorsPluginOptions | undefined function getPluginOptions( plugins: Array, - name: 'pipelineOperator' + name: 'pipelineOperator', ): PipelineOperatorPluginOptions | undefined function getPluginOptions( plugins: Array, - name: 'recordAndTuple' + name: 'recordAndTuple', ): RecordAndTuplePluginOptions | undefined function getPluginOptions( plugins: Array, - name: 'flow' + name: 'flow', ): FlowPluginOptions | undefined function getPluginOptions( plugins: Array, - name: 'typescript' + name: 'typescript', ): TypeScriptPluginOptions | undefined function getPluginOptions( plugins: Array, - name: ParserPluginName + name: ParserPluginName, ): ParserPluginOptions | undefined function getPluginOptions( plugins: Array, - name: ParserPluginName + name: ParserPluginName, ): ParserPluginOptions | undefined { for (const plugin of plugins) { if (Array.isArray(plugin)) { if (plugin[0] === name) { return plugin[1] } - } else if (plugin === name) { + } + else if (plugin === name) { return {} } } @@ -165,7 +167,7 @@ function getPluginOptions( */ function shouldAddPlugin( plugins: Array, - plugin: ParserPlugin + plugin: ParserPlugin, ): boolean { const name = getPluginName(plugin) @@ -173,6 +175,7 @@ function shouldAddPlugin( return false } + // eslint-disable-next-line ts/switch-exhaustiveness-check switch (name) { case 'flow': case 'flowComments': @@ -180,8 +183,8 @@ function shouldAddPlugin( case 'typescript': return !( - getPluginOptions(plugins, 'flow') || - getPluginOptions(plugins, 'flowComments') + getPluginOptions(plugins, 'flow') + || getPluginOptions(plugins, 'flowComments') ) case 'decorators': @@ -192,12 +195,12 @@ function shouldAddPlugin( case 'recordAndTuple': case 'pipelineOperator': { - const recordAndTupleOptions = - name === 'recordAndTuple' + const recordAndTupleOptions + = name === 'recordAndTuple' ? (plugin[1] as RecordAndTuplePluginOptions) : getPluginOptions(plugins, 'recordAndTuple') - const pipelineOperatorOptions = - name === 'pipelineOperator' + const pipelineOperatorOptions + = name === 'pipelineOperator' ? (plugin[1] as PipelineOperatorPluginOptions) : getPluginOptions(plugins, 'pipelineOperator') @@ -209,8 +212,8 @@ function shouldAddPlugin( // https://github.com/babel/babel/blob/15f2f171ab13b224757ca43483a456e409f12a0a/packages/babel-parser/src/plugin-utils.js#L119-L123 if ( - pipelineOperatorOptions?.proposal === 'hack' && - pipelineOperatorOptions.topicToken === '#' + pipelineOperatorOptions?.proposal === 'hack' + && pipelineOperatorOptions.topicToken === '#' ) { return false } @@ -235,9 +238,9 @@ function shouldAddPlugin( */ function pluginListIncludesPlugin( plugins: Array, - name: ParserPluginName + name: ParserPluginName, ): boolean { - return plugins.some((entry) => getPluginName(entry) === name) + return plugins.some(entry => getPluginName(entry) === name) } /** diff --git a/packages/parser/tsconfig.build.json b/packages/parser/tsconfig.build.json index c4bea185..a9e32dba 100644 --- a/packages/parser/tsconfig.build.json +++ b/packages/parser/tsconfig.build.json @@ -1,12 +1,12 @@ { "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], "compilerOptions": { - "noEmit": false, - "sourceMap": true, - "declaration": true, "rootDir": "src", - "outDir": "build" - } + "declaration": true, + "noEmit": false, + "outDir": "dist", + "sourceMap": true + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/parser/tsconfig.json b/packages/parser/tsconfig.json index cb694435..f8769248 100644 --- a/packages/parser/tsconfig.json +++ b/packages/parser/tsconfig.json @@ -1,12 +1,7 @@ { - "compilerOptions": { - "module": "commonjs", - "target": "es2015", - "lib": ["es2015", "es2016"], - "composite": true, - "noEmit": true, - "noImplicitAny": false, - "strict": true - }, - "exclude": ["tmp", "build"] + "extends": "../../tsconfig.json", + "exclude": [ + "tmp", + "dist" + ] } diff --git a/packages/rebuild-matchers/.eslintignore b/packages/rebuild-matchers/.eslintignore deleted file mode 100644 index 6297e61a..00000000 --- a/packages/rebuild-matchers/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -build -coverage -src/matchers.ts diff --git a/packages/rebuild-matchers/bin/rebuild b/packages/rebuild-matchers/bin/rebuild index 7331145c..5b870f8a 100755 --- a/packages/rebuild-matchers/bin/rebuild +++ b/packages/rebuild-matchers/bin/rebuild @@ -1,13 +1,4 @@ -#!/usr/bin/env node +#!/usr/bin/env bun +import { main } from '..' -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-env node */ - -require('esbuild-runner/register') - -require('../src/rebuild') - .main() - .catch((error) => { - console.error(error.stack) - process.exit(1) - }) +await main() diff --git a/packages/rebuild-matchers/jest.config.js b/packages/rebuild-matchers/jest.config.js deleted file mode 100644 index e9b2fc45..00000000 --- a/packages/rebuild-matchers/jest.config.js +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - clearMocks: true, - moduleFileExtensions: ['ts', 'tsx', 'js'], - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, -} diff --git a/packages/rebuild-matchers/package.json b/packages/rebuild-matchers/package.json index b4598f86..caf1b414 100644 --- a/packages/rebuild-matchers/package.json +++ b/packages/rebuild-matchers/package.json @@ -1,48 +1,47 @@ { - "name": "@codemod/rebuild-matchers", + "name": "@codemod-esm/rebuild-matchers", + "type": "module", "version": "0.1.0", "private": true, "description": "Rebuilds the bulk of `@codemod/matchers` based on the Babel AST.", - "repository": "https://github.com/codemod-js/codemod", - "license": "Apache-2.0", "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", + "license": "Apache-2.0", + "repository": "https://github.com/codemod-js/codemod", + "exports": { + "bun": "./src/rebuild.ts", + "default": "./dist/index.js" + }, + "main": "dist/rebuild.js", + "types": "dist/rebuild.d.ts", "files": [ - "build" + "dist" ], "scripts": { "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", + "clean": "rimraf dist tsconfig.build.tsbuildinfo", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" + "test": "bun test" }, "dependencies": { - "@babel/types": "^7.20.7", - "@codemod/utils": "^1.1.0" + "@babel/types": "^7.26.9", + "@codemod-esm/utils": "workspace:^" }, "devDependencies": { - "@babel/core": "^7.20.12", - "@babel/generator": "^7.20.14", - "@babel/traverse": "^7.20.13", - "@codemod/core": "^2.2.0", - "@codemod/parser": "^1.4.0", - "@types/babel__core": "^7.20.0", - "@types/babel__generator": "^7.6.4", - "@types/babel__template": "^7.4.1", - "@types/babel__traverse": "^7.18.3", - "@types/dedent": "^0.7.0", - "@types/jest": "^25.1.0", - "@types/node": "^18.14.0", - "@types/prettier": "^2.0.0", - "dedent": "^0.7.0", - "is-ci-cli": "^2.2.0", - "jest": "^27.3.1", - "typescript": "^4.9.5" + "@babel/core": "^7.26.9", + "@babel/generator": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@codemod-esm/core": "workspace:^", + "@codemod-esm/parser": "workspace:^", + "@types/babel__core": "^7.20.5", + "@types/babel__generator": "^7.6.8", + "@types/babel__template": "^7.4.4", + "@types/babel__traverse": "^7.20.6", + "@types/jest": "^29.5.14", + "@types/node": "^22.13.9", + "dedent": "^1.5.3", + "typescript": "^5.8.2" }, "publishConfig": { "access": "public" diff --git a/packages/rebuild-matchers/src/__tests__/generated.test.ts b/packages/rebuild-matchers/src/__tests__/generated.test.ts index 74614909..f98d2dbc 100644 --- a/packages/rebuild-matchers/src/__tests__/generated.test.ts +++ b/packages/rebuild-matchers/src/__tests__/generated.test.ts @@ -1,7 +1,7 @@ -import { promises as fs } from 'fs' +import { promises as fs } from 'node:fs' import { MATCHERS_FILE_PATH, rebuild } from '../utils/rebuild' -test('generated file is up to date', async () => { +it('generated file is up to date', async () => { const existingContent = await fs.readFile(MATCHERS_FILE_PATH, 'utf8') const newContent = await rebuild() expect(newContent).toEqual(existingContent) diff --git a/packages/rebuild-matchers/src/rebuild.ts b/packages/rebuild-matchers/src/rebuild.ts index f193080a..8c04b516 100644 --- a/packages/rebuild-matchers/src/rebuild.ts +++ b/packages/rebuild-matchers/src/rebuild.ts @@ -1,5 +1,5 @@ -import { promises as fs } from 'fs' -import { rebuild, MATCHERS_FILE_PATH } from './utils/rebuild' +import { promises as fs } from 'node:fs' +import { MATCHERS_FILE_PATH, rebuild } from './utils/rebuild' export async function main(): Promise { await fs.writeFile(MATCHERS_FILE_PATH, await rebuild(), 'utf8') diff --git a/packages/rebuild-matchers/src/utils/ast.ts b/packages/rebuild-matchers/src/utils/ast.ts index ce52a488..2ee30c14 100644 --- a/packages/rebuild-matchers/src/utils/ast.ts +++ b/packages/rebuild-matchers/src/utils/ast.ts @@ -1,5 +1,5 @@ -import * as t from '@babel/types' import generate from '@babel/generator' +import * as t from '@babel/types' export interface ArrayValidator { each: Validator @@ -35,18 +35,19 @@ export type Validator = export function isValidatorOfType( type: string, - validator: Validator | undefined + validator: Validator | undefined, ): boolean { if (!validator) { return false } if ('chainOf' in validator) { - return validator.chainOf.some((child) => isValidatorOfType(type, child)) + return validator.chainOf.some(child => isValidatorOfType(type, child)) } if ('oneOf' in validator) { - return validator.oneOf.some((child) => typeof child === type) + /* eslint valid-typeof: ["error", { "requireStringLiterals": false }] */ + return validator.oneOf.some(child => typeof child === type) } return 'type' in validator && validator.type === type @@ -89,22 +90,25 @@ export function typeForValidator(validator?: Validator): t.TSType { validator.oneOf.map((type) => { if (typeof type === 'string') { return t.tsLiteralType(t.stringLiteral(type)) - } else if (typeof type === 'boolean') { + } + else if (typeof type === 'boolean') { return t.tsLiteralType(t.booleanLiteral(type)) - } else if (typeof type === 'number') { + } + else if (typeof type === 'number') { return t.tsLiteralType(t.numericLiteral(type)) - } else { - throw new Error(`unexpected 'oneOf' value: ${type}`) } - }) + else { + throw new TypeError(`unexpected 'oneOf' value: ${type as string}`) + } + }), ) } if ('oneOfNodeTypes' in validator) { return t.tsUnionType( - validator.oneOfNodeTypes.map((type) => - t.tsTypeReference(t.identifier(type)) - ) + validator.oneOfNodeTypes.map(type => + t.tsTypeReference(t.identifier(type)), + ), ) } @@ -122,40 +126,49 @@ export function typeForValidator(validator?: Validator): t.TSType { function stringifyQualifiedName(type: t.TSQualifiedName): string { if (t.isIdentifier(type.left)) { return `${type.left.name}.${type.right.name}` - } else { + } + else { return `${stringifyQualifiedName(type.left)}.${type.right.name}` } } export function stringifyType( type: t.TSType, - replacer?: (type: t.TSType, value: string) => string | undefined + replacer?: (type: t.TSType, value: string) => string | undefined, ): string { function withReplacer(value: string): string { - return (replacer && replacer(type, value)) || value + return (replacer && replacer(type, value)) ?? value } if (t.isTSUnionType(type)) { return withReplacer( - type.types.map((child) => stringifyType(child, replacer)).join(' | ') + type.types.map(child => stringifyType(child, replacer)).join(' | '), ) - } else if (t.isTSAnyKeyword(type)) { + } + else if (t.isTSAnyKeyword(type)) { return withReplacer('any') - } else if (t.isTSNumberKeyword(type)) { + } + else if (t.isTSNumberKeyword(type)) { return withReplacer('number') - } else if (t.isTSStringKeyword(type)) { + } + else if (t.isTSStringKeyword(type)) { return withReplacer('string') - } else if (t.isTSUndefinedKeyword(type)) { + } + else if (t.isTSUndefinedKeyword(type)) { return withReplacer('undefined') - } else if (t.isTSTypeReference(type)) { + } + else if (t.isTSTypeReference(type)) { if (t.isIdentifier(type.typeName)) { return withReplacer(type.typeName.name) - } else { + } + else { return withReplacer(stringifyQualifiedName(type.typeName)) } - } else if (t.isTSArrayType(type)) { + } + else if (t.isTSArrayType(type)) { return withReplacer(`Array<${stringifyType(type.elementType, replacer)}>`) - } else { + } + else { return withReplacer(generate(type).code) } } @@ -163,12 +176,13 @@ export function stringifyType( export function stringifyValidator( validator: Validator | undefined, nodePrefix: string, - nodeSuffix: string + nodeSuffix: string, ): string { return stringifyType(typeForValidator(validator), (type, value) => { if (t.isTSTypeReference(type)) { return nodePrefix + value + nodeSuffix - } else { + } + else { return value } }) diff --git a/packages/rebuild-matchers/src/utils/format.ts b/packages/rebuild-matchers/src/utils/format.ts index e2d3a9f3..51b76e79 100644 --- a/packages/rebuild-matchers/src/utils/format.ts +++ b/packages/rebuild-matchers/src/utils/format.ts @@ -2,7 +2,7 @@ import { format as prettier, resolveConfig } from 'prettier' export default async function format( code: string, - path: string + path: string, ): Promise { const config = await resolveConfig(path) diff --git a/packages/rebuild-matchers/src/utils/rebuild.ts b/packages/rebuild-matchers/src/utils/rebuild.ts index 20b96b20..df93c032 100644 --- a/packages/rebuild-matchers/src/utils/rebuild.ts +++ b/packages/rebuild-matchers/src/utils/rebuild.ts @@ -1,6 +1,7 @@ -import { join } from 'path' -import { BUILDER_KEYS, NodeField, NODE_FIELDS, t } from '@codemod/utils' -import format from './format' +import type { NodeField } from '@codemod-esm/utils' +import { join } from 'node:path' +import { BUILDER_KEYS, NODE_FIELDS, t } from '@codemod-esm/utils' +import dedent from 'dedent' import { isValidatorOfType, stringifyType, @@ -8,17 +9,13 @@ import { toFunctionName, typeForValidator, } from './ast' -import dedent = require('dedent') +import format from './format' export const MATCHERS_FILE_PATH = join( - __dirname, - '../../../matchers/src/matchers/generated.ts' + import.meta.dirname, + '../../../matchers/src/matchers/generated.ts', ) -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const toBindingIdentifierName: (name: string) => string = (t as any) - .toBindingIdentifierName - function stringifyMatcherForField(field: NodeField): string { const types = [ `Matcher<${stringifyValidator(field.validate, 't.', '')}>`, @@ -26,8 +23,8 @@ function stringifyMatcherForField(field: NodeField): string { ] if ( - isValidatorOfType('array', field.validate) && - 'chainOf' in field.validate + isValidatorOfType('array', field.validate) + && 'chainOf' in field.validate ) { const elementType = typeForValidator(field.validate.chainOf[1]) @@ -35,17 +32,18 @@ function stringifyMatcherForField(field: NodeField): string { stringifyType(elementType, (type, value) => { if (t.isTSTypeReference(type)) { return `Matcher` - } else if ( - t.isTSLiteralType(type) || - t.isTSBooleanKeyword(type) || - t.isTSNumberKeyword(type) || - t.isTSStringKeyword(type) || - t.isTSUndefinedKeyword(type) || - t.isTSNullKeyword(type) + } + else if ( + t.isTSLiteralType(type) + || t.isTSBooleanKeyword(type) + || t.isTSNumberKeyword(type) + || t.isTSStringKeyword(type) + || t.isTSUndefinedKeyword(type) + || t.isTSNullKeyword(type) ) { return `Matcher<${value}>` } - }) + }), ) } @@ -57,13 +55,13 @@ function stringifyMatcherForField(field: NodeField): string { } function possiblePrimitiveTypesForField(field: NodeField): Array { - return ['string', 'number', 'boolean'].filter((type) => - isValidatorOfType(type, field.validate) + return ['string', 'number', 'boolean'].filter(type => + isValidatorOfType(type, field.validate), ) } interface SimpleWriter { - write(data: string): void + write: (data: string) => void } function writeToString(write: (writer: SimpleWriter) => void): string { @@ -112,11 +110,11 @@ function rebuildTo(out: SimpleWriter): string | void { out.write(` constructor(\n`) for (const key of keys) { const field = fields[key] - const binding = toBindingIdentifierName(key) + const binding = t.toBindingIdentifierName(key) out.write( ` private readonly ${binding}?: ${stringifyMatcherForField( - field - )},\n` + field, + )},\n`, ) } out.write(` ) {\n`) @@ -124,7 +122,7 @@ function rebuildTo(out: SimpleWriter): string | void { out.write(` }\n`) out.write(`\n`) out.write( - ` matchValue(node: unknown, keys: ReadonlyArray): node is t.${type} {\n` + ` matchValue(node: unknown, keys: ReadonlyArray): node is t.${type} {\n`, ) out.write(` if (\n`) out.write(` !t.isNode(node) ||\n`) @@ -136,7 +134,7 @@ function rebuildTo(out: SimpleWriter): string | void { for (const key of keys) { const field = fields[key] const keyString = `'${key}'` - const binding = `this.${toBindingIdentifierName(key)}` + const binding = `this.${t.toBindingIdentifierName(key)}` out.write(` if (typeof ${binding} === 'undefined') {\n`) out.write(` // undefined matcher means anything matches\n`) for (const type of possiblePrimitiveTypesForField(field)) { @@ -151,19 +149,17 @@ function rebuildTo(out: SimpleWriter): string | void { out.write(` if (node.${key} !== null) {\n`) out.write(` return false;\n`) out.write(` }\n`) - out.write(` } else if (node.${key} === null) {\n`) - out.write(` return false;\n`) } if (isValidatorOfType('array', field.validate)) { out.write(` } else if (Array.isArray(${binding})) {\n`) out.write( - ` if (!tupleOf(...${binding}).matchValue(node.${key}, [...keys, ${keyString}])) {\n` + ` if (!tupleOf(...${binding}).matchValue(node.${key}, [...keys, ${keyString}])) {\n`, ) out.write(` return false;\n`) out.write(` }\n`) } out.write( - ` } else if (!${binding}.matchValue(node.${key}, [...keys, ${keyString}])) {\n` + ` } else if (!${binding}.matchValue(node.${key}, [...keys, ${keyString}])) {\n`, ) out.write(` return false;\n`) out.write(` }\n`) @@ -176,13 +172,13 @@ function rebuildTo(out: SimpleWriter): string | void { out.write(`export function ${name}(\n`) for (const key of keys) { const field = fields[key] - const binding = toBindingIdentifierName(key) + const binding = t.toBindingIdentifierName(key) out.write(` ${binding}?: ${stringifyMatcherForField(field)},\n`) } out.write(`): Matcher {\n`) out.write(` return new ${type}Matcher(\n`) for (const key of keys) { - const binding = toBindingIdentifierName(key) + const binding = t.toBindingIdentifierName(key) out.write(` ${binding},\n`) } out.write(` );\n`) @@ -191,5 +187,5 @@ function rebuildTo(out: SimpleWriter): string | void { } export async function rebuild(): Promise { - return await format(writeToString(rebuildTo), MATCHERS_FILE_PATH) + return format(writeToString(rebuildTo), MATCHERS_FILE_PATH) } diff --git a/packages/rebuild-matchers/tsconfig.build.json b/packages/rebuild-matchers/tsconfig.build.json index 4484fc90..0fb26be5 100644 --- a/packages/rebuild-matchers/tsconfig.build.json +++ b/packages/rebuild-matchers/tsconfig.build.json @@ -1,17 +1,27 @@ { "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], "compilerOptions": { - "noEmit": false, "rootDir": "src", - "outDir": "build", "declaration": true, + "noEmit": false, + "outDir": "dist", "sourceMap": true }, "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { + "path": "../core/tsconfig.build.json" + }, + { + "path": "../parser/tsconfig.build.json" + }, + { + "path": "../utils/tsconfig.build.json" + } + ], + "include": [ + "src" + ], + "exclude": [ + "src/__tests__" ] } diff --git a/packages/rebuild-matchers/tsconfig.json b/packages/rebuild-matchers/tsconfig.json index 4d96d550..57c3cd59 100644 --- a/packages/rebuild-matchers/tsconfig.json +++ b/packages/rebuild-matchers/tsconfig.json @@ -1,16 +1,6 @@ { - "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "composite": true, - "noEmit": true, - "strict": true, - "esModuleInterop": true - }, - "exclude": ["build"], - "references": [ - { "path": "../core/tsconfig.build.json" }, - { "path": "../parser/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + "extends": "../../tsconfig.json", + "exclude": [ + "dist" ] } diff --git a/packages/utils/.eslintignore b/packages/utils/.eslintignore deleted file mode 100644 index 6297e61a..00000000 --- a/packages/utils/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -build -coverage -src/matchers.ts diff --git a/packages/utils/README.md b/packages/utils/README.md index d9ec76b2..bb21ec3b 100644 --- a/packages/utils/README.md +++ b/packages/utils/README.md @@ -22,7 +22,7 @@ directly: ```ts // `m` is `@codemod/matchers`, a library of useful matchers // `t` is `@babel/types`, babel AST type predicates and builders -import { t, m } from '@codemod/utils' +import { m, t } from '@codemod-esm/utils' ``` ## Contributing diff --git a/packages/utils/jest.config.js b/packages/utils/jest.config.js deleted file mode 100644 index 19578d5e..00000000 --- a/packages/utils/jest.config.js +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-env node */ - -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - clearMocks: true, - moduleFileExtensions: ['ts', 'tsx', 'js'], - testEnvironment: 'node', - testRegex: '/__tests__/(test|.*\\.test)\\.ts$', - transform: { - '\\.ts$': 'esbuild-runner/jest', - }, - collectCoverageFrom: [ - 'src/**/*.ts', - '!**/__tests__/**/*.ts', - '!src/matchers.ts', - ], -} diff --git a/packages/utils/package.json b/packages/utils/package.json index b3cd4870..90b49491 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,39 +1,40 @@ { - "name": "@codemod/utils", - "version": "1.1.0", + "name": "@codemod-esm/utils", + "type": "module", + "version": "1.1.2", "description": "codemod rewrites JavaScript and TypeScript", - "repository": "https://github.com/codemod-js/codemod.git", - "license": "Apache-2.0", "author": "Brian Donovan", - "main": "build/index.js", - "types": "build/index.d.ts", + "license": "Apache-2.0", + "repository": "https://github.com/codemod-js/codemod.git", + "exports": { + "default": "./dist/index.js" + }, + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "build" + "dist" ], "scripts": { "build": "tsc --build tsconfig.build.json", - "clean": "rm -rf build tsconfig.build.tsbuildinfo", + "clean": "rimraf dist tsconfig.build.tsbuildinfo", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm build", - "test": "is-ci test:coverage test:watch", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch" + "test": "bun test" }, "dependencies": { - "@babel/core": "^7.20.12", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7", - "@codemod/parser": "^1.4.0" + "@babel/core": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "@codemod-esm/parser": "workspace:^" }, "devDependencies": { - "@types/babel__core": "^7.20.0", - "@types/babel__generator": "^7.6.4", - "@types/babel__traverse": "^7.18.3", - "@types/jest": "^29.4.0", - "@types/node": "^18.14.0", - "is-ci-cli": "^2.2.0", - "jest": "^27.3.1" + "@types/babel__core": "^7.20.5", + "@types/babel__generator": "^7.6.8", + "@types/babel__traverse": "^7.20.6", + "@types/bun": "^1.2.4", + "@types/node": "^22.13.9", + "typescript": "^5.8.2" }, "publishConfig": { "access": "public" diff --git a/packages/utils/src/__tests__/nodesEquivalent.test.ts b/packages/utils/src/__tests__/nodesEquivalent.test.ts index 9df6941f..edab0c0f 100644 --- a/packages/utils/src/__tests__/nodesEquivalent.test.ts +++ b/packages/utils/src/__tests__/nodesEquivalent.test.ts @@ -1,55 +1,55 @@ import * as t from '@babel/types' import { nodesEquivalent } from '../nodesEquivalent' -test('a node is equivalent to itself', () => { +it('a node is equivalent to itself', () => { const node = t.identifier('a') expect(nodesEquivalent(node, node)).toBe(true) }) -test('two nodes with different types are not equivalent', () => { +it('two nodes with different types are not equivalent', () => { const a = t.identifier('a') const two = t.numericLiteral(2) expect(nodesEquivalent(a, two)).toBe(false) }) -test('two nodes with the same type and the same properties are equivalent', () => { +it('two nodes with the same type and the same properties are equivalent', () => { const a = t.identifier('a') const b = t.identifier('a') expect(nodesEquivalent(a, b)).toBe(true) }) -test('two nodes with the same type and different properties are not equivalent', () => { +it('two nodes with the same type and different properties are not equivalent', () => { const a = t.identifier('a') const b = t.identifier('b') expect(nodesEquivalent(a, b)).toBe(false) }) -test('two nodes with differing optional properties are not equivalent', () => { +it('two nodes with differing optional properties are not equivalent', () => { const a = t.identifier('a') const b = t.identifier('a') a.typeAnnotation = t.tsTypeAnnotation(t.tsAnyKeyword()) expect(nodesEquivalent(a, b)).toBe(false) }) -test('two nodes with different children are not equivalent', () => { +it('two nodes with different children are not equivalent', () => { const a = t.arrayExpression([t.identifier('a')]) const b = t.arrayExpression([t.identifier('b')]) expect(nodesEquivalent(a, b)).toBe(false) }) -test('two nodes with differing number of children are not equivalent', () => { +it('two nodes with differing number of children are not equivalent', () => { const a = t.arrayExpression([t.identifier('a')]) const b = t.arrayExpression([t.identifier('a'), t.identifier('b')]) expect(nodesEquivalent(a, b)).toBe(false) }) -test('two nodes with the same children are equivalent', () => { +it('two nodes with the same children are equivalent', () => { const a = t.arrayExpression([t.identifier('a')]) const b = t.arrayExpression([t.identifier('a')]) expect(nodesEquivalent(a, b)).toBe(true) }) -test('two nodes with equivalent fixed children are equivalent', () => { +it('two nodes with equivalent fixed children are equivalent', () => { const a = t.identifier('a') const b = t.identifier('a') a.typeAnnotation = t.tsTypeAnnotation(t.tsAnyKeyword()) @@ -57,7 +57,7 @@ test('two nodes with equivalent fixed children are equivalent', () => { expect(nodesEquivalent(a, b)).toBe(true) }) -test('two nodes with non-equivalent fixed children are not equivalent', () => { +it('two nodes with non-equivalent fixed children are not equivalent', () => { const a = t.identifier('a') const b = t.identifier('a') a.typeAnnotation = t.tsTypeAnnotation(t.tsUnknownKeyword()) diff --git a/packages/utils/src/builders.ts b/packages/utils/src/builders.ts index 77b025d9..7bccf593 100644 --- a/packages/utils/src/builders.ts +++ b/packages/utils/src/builders.ts @@ -1,6 +1,7 @@ -import traverse, { NodePath } from '@babel/traverse' +import type { NodePath } from '@babel/traverse' +import traverse from '@babel/traverse' import * as t from '@babel/types' -import { parse } from '@codemod/parser' +import { parse } from '@codemod-esm/parser' export type Replacement = | t.Statement @@ -13,7 +14,7 @@ export interface ReplacementsBase { } export function program( - template: string + template: string, ): (replacements?: R) => t.File { const ast = parse(template, { plugins: ['placeholders'], @@ -27,15 +28,16 @@ export function program( const name = path.node.name.name const replacement = replacements[name] - if (!replacement) { + if (replacement !== undefined) { throw new Error( - `no replacement found for placeholder with name: ${name}` + `no replacement found for placeholder with name: ${name}`, ) } if (Array.isArray(replacement)) { path.replaceWithMultiple(replacement) - } else { + } + else { path.replaceWith(replacement) } @@ -54,25 +56,25 @@ export function program( } export function statement( - template: string + template: string, ): (replacements?: R) => t.Statement { const builder = program(template) - return (replacements) => + return replacements => getSingleStatement(builder(replacements).program.body) } export function expression( - template: string + template: string, ): (replacements?: R) => t.Expression { const builder = program(template) - return (replacements) => + return replacements => getSingleExpression(builder(replacements).program.body) } function getSingleStatement(statements: Array): t.Statement { if (statements.length !== 1) { throw new TypeError( - `expected a single statement but ${statements.length} statements` + `expected a single statement but ${statements.length} statements`, ) } @@ -82,7 +84,7 @@ function getSingleStatement(statements: Array): t.Statement { function getSingleExpression(statements: Array): t.Expression { if (statements.length !== 1) { throw new TypeError( - `expected a single expression but ${statements.length} statements` + `expected a single expression but ${statements.length} statements`, ) } @@ -90,7 +92,7 @@ function getSingleExpression(statements: Array): t.Expression { if (!t.isExpressionStatement(statement)) { throw new TypeError( - `expected a single expression but got a single ${statement.type}` + `expected a single expression but got a single ${statement.type}`, ) } diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 4b43e4f3..0e999874 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,9 +1,9 @@ import * as Babel from '@babel/core' import * as t from '@babel/types' -export * from './NodeTypes' export * from './builders' export * from './js' export * from './nodesEquivalent' +export * from './NodeTypes' export { Babel, t, t as types } diff --git a/packages/utils/src/js.ts b/packages/utils/src/js.ts index 3ad53499..aee3f727 100644 --- a/packages/utils/src/js.ts +++ b/packages/utils/src/js.ts @@ -1,5 +1,5 @@ import * as t from '@babel/types' -import { parse } from '@codemod/parser' +import { parse } from '@codemod-esm/parser' import { NODE_FIELDS } from './NodeTypes' function fieldsForNodeType(nodeType: string): Set { @@ -15,22 +15,18 @@ function stripExtras(node: N): N { const allFields = Object.keys(node) for (const field of allFields) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const nodeObj = node as any + const nodeObj = node as unknown as { [key: string]: any } if (!fieldsToKeep.has(field)) { delete nodeObj[field] - } else { + } + else { const children = Array.isArray(nodeObj[field]) ? nodeObj[field] : [nodeObj[field]] for (const child of children) { - if ( - child && - typeof child === 'object' && - typeof child.type === 'string' - ) { + if (t.isNode(child)) { stripExtras(child) } } diff --git a/packages/utils/src/nodesEquivalent.ts b/packages/utils/src/nodesEquivalent.ts index bde8e6f3..7a8437e3 100644 --- a/packages/utils/src/nodesEquivalent.ts +++ b/packages/utils/src/nodesEquivalent.ts @@ -41,7 +41,7 @@ export function nodesEquivalent(a: t.Node, b: t.Node): boolean { } for (let i = 0; i < aVal.length; i++) { - if (!nodesEquivalent(aVal[i], bVal[i])) { + if (!nodesEquivalent(aVal[i] as t.Node, bVal[i] as t.Node)) { return false } } diff --git a/packages/utils/tsconfig.build.json b/packages/utils/tsconfig.build.json index df7728ce..f0f988db 100644 --- a/packages/utils/tsconfig.build.json +++ b/packages/utils/tsconfig.build.json @@ -1,15 +1,21 @@ { "extends": "./tsconfig.json", - "include": ["src"], - "exclude": ["src/__tests__"], "compilerOptions": { - "noEmit": false, "rootDir": "src", - "outDir": "build", "declaration": true, + "noEmit": false, + "outDir": "dist", "sourceMap": true }, "references": [ - { "path": "../parser/tsconfig.build.json" } + { + "path": "../parser/tsconfig.build.json" + } + ], + "include": [ + "src" + ], + "exclude": [ + "src/__tests__" ] } diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 59818b3e..a50d6436 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -1,14 +1,9 @@ { + "extends": "../../tsconfig.json", "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "composite": true, - "noEmit": true, - "strict": true, - "esModuleInterop": true + "rootDir": "src" }, - "exclude": ["build"], - "references": [ - { "path": "../parser/tsconfig.build.json" } + "exclude": [ + "dist" ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8cf5bc57..e35e464e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5589 +1,6212 @@ -lockfileVersion: 5.4 +lockfileVersion: '9.0' -overrides: - '@babel/parser': 7.20.15 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false importers: .: - specifiers: - '@commitlint/cli': ^14.1.0 - '@commitlint/config-conventional': ^14.1.0 - '@types/node': ^18.14.0 - '@typescript-eslint/eslint-plugin': ^5.3.1 - '@typescript-eslint/parser': ^5.3.1 - esbuild: ^0.13.13 - esbuild-runner: ^2.2.1 - eslint: ^8.2.0 - eslint-config-prettier: ^8.3.0 - eslint-plugin-import: ^2.27.5 - eslint-plugin-prettier: ^4.0.0 - husky: ^8.0.0 - jest: ^27.3.1 - lerna: ^4.0.0 - lint-staged: ^13.1.2 - prettier: ^2.4.1 - sort-package-json: ^1.53.1 - typescript: ^4.4.4 devDependencies: - '@commitlint/cli': 14.1.0 - '@commitlint/config-conventional': 14.1.0 - '@types/node': 18.14.0 - '@typescript-eslint/eslint-plugin': 5.52.0_6cfvjsbua5ptj65675bqcn6oza - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - esbuild: 0.13.15 - esbuild-runner: 2.2.2_esbuild@0.13.15 - eslint: 8.34.0 - eslint-config-prettier: 8.6.0_eslint@8.34.0 - eslint-plugin-import: 2.27.5_mcvs2y73sfmcxqzpjj5lr7a2m4 - eslint-plugin-prettier: 4.2.1_u5wnrdwibbfomslmnramz52buy - husky: 8.0.3 - jest: 27.5.1 - lerna: 4.0.0 - lint-staged: 13.1.2 - prettier: 2.8.4 - sort-package-json: 1.57.0 - typescript: 4.9.5 - - packages/cli: - specifiers: - '@babel/core': ^7.20.12 - '@babel/generator': ^7.20.14 - '@babel/parser': 7.20.15 - '@babel/plugin-proposal-class-properties': ^7.18.6 - '@babel/preset-env': ^7.20.2 - '@babel/preset-typescript': ^7.18.6 - '@babel/traverse': ^7.20.13 - '@babel/types': ^7.20.7 - '@codemod/core': ^2.2.0 - '@codemod/matchers': ^1.6.0 - '@codemod/parser': ^1.4.0 - '@codemod/utils': ^1.1.0 - '@types/babel__core': ^7.20.0 - '@types/babel__generator': ^7.6.4 - '@types/babel__traverse': ^7.18.3 - '@types/glob': ^7.1.0 - '@types/got': ^9.6.7 - '@types/jest': ^27.0.2 - '@types/node': ^18.14.0 - '@types/resolve': ^1.17.1 - '@types/rimraf': 3.0.0 - '@types/semver': ^7.1.0 - '@types/source-map-support': ^0.5.0 - '@types/tmp': ^0.2.0 - commitlint: ^14.1.0 - core-js: ^3.1.4 - cross-fetch: ^3.1.5 - esbuild: ^0.13.13 - esbuild-runner: ^2.2.1 - find-up: ^5.0.0 - get-port: ^5.0.0 - get-stream: ^5.1.0 - globby: ^11.0.0 - ignore: ^5.1.9 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - make-dir: ^3.1.0 - pirates: ^4.0.0 - prettier: ^2.4.1 - recast: ^0.19.0 - regenerator-runtime: ^0.13.3 - resolve: ^1.22.1 - rimraf: 3.0.2 - semver: ^7.3.5 - source-map-support: ^0.5.6 - tempy: ^1 - tmp: ^0.2.1 - typescript: ^4.9.5 - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/parser': 7.20.15 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 - '@babel/preset-env': 7.20.2_@babel+core@7.20.12 - '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@codemod/core': link:../core - '@codemod/matchers': link:../matchers - '@codemod/parser': link:../parser - '@codemod/utils': link:../utils - core-js: 3.28.0 - cross-fetch: 3.1.5 - esbuild: 0.13.15 - esbuild-runner: 2.2.2_esbuild@0.13.15 - find-up: 5.0.0 - get-stream: 5.2.0 - globby: 11.1.0 - ignore: 5.2.4 - is-ci-cli: 2.2.0 - pirates: 4.0.5 - recast: 0.19.1 - regenerator-runtime: 0.13.11 - resolve: 1.22.1 - source-map-support: 0.5.21 - tmp: 0.2.1 - devDependencies: - '@types/babel__core': 7.20.0 - '@types/babel__generator': 7.6.4 - '@types/babel__traverse': 7.18.3 - '@types/glob': 7.2.0 - '@types/got': 9.6.12 - '@types/jest': 27.5.2 - '@types/node': 18.14.0 - '@types/resolve': 1.20.2 - '@types/rimraf': 3.0.0 - '@types/semver': 7.3.13 - '@types/source-map-support': 0.5.6 - '@types/tmp': 0.2.3 - commitlint: 14.1.0 - get-port: 5.1.1 - jest: 27.5.1 - make-dir: 3.1.0 - prettier: 2.8.4 - rimraf: 3.0.2 - semver: 7.3.8 - tempy: 1.0.1 - typescript: 4.9.5 + '@antfu/eslint-config': + specifier: ^4.4.0 + version: 4.4.0(@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(@vue/compiler-sfc@3.5.13)(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@types/jest': + specifier: ^29.5.14 + version: 29.5.14 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + bun: + specifier: ^1.2.4 + version: 1.2.4 + esbuild: + specifier: ^0.25.0 + version: 0.25.0 + eslint: + specifier: ^9.21.0 + version: 9.21.0(jiti@1.21.6) + husky: + specifier: ^9.1.7 + version: 9.1.7 + lerna: + specifier: ^8.2.1 + version: 8.2.1(encoding@0.1.13) + lint-staged: + specifier: ^15.4.3 + version: 15.4.3 + prettier: + specifier: ^3.5.3 + version: 3.5.3 + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages/core: - specifiers: - '@babel/core': ^7.20.12 - '@babel/generator': ^7.20.14 - '@babel/types': ^7.20.7 - '@codemod/parser': ^1.4.0 - '@types/babel__core': ^7.1.16 - '@types/jest': ^25.1.0 - '@types/node': ^18.14.0 - '@types/prettier': ^2.0.0 - '@types/resolve': ^1.14.0 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - recast: ^0.19.0 - resolve: ^1.22.1 - typescript: ^4.9.5 - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@codemod/parser': link:../parser - is-ci-cli: 2.2.0 - recast: 0.19.1 - resolve: 1.22.1 + dependencies: + '@babel/core': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/generator': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/parser': + specifier: workspace:^ + version: link:../parser + recast: + specifier: ^0.23.11 + version: 0.23.11 devDependencies: - '@babel/types': 7.20.7 - '@types/babel__core': 7.20.0 - '@types/jest': 25.2.3 - '@types/node': 18.14.0 - '@types/prettier': 2.7.2 - '@types/resolve': 1.20.2 - jest: 27.5.1 - typescript: 4.9.5 + '@babel/types': + specifier: ^7.26.9 + version: 7.26.9 + '@types/babel__core': + specifier: ^7.20.5 + version: 7.20.5 + '@types/bun': + specifier: ^1.2.4 + version: 1.2.4 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages/matchers: - specifiers: - '@babel/core': ^7.20.12 - '@babel/generator': ^7.20.14 - '@babel/traverse': ^7.20.13 - '@babel/types': ^7.20.7 - '@codemod/core': ^2.2.0 - '@codemod/parser': ^1.4.0 - '@codemod/utils': ^1.1.0 - '@types/babel__core': ^7.20.0 - '@types/babel__generator': ^7.6.4 - '@types/babel__template': ^7.4.1 - '@types/babel__traverse': ^7.18.3 - '@types/dedent': ^0.7.0 - '@types/jest': ^25.1.0 - '@types/node': ^18.14.0 - '@types/prettier': ^2.0.0 - dedent: ^0.7.0 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - typescript: ^4.9.5 - dependencies: - '@babel/types': 7.20.7 - '@codemod/utils': link:../utils + dependencies: + '@babel/types': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/utils': + specifier: workspace:^ + version: link:../utils devDependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/traverse': 7.20.13 - '@codemod/core': link:../core - '@codemod/parser': link:../parser - '@types/babel__core': 7.20.0 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.3 - '@types/dedent': 0.7.0 - '@types/jest': 25.2.3 - '@types/node': 18.14.0 - '@types/prettier': 2.7.2 - dedent: 0.7.0 - is-ci-cli: 2.2.0 - jest: 27.5.1 - typescript: 4.9.5 + '@babel/core': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/generator': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/traverse': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/core': + specifier: workspace:^ + version: link:../core + '@codemod-esm/parser': + specifier: workspace:^ + version: link:../parser + '@types/babel__core': + specifier: ^7.20.5 + version: 7.20.5 + '@types/babel__generator': + specifier: ^7.6.8 + version: 7.6.8 + '@types/babel__template': + specifier: ^7.4.4 + version: 7.4.4 + '@types/babel__traverse': + specifier: ^7.20.6 + version: 7.20.6 + '@types/bun': + specifier: ^1.2.4 + version: 1.2.4 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + dedent: + specifier: ^1.5.3 + version: 1.5.3 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages/parser: - specifiers: - '@babel/parser': 7.20.15 - '@babel/types': ^7.20.7 - '@types/jest': ^25.1.0 - '@types/node': ^18.14.0 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - typescript: ^4.9.5 - dependencies: - '@babel/parser': 7.20.15 + dependencies: + '@babel/parser': + specifier: ^7.26.9 + version: 7.26.9 devDependencies: - '@babel/types': 7.20.7 - '@types/jest': 25.2.3 - '@types/node': 18.14.0 - is-ci-cli: 2.2.0 - jest: 27.5.1 - typescript: 4.9.5 + '@babel/types': + specifier: ^7.26.9 + version: 7.26.9 + '@types/bun': + specifier: ^1.2.4 + version: 1.2.4 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages/rebuild-matchers: - specifiers: - '@babel/core': ^7.20.12 - '@babel/generator': ^7.20.14 - '@babel/traverse': ^7.20.13 - '@babel/types': ^7.20.7 - '@codemod/core': ^2.2.0 - '@codemod/parser': ^1.4.0 - '@codemod/utils': ^1.1.0 - '@types/babel__core': ^7.20.0 - '@types/babel__generator': ^7.6.4 - '@types/babel__template': ^7.4.1 - '@types/babel__traverse': ^7.18.3 - '@types/dedent': ^0.7.0 - '@types/jest': ^25.1.0 - '@types/node': ^18.14.0 - '@types/prettier': ^2.0.0 - dedent: ^0.7.0 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - typescript: ^4.9.5 - dependencies: - '@babel/types': 7.20.7 - '@codemod/utils': link:../utils + dependencies: + '@babel/types': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/utils': + specifier: workspace:^ + version: link:../utils devDependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/traverse': 7.20.13 - '@codemod/core': link:../core - '@codemod/parser': link:../parser - '@types/babel__core': 7.20.0 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.3 - '@types/dedent': 0.7.0 - '@types/jest': 25.2.3 - '@types/node': 18.14.0 - '@types/prettier': 2.7.2 - dedent: 0.7.0 - is-ci-cli: 2.2.0 - jest: 27.5.1 - typescript: 4.9.5 + '@babel/core': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/generator': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/traverse': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/core': + specifier: workspace:^ + version: link:../core + '@codemod-esm/parser': + specifier: workspace:^ + version: link:../parser + '@types/babel__core': + specifier: ^7.20.5 + version: 7.20.5 + '@types/babel__generator': + specifier: ^7.6.8 + version: 7.6.8 + '@types/babel__template': + specifier: ^7.4.4 + version: 7.4.4 + '@types/babel__traverse': + specifier: ^7.20.6 + version: 7.20.6 + '@types/jest': + specifier: ^29.5.14 + version: 29.5.14 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + dedent: + specifier: ^1.5.3 + version: 1.5.3 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages/utils: - specifiers: - '@babel/core': ^7.20.12 - '@babel/traverse': ^7.20.13 - '@babel/types': ^7.20.7 - '@codemod/parser': ^1.4.0 - '@types/babel__core': ^7.20.0 - '@types/babel__generator': ^7.6.4 - '@types/babel__traverse': ^7.18.3 - '@types/jest': ^29.4.0 - '@types/node': ^18.14.0 - is-ci-cli: ^2.2.0 - jest: ^27.3.1 - dependencies: - '@babel/core': 7.20.12 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@codemod/parser': link:../parser + dependencies: + '@babel/core': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/traverse': + specifier: ^7.26.9 + version: 7.26.9 + '@babel/types': + specifier: ^7.26.9 + version: 7.26.9 + '@codemod-esm/parser': + specifier: workspace:^ + version: link:../parser devDependencies: - '@types/babel__core': 7.20.0 - '@types/babel__generator': 7.6.4 - '@types/babel__traverse': 7.18.3 - '@types/jest': 29.4.0 - '@types/node': 18.14.0 - is-ci-cli: 2.2.0 - jest: 27.5.1 + '@types/babel__core': + specifier: ^7.20.5 + version: 7.20.5 + '@types/babel__generator': + specifier: ^7.6.8 + version: 7.6.8 + '@types/babel__traverse': + specifier: ^7.20.6 + version: 7.20.6 + '@types/bun': + specifier: ^1.2.4 + version: 1.2.4 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + typescript: + specifier: ^5.8.2 + version: 5.8.2 packages: - /@ampproject/remapping/2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@ampproject/remapping/-/remapping-2.2.0.tgz} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.17 - /@babel/code-frame/7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/code-frame/-/code-frame-7.18.6.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 + '@antfu/eslint-config@4.4.0': + resolution: {integrity: sha512-UqZ517Gc6fjjcjHz4e1cDsBX6juixDxIDOpPpn9h6qIcrzTBq3Hc2RfBcU3GYuLrhsmGanmEdtCd0tSg2gJ+cg==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.19.0 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^5.0.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.14.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true - /@babel/compat-data/7.20.14: - resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/compat-data/-/compat-data-7.20.14.tgz} - engines: {node: '>=6.9.0'} + '@antfu/install-pkg@1.0.0': + resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==} - /@babel/core/7.20.12: - resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/core/-/core-7.20.12.tgz} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helpers': 7.20.13 - '@babel/parser': 7.20.15 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - /@babel/generator/7.20.14: - resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/generator/-/generator-7.20.14.tgz} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - /@babel/helper-annotate-as-pure/7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} + '@babel/core@7.26.9': + resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: - resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz} + '@babel/generator@7.26.9': + resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.20.7 - dev: false - /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.5 - lru-cache: 5.1.1 - semver: 6.3.0 - /@babel/helper-create-class-features-plugin/7.20.12_@babel+core@7.20.12: - resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.20.7 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.12: - resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.3.1 - dev: false - - /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12: - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-environment-visitor/7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - /@babel/helper-explode-assignable-expression/7.18.6: - resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/helper-function-name/7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - /@babel/helper-hoist-variables/7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} + '@babel/helpers@7.26.9': + resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - /@babel/helper-member-expression-to-functions/7.20.7: - resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false + '@babel/parser@7.26.9': + resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} + engines: {node: '>=6.0.0'} + hasBin: true - /@babel/helper-module-imports/7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - /@babel/helper-module-transforms/7.20.11: - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz} + '@babel/traverse@7.26.9': + resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - /@babel/helper-optimise-call-expression/7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz} + '@babel/types@7.26.9': + resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/helper-plugin-utils/7.20.2: - resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz} - engines: {node: '>=6.9.0'} + '@clack/core@0.4.1': + resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==} - /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: false + '@clack/prompts@0.10.0': + resolution: {integrity: sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ==} - /@babel/helper-replace-supers/7.20.7: - resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.20.7 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: false + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - /@babel/helper-simple-access/7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} - /@babel/helper-skip-transparent-expression-wrappers/7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - /@babel/helper-split-export-declaration/7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 + '@es-joy/jsdoccomment@0.49.0': + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} + engines: {node: '>=16'} - /@babel/helper-string-parser/7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} - engines: {node: '>=6.9.0'} + '@es-joy/jsdoccomment@0.50.0': + resolution: {integrity: sha512-+zZymuVLH6zVwXPtCAtC+bDymxmEwEqDftdAK+f407IF1bnX49anIxvBhCA1AqUIfD6egj1jM1vUnSuijjNyYg==} + engines: {node: '>=18'} - /@babel/helper-validator-identifier/7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} - engines: {node: '>=6.9.0'} + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz} - engines: {node: '>=6.9.0'} + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - /@babel/helper-wrap-function/7.20.5: - resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.19.0 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - /@babel/helpers/7.20.13: - resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/helpers/-/helpers-7.20.13.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] - /@babel/highlight/7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/highlight/-/highlight-7.18.6.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] - /@babel/parser/7.20.15: - resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/parser/-/parser-7.20.15.tgz} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.20.7 + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 - dev: false + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] - /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] - /@babel/plugin-proposal-class-static-block/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] - /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] - /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] - /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] - /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - dev: false + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - dev: false + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] - /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] - /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - dev: false + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] - /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.20.12: - resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz} - engines: {node: '>=6.9.0'} + '@eslint-community/eslint-plugin-eslint-comments@4.4.1': + resolution: {integrity: sha512-lb/Z/MzbTf7CaVYM9WCFNQZ4L1yi3ev2fsFPF99h31ljhSEyUoyEsKsNWiU+qD1glbYTDJdqgyaLKtyTkkqtuQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12: - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz} - engines: {node: '>=6.9.0'} + '@eslint/compat@1.2.7': + resolution: {integrity: sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/js@9.21.0': + resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/markdown@6.2.2': + resolution: {integrity: sha512-U0/KgzI9BVUuHDQ9M2fuVgB0QZ1fSyzwm8jKmHr1dlsLHGHYzoeIA9yqLMdTbV3ivZfp6rTdt6zqre3TfNExUQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} - /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.12: - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} - /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} - /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + + '@hutson/parse-repository-url@3.0.2': + resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@lerna/create@8.2.1': + resolution: {integrity: sha512-Cz2u/fwc03D1EE6VFZCLMmI8FIUtGmxHQ3ECeNblsxv9i0YSKWe4Xm18sjO1xltG/K5ByiH8/HMeY9dlyAv22A==} + engines: {node: '>=18.0.0'} + + '@napi-rs/wasm-runtime@0.2.4': + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/arborist@7.5.4': + resolution: {integrity: sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/map-workspaces@3.0.6': + resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/metavuln-calculator@7.1.1': + resolution: {integrity: sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/name-from-folder@2.0.0': + resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@5.2.0': + resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/query@3.1.0': + resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/redact@2.0.1': + resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/run-script@8.1.0': + resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@nx/devkit@20.4.6': + resolution: {integrity: sha512-XGnCu4p9HUrs6pDZmfpBF5hmmvXzLvV+oZJP0slFRoi9hVdXiZ31t+Vh0AQc7zSbtPeCxEJDxY4dIJKgdesR0A==} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + nx: '>= 19 <= 21' - /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz} - engines: {node: '>=6.9.0'} + '@nx/nx-darwin-arm64@20.4.6': + resolution: {integrity: sha512-yYBkXCqx9XDS88IKlbXQUMKAmNE6OA7AwmreDabL0zKCeB5x9qit5iaGwQOYCA7PSdjFQTYvPdKK+S3ytKCJ2w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@nx/nx-darwin-x64@20.4.6': + resolution: {integrity: sha512-YeGCTQPmZmWYSJ3Km8rsx3YhohbQNp8grclyEp4KA7GXrPY+AKA9hcy0e5KwF4hPP41EEYkju2Xpl0XdmOfdBQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@nx/nx-freebsd-x64@20.4.6': + resolution: {integrity: sha512-49Ad0ysTWrNARmZxc02bmWfrGT5XKEnb5+Nms+RGzQVs+5WI6yqKx2iuLGrx2CDY0FEY11Z0zFpwvrZPGnnLXw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@nx/nx-linux-arm-gnueabihf@20.4.6': + resolution: {integrity: sha512-+SMu0xYf2Qim2AC4eYn2SKLXd94UwudMIdPiwbHQUtqRnX88T8rGQKxtINdEAEmIt/KkHyceyJ7lpHGRKmFfbw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@nx/nx-linux-arm64-gnu@20.4.6': + resolution: {integrity: sha512-1u+qawDO4R8w6op2mqIECzJ8YEViPhpqyq3RiRyAchPodUgrd1rnYnYj+xgQeED4d+L+djeZfhN6000WDhZ5oA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@nx/nx-linux-arm64-musl@20.4.6': + resolution: {integrity: sha512-8sFM3Z8k2iojXpL1E/ynlp+BPD8YWCs12cc+qk/4Ke5uOILcpDQ7XZSmzYoNIxp/0fcbZ1bosE+o7Lx4sbpfjQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@nx/nx-linux-x64-gnu@20.4.6': + resolution: {integrity: sha512-9t8jPREQN8a2j09O9q9aQI4cP6UXn7tOD+UVYhlQ9EO+EsHKCcaTzszeLoatySVxzeG0RB3vutMgaa8AiS4qcA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@nx/nx-linux-x64-musl@20.4.6': + resolution: {integrity: sha512-4EO71ND0OJcvinYNc+enB3ouFeKWjCcb73xG2RdjF5s8A9/RFFK6Z3zasYTmGWR06nSLm3mi6xiyiNXWvIdZMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@nx/nx-win32-arm64-msvc@20.4.6': + resolution: {integrity: sha512-o8Vurr2c9SMP+a2jrBD3VUkQqmHXqi1yC+NJHMzO7GiVPaCFoJR1IizAECXIiKUXv5dB+WFQow7yzVkQQAjk6g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@nx/nx-win32-x64-msvc@20.4.6': + resolution: {integrity: sha512-PtBlsTJHsHeAEawt2HrWkSEsHbwu7MlqFIrw8cS+tg7ZblpesUWva1L3Ylx0hEcQrY7UjMGDR0RVo2DKAUvKZA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/core@5.2.0': + resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.1': + resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@23.0.1': + resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} + + '@octokit/plugin-enterprise-rest@6.0.1': + resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} + + '@octokit/plugin-paginate-rest@11.4.4-cjs.2': + resolution: {integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==} + engines: {node: '>= 18'} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@octokit/core': '5' - /@babel/plugin-transform-block-scoping/7.20.15_@babel+core@7.20.12: - resolution: {integrity: sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz} - engines: {node: '>=6.9.0'} + '@octokit/plugin-request-log@4.0.1': + resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} + engines: {node: '>= 18'} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@octokit/core': '5' - /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz} - engines: {node: '>=6.9.0'} + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1': + resolution: {integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==} + engines: {node: '>= 18'} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-split-export-declaration': 7.18.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false + '@octokit/core': ^5 - /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz} - engines: {node: '>=6.9.0'} + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/rest@20.1.2': + resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} + engines: {node: '>= 18'} + + '@octokit/types@13.8.0': + resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} + + '@oven/bun-darwin-aarch64@1.2.4': + resolution: {integrity: sha512-xBz/Q7X6AFwMg7MXtBemjjt5uB+tvEYBmi9Zbm1r8qnI2V8m/Smuhma0EARhiVfLuIAYj2EM5qjzxeAFV4TBJA==} + cpu: [arm64] + os: [darwin] + + '@oven/bun-darwin-x64-baseline@1.2.4': + resolution: {integrity: sha512-stsq8vBiYgfGunBGlf2M7ST7Ymyw3WnwrxEeJ04vkKmMEEE2LpX8Rkol6UPRvZawab9s9/scFIRgFi6hu9H4SQ==} + cpu: [x64] + os: [darwin] + + '@oven/bun-darwin-x64@1.2.4': + resolution: {integrity: sha512-ufyty+2754QCFDhq447H39JiqabMlFRItLn1YFp+2hdpKak7KCYLGOUuHnlr1pmImKJzDHURjnvTTq1QRlUWAA==} + cpu: [x64] + os: [darwin] + + '@oven/bun-linux-aarch64-musl@1.2.4': + resolution: {integrity: sha512-+lxWF7up9MuB1ZdGxXCH3AH3XmYtdBC6soQ38+yg3+y3iOPrAlSG+wytHEkypN/UU2mGvCuaEED3cMvejrGdDw==} + cpu: [aarch64] + os: [linux] + + '@oven/bun-linux-aarch64@1.2.4': + resolution: {integrity: sha512-OhVpzme2vvLA7w8GYeJg2SQ2h2CwJQN9oYDiGeoML4EwE+DEoYHdxgaBZsQySOwZtFIr8ufpc/8iD4hssJ50qg==} + cpu: [arm64] + os: [linux] + + '@oven/bun-linux-x64-baseline@1.2.4': + resolution: {integrity: sha512-3nmDDZJH73MzhBg2sRYioj4CE8wgaz0w24OieMqj4/c44BbNr3X5RewrldsMD2cU6DtVbi52FuD5WpTw3N8nmw==} + cpu: [x64] + os: [linux] + + '@oven/bun-linux-x64-musl-baseline@1.2.4': + resolution: {integrity: sha512-qDsUvKCW0WUlVOt6Yx5eEzxgCbvzuSJBsu0sXtr6uGt8TnMKghmliRO5FmiMLQ0k/PUDA8vPJCtuv5k14bDi6g==} + cpu: [x64] + os: [linux] + + '@oven/bun-linux-x64-musl@1.2.4': + resolution: {integrity: sha512-cLdMbK7srNoUbYSG3Tp4GYdPAO0+5mgUhdbU053GZs0DLQmQ8h1JQhALp+ZjrUWstmQe7ddcNu7l7EAu6E76XA==} + cpu: [x64] + os: [linux] + + '@oven/bun-linux-x64@1.2.4': + resolution: {integrity: sha512-oof3ii92Cz2yIOZRbVFHMHmffCutRPFITIdXLZ2/rkqVuKUe0ZdqWjHPhxJFm31AL9MlJ/dSqDbPb51SaLI7tw==} + cpu: [x64] + os: [linux] + + '@oven/bun-windows-x64-baseline@1.2.4': + resolution: {integrity: sha512-j/G4bnfsRAiCvpTADda40m29iSGvueIaF9Kc9hBu4jN8dTS9fEXdNNXuf8c30/z7/npxw2dhzsAn8jbc5QvD1A==} + cpu: [x64] + os: [win32] + + '@oven/bun-windows-x64@1.2.4': + resolution: {integrity: sha512-4YRJd4pdaTWEM+uawYmchOeNv874RGAFpIZQubWnN4SBf6HfcDm0OMMZcm0f0I70Wd5gbPg1+rvCRtDZWVmZog==} + cpu: [x64] + os: [win32] + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@sigstore/bundle@2.3.2': + resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/core@1.1.0': + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.3.3': + resolution: {integrity: sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@2.3.2': + resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/tuf@2.3.4': + resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/verify@1.2.1': + resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@stylistic/eslint-plugin@4.2.0': + resolution: {integrity: sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/template': 7.20.7 - dev: false + eslint: '>=9.0.0' - /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz} - engines: {node: '>=6.9.0'} + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@2.0.1': + resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/bun@1.2.4': + resolution: {integrity: sha512-QtuV5OMR8/rdKJs213iwXDpfVvnskPXY/S0ZiFbsTjQZycuqPbMW8Gf/XhLfwE5njW8sxI2WjISURXPlHypMFA==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@22.13.9': + resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/ws@8.5.14': + resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@typescript-eslint/eslint-plugin@8.26.0': + resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz} - engines: {node: '>=6.9.0'} + '@typescript-eslint/parser@8.26.0': + resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz} - engines: {node: '>=6.9.0'} + '@typescript-eslint/scope-manager@8.26.0': + resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.26.0': + resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz} - engines: {node: '>=6.9.0'} + '@typescript-eslint/types@8.26.0': + resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.26.0': + resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + typescript: '>=4.8.4 <5.9.0' - /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.12: - resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz} - engines: {node: '>=6.9.0'} + '@typescript-eslint/utils@8.26.0': + resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz} - engines: {node: '>=6.9.0'} + '@typescript-eslint/visitor-keys@8.26.0': + resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitest/eslint-plugin@1.1.36': + resolution: {integrity: sha512-IjBV/fcL9NJRxGw221ieaDsqKqj8qUo7rvSupDxMjTXyhsCusHC6M+jFUNqBp4PCkYFcf5bjrKxeZoCEWoPxig==} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@typescript-eslint/utils': ^8.24.0 + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true - /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz} - engines: {node: '>=6.9.0'} + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + + '@yarnpkg/parsers@3.0.2': + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} + + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + add-stream@1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + ansis@3.17.0: + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + engines: {node: '>=14'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.8.1: + resolution: {integrity: sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + bin-links@4.0.4: + resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + builtin-modules@4.0.0: + resolution: {integrity: sha512-p1n8zyCkt1BVrKNFymOHjcDSAl7oq/gUvfgULv2EblgpPVQlQr9yHnWjg9IJ2MhfwPqiYqMMrr01OY7yQoK2yA==} + engines: {node: '>=18.20'} + + bun-types@1.2.4: + resolution: {integrity: sha512-nDPymR207ZZEoWD4AavvEaa/KZe/qlrbMSchqpQwovPZCKc7pwMoENjEtHgMKaAjJhy+x6vfqSBA1QU3bJgs0Q==} + + bun@1.2.4: + resolution: {integrity: sha512-ZY0EZ/UKqheaLeAtMsfJA6jWoWvV9HAtfFaOJSmS3LrNpFKs1Sg5fZLSsczN1h3a+Dtheo4O3p3ZYWrf40kRGw==} + os: [darwin, linux, win32] + hasBin: true + + byte-size@8.1.1: + resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} + engines: {node: '>=12.17'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001702: + resolution: {integrity: sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@4.1.0: + resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} + engines: {node: '>=10'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} + engines: {node: '>=8'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + cmd-shim@6.0.3: + resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.1: + resolution: {integrity: sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-core@5.0.1: + resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} + engines: {node: '>=14'} + + conventional-changelog-preset-loader@3.0.0: + resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} + engines: {node: '>=14'} + + conventional-changelog-writer@6.0.1: + resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} + engines: {node: '>=14'} + hasBin: true + + conventional-commits-filter@3.0.0: + resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} + engines: {node: '>=14'} + + conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + + conventional-recommended-bump@7.0.1: + resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} + engines: {node: '>=14'} + hasBin: true + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.41.0: + resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + dateformat@3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-indent@5.0.0: + resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} + engines: {node: '>=4'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.5.111: + resolution: {integrity: sha512-vJyJlO95wQRAw6K2ZGF/8nol7AcbCOnp8S6H91mwOOBbXoS9seDBYxCTPYAFsvXLxl3lc0jLXXe9GLxC4nXVog==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + + enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-compat-utils@0.6.4: + resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@2.1.0: + resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} + peerDependencies: + eslint: ^9.5.0 + + eslint-flat-config-utils@2.0.1: + resolution: {integrity: sha512-brf0eAgQ6JlKj3bKfOTuuI7VcCZvi8ZCD1MMTVoEvS/d38j8cByZViLFALH/36+eqB17ukmfmKq3bWzGvizejA==} + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-json-compat-utils@0.2.1: + resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} + engines: {node: '>=12'} + peerDependencies: + '@eslint/json': '*' + eslint: '*' + jsonc-eslint-parser: ^2.4.0 + peerDependenciesMeta: + '@eslint/json': + optional: true + + eslint-merge-processors@2.0.0: + resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@3.1.0: + resolution: {integrity: sha512-BKlJcpIG8OGyU5JwQCdyTGaLuRgItheEYinhNroCx3bcuz2bCSYK0eNzJvPy2TY8yyz0uSSRxr5KHuQ1WOdOKg==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@3.1.0: + resolution: {integrity: sha512-KLgxB8NMQ0iL7iwehyeqWVE7MaqRPwLTGW4d2CXYOj5tt4j6yU/hiNxQ/35FLq4SnMhv+tpE6FCvYbV4VS+BLw==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import-x@4.6.1: + resolution: {integrity: sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-jsdoc@50.6.3: + resolution: {integrity: sha512-NxbJyt1M5zffPcYZ8Nb53/8nnbIScmiLAMdoe0/FAszwb7lcSiX3iYBTsuF7RV84dZZJC8r3NghomrUXsmWvxQ==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.19.1: + resolution: {integrity: sha512-MmlAOaZK1+Lg7YoCZPGRjb88ZjT+ct/KTsvcsbZdBm+w8WMzGx+XEmexk0m40P1WV9G2rFV7X3klyRGRpFXEjA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-n@17.16.1: + resolution: {integrity: sha512-/7FVAwjUrix9P5lycnsYRIQRwFo/DZROD+ZXWLpE+/EZWLyuLvyFaRdAPYJSz+nlAdZIZp+LAzlBerQSVYUNFg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@4.9.0: + resolution: {integrity: sha512-76lDfJnonOcXGW3bEXuqhEGId0LrOlvIE1yLHvK/eKMMPOc0b43KchAIR2Bdbqlg+LPXU5/Q+UzuzkO+cWHT6w==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + eslint: '>=8.0.0' + + eslint-plugin-regexp@2.7.0: + resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.12.0: + resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@57.0.0: + resolution: {integrity: sha512-zUYYa6zfNdTeG9BISWDlcLmz16c+2Ck2o5ZDHh0UzXJz3DEP7xjmlVDTzbyV0W+XksgZ0q37WEWzN2D2Ze+g9Q==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=9.20.0' + + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-plugin-vue@9.32.0: + resolution: {integrity: sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.17.0: + resolution: {integrity: sha512-Q3LXFRnNpGYAK/PM0BY1Xs0IY1xTLfM0kC986nNQkx1l8tOGz+YS50N6wXkAJkrBpeUN9OxEMB7QJ+9MTDAqIQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@2.0.0: + resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: '>=9.0.0' + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.21.0: + resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@5.0.0: + resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + + exsolve@1.0.1: + resolution: {integrity: sha512-Smf0iQtkQVJLaph8r/qS8C8SWfQkaq9Q/dFcD44MLbJj6DNhlWefVuaS21SjfqOsBbjVlKtbCj6L9ekXK6EZUg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-pkg-repo@4.2.1: + resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} + engines: {node: '>=6.9.0'} + hasBin: true + + get-port@5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.0: + resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + git-raw-commits@3.0.0: + resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} + engines: {node: '>=14'} + hasBin: true + + git-remote-origin-url@2.0.0: + resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} + engines: {node: '>=4'} + + git-semver-tags@5.0.1: + resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} + engines: {node: '>=14'} + hasBin: true + + git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + + git-url-parse@14.0.0: + resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} + + gitconfiglocal@1.0.0: + resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.1: + resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} + engines: {node: 20 || >=22} + hasBin: true + + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + init-package-json@6.0.3: + resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} + engines: {node: ^16.14.0 || >=18.0.0} + + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-builtin-module@4.0.0: + resolution: {integrity: sha512-rWP3AMAalQSesXO8gleROyL2iKU73SX5Er66losQn9rWOWL4Gef0a/xOEOVqjWGMuR2vHG3FJ8UUmT700O8oFg==} + engines: {node: '>=18.20'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + + is-stream@2.0.0: + resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + lerna@8.2.1: + resolution: {integrity: sha512-Xwjv9/4ixp7fpBWhtvp7dz4NoQT8DEf7hzibHKCgu/8kmZUHeXsTn+TKspHqhI+p4YDmdkDnkg8xmymz73kVOg==} + engines: {node: '>=18.0.0'} + hasBin: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + libnpmaccess@8.0.6: + resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} + engines: {node: ^16.14.0 || >=18.0.0} + + libnpmpublish@9.0.9: + resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} + engines: {node: ^16.14.0 || >=18.0.0} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lint-staged@15.4.3: + resolution: {integrity: sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} + engines: {node: '>=18.0.0'} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + load-json-file@6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} + + local-pkg@1.1.1: + resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} + engines: {node: '>=14'} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.ismatch@4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.2: + resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} + engines: {node: ^16.14.0 || >=18.0.0} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.0.5: + resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + modify-values@1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp@10.3.1: + resolution: {integrity: sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-registry-fetch@17.1.0: + resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nx@20.4.6: + resolution: {integrity: sha512-gXRw3urAq4glK6B1+jxHjzXRyuNrFFI7L3ggNg34UmQ46AyT7a6FgjZp2OZ779urwnoQSTvxNfBuD4+RrB31MQ==} + hasBin: true + peerDependencies: + '@swc-node/register': ^1.8.0 + '@swc/core': ^1.3.85 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map-series@2.1.0: + resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} + engines: {node: '>=8'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-pipe@3.1.0: + resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} + engines: {node: '>=8'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + p-waterfall@2.1.1: + resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} + engines: {node: '>=8'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + pacote@18.0.6: + resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-conflict-json@3.0.1: + resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports@2.2.1: + resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} + engines: {node: '>= 18'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + parse-path@7.0.1: + resolution: {integrity: sha512-6ReLMptznuuOEzLoGEa+I1oWRSj2Zna5jLWC+l6zlfAI4dbbSaIES29ThzuPkbhNahT65dWzfoZEO6cfJw2Ksg==} + + parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.1.0: + resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proggy@2.0.0: + resolution: {integrity: sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + promzard@1.0.2: + resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.8: + resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + read-cmd-shim@4.0.0: + resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + read@3.0.1: + resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + engines: {node: '>=14'} + hasBin: true + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@2.3.1: + resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sort-keys@2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} + engines: {node: '>=4'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strong-log-transformer@2.1.0: + resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} + engines: {node: '>=4'} + hasBin: true + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + temp-dir@1.0.0: + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} + engines: {node: '>=4'} + + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-declaration-location@1.0.5: + resolution: {integrity: sha512-WqmlO9IoeYwCqJ2E9kHMcY9GZhhfLYItC3VnHDlPOrg6nNdUWS4wn4hhDZUPt60m1EvtjPIZyprTjpI992Bgzw==} + peerDependencies: + typescript: '>=4.0.0' + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tuf-js@2.2.1: + resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} + engines: {node: ^16.14.0 || >=18.0.0} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.4.1: + resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} + engines: {node: '>=6'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@4.36.0: + resolution: {integrity: sha512-3T/PUdKTCnkUmhQU6FFJEHsLwadsRegktX3TNHk+2JJB9HlA8gp1/VXblXVDI93kSnXF2rdPx0GMbHtJIV2LPg==} + engines: {node: '>=16'} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@3.2.0: + resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} + engines: {node: '>=6'} + + write-pkg@4.0.0: + resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} + engines: {node: '>=8'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml-eslint-parser@1.3.0: + resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} - /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} - /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12: - resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helper-plugin-utils': 7.20.2 + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/eslint-config@4.4.0(@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(@vue/compiler-sfc@3.5.13)(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': + dependencies: + '@antfu/install-pkg': 1.0.0 + '@clack/prompts': 0.10.0 + '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@eslint/markdown': 6.2.2 + '@stylistic/eslint-plugin': 4.2.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@vitest/eslint-plugin': 1.1.36(@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + ansis: 3.17.0 + cac: 6.7.14 + eslint: 9.21.0(jiti@1.21.6) + eslint-config-flat-gitignore: 2.1.0(eslint@9.21.0(jiti@1.21.6)) + eslint-flat-config-utils: 2.0.1 + eslint-merge-processors: 2.0.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-antfu: 3.1.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-command: 3.1.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-import-x: 4.6.1(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint-plugin-jsdoc: 50.6.3(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-jsonc: 2.19.1(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-n: 17.16.1(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 4.9.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint-plugin-regexp: 2.7.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-toml: 0.12.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-unicorn: 57.0.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-vue: 9.32.0(eslint@9.21.0(jiti@1.21.6)) + eslint-plugin-yml: 1.17.0(eslint@9.21.0(jiti@1.21.6)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.21.0(jiti@1.21.6)) + globals: 16.0.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 1.1.1 + parse-gitignore: 2.0.0 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.21.0(jiti@1.21.6)) + yaml-eslint-parser: 1.3.0 transitivePeerDependencies: + - '@eslint/json' + - '@typescript-eslint/utils' + - '@vue/compiler-sfc' - supports-color - dev: false + - typescript + - vitest - /@babel/plugin-transform-modules-commonjs/7.20.11_@babel+core@7.20.12: - resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@antfu/install-pkg@1.0.0': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-simple-access': 7.20.2 - transitivePeerDependencies: - - supports-color - dev: false + package-manager-detector: 0.2.11 + tinyexec: 0.3.2 - /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12: - resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/code-frame@7.26.2': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.8': {} + + '@babel/core@7.26.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helpers': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/generator@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color - dev: false + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 - /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12: - resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/helper-compilation-targets@7.26.5': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 - /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.20.7 + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 - /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/parser@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/types': 7.26.9 - /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.12: - resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/template@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - regenerator-transform: 0.15.1 - dev: false + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 - /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/traverse@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/types@7.26.9': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 - /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@clack/core@0.4.1': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false + picocolors: 1.1.1 + sisteransi: 1.0.5 - /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@clack/prompts@0.10.0': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@clack/core': 0.4.1 + picocolors: 1.1.1 + sisteransi: 1.0.5 - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/core@1.3.1': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 - /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/runtime@1.3.1': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + tslib: 2.8.1 - /@babel/plugin-transform-typescript/7.20.13_@babel+core@7.20.12: - resolution: {integrity: sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/wasi-threads@1.0.1': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + tslib: 2.8.1 - /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12: - resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@es-joy/jsdoccomment@0.49.0': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 - /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@es-joy/jsdoccomment@0.50.0': dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 + '@typescript-eslint/types': 8.26.0 + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 - /@babel/preset-env/7.20.2_@babel+core@7.20.12: - resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/preset-env/-/preset-env-7.20.2.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-class-static-block': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.12 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoping': 7.20.15_@babel+core@7.20.12 - '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 - '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12 - '@babel/plugin-transform-modules-commonjs': 7.20.11_@babel+core@7.20.12 - '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12 - '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12 - '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.12 - '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 - '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 - '@babel/types': 7.20.7 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 - core-js-compat: 3.28.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/aix-ppc64@0.25.0': + optional: true - /@babel/preset-modules/0.1.5_@babel+core@7.20.12: - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 - '@babel/types': 7.20.7 - esutils: 2.0.3 - dev: false + '@esbuild/android-arm64@0.25.0': + optional: true - /@babel/preset-typescript/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-typescript': 7.20.13_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false + '@esbuild/android-arm@0.25.0': + optional: true - /@babel/regjsgen/0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz} - dev: false + '@esbuild/android-x64@0.25.0': + optional: true - /@babel/runtime/7.20.13: - resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/runtime/-/runtime-7.20.13.tgz} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - dev: false + '@esbuild/darwin-arm64@0.25.0': + optional: true - /@babel/template/7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/template/-/template-7.20.7.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 + '@esbuild/darwin-x64@0.25.0': + optional: true - /@babel/traverse/7.20.13: - resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/traverse/-/traverse-7.20.13.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@esbuild/freebsd-arm64@0.25.0': + optional: true - /@babel/types/7.20.7: - resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@babel/types/-/types-7.20.7.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 + '@esbuild/freebsd-x64@0.25.0': + optional: true - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz} - dev: true + '@esbuild/linux-arm64@0.25.0': + optional: true - /@commitlint/cli/14.1.0: - resolution: {integrity: sha512-Orq62jkl9qAGvjFqhehtAqjGY/duJ8hIRPPIHmGR2jIB96D4VTmazS3ZvqJz2Q9kKr61mLAk/171zm0FVzQCYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/cli/-/cli-14.1.0.tgz} - engines: {node: '>=v12'} - hasBin: true - dependencies: - '@commitlint/format': 14.1.0 - '@commitlint/lint': 14.1.0 - '@commitlint/load': 14.1.0 - '@commitlint/read': 14.0.0 - '@commitlint/types': 14.0.0 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.0 - dev: true + '@esbuild/linux-arm@0.25.0': + optional: true - /@commitlint/config-conventional/14.1.0: - resolution: {integrity: sha512-JuhCqkEv8jyqmd54EpXPsQFpYc/8k7sfP1UziRdEvZSJUCLxz+8Pk4cNS0oF1BtjaWO7ITgXPlIZg47PyApGmg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/config-conventional/-/config-conventional-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - conventional-changelog-conventionalcommits: 4.6.3 - dev: true + '@esbuild/linux-ia32@0.25.0': + optional: true - /@commitlint/ensure/14.1.0: - resolution: {integrity: sha512-xrYvFdqVepT3XA1BmSh88eKbvYKtLuQu98QLfgxVmwS99Kj3yW0sT3D7jGvNsynbIx2dhbXofDyubf/DKkpFrQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/ensure/-/ensure-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/types': 14.0.0 - lodash: 4.17.21 - dev: true + '@esbuild/linux-loong64@0.25.0': + optional: true - /@commitlint/execute-rule/14.0.0: - resolution: {integrity: sha512-Hh/HLpCBDlrD3Rx2x2pDBx6CU+OtVqGXh7mbFpNihAVx6B0zyZqm/vv0cdwdhfGW5OEn1BhCqHf1ZOvL/DwdWA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/execute-rule/-/execute-rule-14.0.0.tgz} - engines: {node: '>=v12'} - dev: true + '@esbuild/linux-mips64el@0.25.0': + optional: true - /@commitlint/format/14.1.0: - resolution: {integrity: sha512-sF6engqqHjvxGctWRKjFs/HQeNowlpbVmmoP481b2UMQnVQnjjfXJvQsoLpaqFUvgc2sHM4L85F8BmAw+iHG1w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/format/-/format-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/types': 14.0.0 - chalk: 4.1.2 - dev: true - - /@commitlint/is-ignored/14.0.0: - resolution: {integrity: sha512-nJltYjXTa+mk+6SPe35nOZCCvt3Gh5mbDz008KQ4OPcn1GX1NG+pEgz1Kx3agDp/pc+JGnsrr5GV00gygIoloA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/is-ignored/-/is-ignored-14.0.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/types': 14.0.0 - semver: 7.3.5 - dev: true - - /@commitlint/lint/14.1.0: - resolution: {integrity: sha512-CApGJEOtWU/CcuPD8HkOR1jdUYpjKutGPaeby9nSFzJhwl/UQOjxc4Nd+2g2ygsMi5l3N4j2sWQYEgccpFC3lA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/lint/-/lint-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/is-ignored': 14.0.0 - '@commitlint/parse': 14.0.0 - '@commitlint/rules': 14.1.0 - '@commitlint/types': 14.0.0 - dev: true - - /@commitlint/load/14.1.0: - resolution: {integrity: sha512-p+HbgjhkqLsnxyjOUdEYHztHCp8n2oLVUJTmRPuP5FXLNevh6Gwmxf+NYC2J0sgD084aV2CFi3qu1W4yHWIknA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/load/-/load-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/execute-rule': 14.0.0 - '@commitlint/resolve-extends': 14.1.0 - '@commitlint/types': 14.0.0 - '@endemolshinegroup/cosmiconfig-typescript-loader': 3.0.2_prdn7pc7mycjsinmi5fnyv4we4 - chalk: 4.1.2 - cosmiconfig: 7.1.0 - lodash: 4.17.21 - resolve-from: 5.0.0 - typescript: 4.9.5 - dev: true - - /@commitlint/message/14.0.0: - resolution: {integrity: sha512-316Pum+bwDcZamOQw0DXSY17Dq9EjvL1zKdYIZqneu4lnXN6uFfi53Y/sP5crW6zlLdnuTHe1MnuewXPLHfH1Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/message/-/message-14.0.0.tgz} - engines: {node: '>=v12'} - dev: true - - /@commitlint/parse/14.0.0: - resolution: {integrity: sha512-49qkk0TcwdxJPZUX8MElEzMlRFIL/cg64P4pk8HotFEm2HYdbxxZp6v3cbVw5WOsnRA0frrs+NNoOcIT83ccMQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/parse/-/parse-14.0.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/types': 14.0.0 - conventional-changelog-angular: 5.0.13 - conventional-commits-parser: 3.2.4 - dev: true - - /@commitlint/read/14.0.0: - resolution: {integrity: sha512-WXXcSLBqwXTqnEmB0lbU2TrayDJ2G3qI/lxy1ianVmpQol8p9BjodAA6bYxtYYHdQFVXUrIsclzFP/naWG+hlQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/read/-/read-14.0.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/top-level': 14.0.0 - '@commitlint/types': 14.0.0 - fs-extra: 10.1.0 - git-raw-commits: 2.0.11 - dev: true - - /@commitlint/resolve-extends/14.1.0: - resolution: {integrity: sha512-ko80k6QB6E6/OvGNWy4u7gzzWyluDT3VDNL2kfZaDywsnrYntUKyT4Do97gQ7orttITzj2GRtk3KWClVz4rUUQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/resolve-extends/-/resolve-extends-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - import-fresh: 3.3.0 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true + '@esbuild/linux-ppc64@0.25.0': + optional: true - /@commitlint/rules/14.1.0: - resolution: {integrity: sha512-6jmv414/1JzGzDI/DS+snAMhcL6roQKPdg0WB3kWTWN52EvWXBFm0HIMGt2H/FlRKxozwVXlQN60/1fNIl98xA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/rules/-/rules-14.1.0.tgz} - engines: {node: '>=v12'} - dependencies: - '@commitlint/ensure': 14.1.0 - '@commitlint/message': 14.0.0 - '@commitlint/to-lines': 14.0.0 - '@commitlint/types': 14.0.0 - execa: 5.1.1 - dev: true + '@esbuild/linux-riscv64@0.25.0': + optional: true - /@commitlint/to-lines/14.0.0: - resolution: {integrity: sha512-uIXk54oJDuYyLpI208s3+cGmJ323yvSJ9LB7yUDMWUeJi2LgRxE2EBZL995kLQdnoAsBBXcLq+VDyppg5bV/cg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/to-lines/-/to-lines-14.0.0.tgz} - engines: {node: '>=v12'} - dev: true + '@esbuild/linux-s390x@0.25.0': + optional: true - /@commitlint/top-level/14.0.0: - resolution: {integrity: sha512-MZDKZfWfl9g4KozgWBGTCrI2cXkMHnBFlhwvEfrAu5G8wd5aL1f2uWEUMnBMjUikmhVj99i1pzge4XFWHQ29wQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/top-level/-/top-level-14.0.0.tgz} - engines: {node: '>=v12'} - dependencies: - find-up: 5.0.0 - dev: true + '@esbuild/linux-x64@0.25.0': + optional: true - /@commitlint/types/14.0.0: - resolution: {integrity: sha512-sIls1nP2uSbGL466edYlh8mn7O/WP4i3bcvP+2DMhkscRCSgaPhNRWDilhYVsHt2Vu1HTQ27uT0Bj5/Lt2+EcQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@commitlint/types/-/types-14.0.0.tgz} - engines: {node: '>=v12'} - dependencies: - chalk: 4.1.2 - dev: true + '@esbuild/netbsd-arm64@0.25.0': + optional: true - /@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_prdn7pc7mycjsinmi5fnyv4we4: - resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz} - engines: {node: '>=10.0.0'} - peerDependencies: - cosmiconfig: '>=6' - dependencies: - cosmiconfig: 7.1.0 - lodash.get: 4.4.2 - make-error: 1.3.6 - ts-node: 9.1.1_typescript@4.9.5 - tslib: 2.5.0 - transitivePeerDependencies: - - typescript - dev: true + '@esbuild/netbsd-x64@0.25.0': + optional: true - /@eslint/eslintrc/1.4.1: - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.4.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true + '@esbuild/openbsd-arm64@0.25.0': + optional: true - /@gar/promisify/1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@gar/promisify/-/promisify-1.1.3.tgz} - dev: true + '@esbuild/openbsd-x64@0.25.0': + optional: true - /@humanwhocodes/config-array/0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true + '@esbuild/sunos-x64@0.25.0': + optional: true - /@humanwhocodes/module-importer/1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} - engines: {node: '>=12.22'} - dev: true + '@esbuild/win32-arm64@0.25.0': + optional: true - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} - dev: true + '@esbuild/win32-ia32@0.25.0': + optional: true - /@hutson/parse-repository-url/3.0.2: - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz} - engines: {node: '>=6.9.0'} - dev: true + '@esbuild/win32-x64@0.25.0': + optional: true - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} - engines: {node: '>=8'} + '@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.21.0(jiti@1.21.6))': dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@istanbuljs/schema/-/schema-0.1.3.tgz} - engines: {node: '>=8'} - dev: true + escape-string-regexp: 4.0.0 + eslint: 9.21.0(jiti@1.21.6) + ignore: 5.3.2 - /@jest/console/27.5.1: - resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/console/-/console-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@1.21.6))': dependencies: - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - dev: true + eslint: 9.21.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 - /@jest/core/27.5.1: - resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/core/-/core-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/compat@1.2.7(eslint@9.21.0(jiti@1.21.6))': + optionalDependencies: + eslint: 9.21.0(jiti@1.21.6) + + '@eslint/config-array@0.19.2': dependencies: - '@jest/console': 27.5.1 - '@jest/reporters': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 27.5.1 - jest-config: 27.5.1 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-resolve-dependencies: 27.5.1 - jest-runner: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - jest-watcher: 27.5.1 - micromatch: 4.0.5 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 transitivePeerDependencies: - - bufferutil - - canvas - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/environment/-/environment-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - jest-mock: 27.5.1 - dev: true - - /@jest/expect-utils/29.4.3: - resolution: {integrity: sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.3 - dev: true - - /@jest/fake-timers/27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 18.14.0 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /@jest/globals/27.5.1: - resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/globals/-/globals-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/types': 27.5.1 - expect: 27.5.1 - dev: true - - /@jest/reporters/27.5.1: - resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/reporters/-/reporters-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + + '@eslint/core@0.10.0': dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-haste-map: 27.5.1 - jest-resolve: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.1.1 - transitivePeerDependencies: - - supports-color - dev: true + '@types/json-schema': 7.0.15 - /@jest/schemas/29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/schemas/-/schemas-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@eslint/core@0.12.0': dependencies: - '@sinclair/typebox': 0.25.23 - dev: true + '@types/json-schema': 7.0.15 - /@jest/source-map/27.5.1: - resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/source-map/-/source-map-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@eslint/eslintrc@3.3.0': dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - - /@jest/test-result/27.5.1: - resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/test-result/-/test-result-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/types': 27.5.1 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/27.5.1: - resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-runtime: 27.5.1 + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true - /@jest/transform/27.5.1: - resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/transform/-/transform-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@eslint/js@9.21.0': {} + + '@eslint/markdown@6.2.2': dependencies: - '@babel/core': 7.20.12 - '@jest/types': 27.5.1 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.9.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-regex-util: 27.5.1 - jest-util: 27.5.1 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 + '@eslint/core': 0.10.0 + '@eslint/plugin-kit': 0.2.7 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - - /@jest/types/25.5.0: - resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/types/-/types-25.5.0.tgz} - engines: {node: '>= 8.3'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 1.1.2 - '@types/yargs': 15.0.15 - chalk: 3.0.0 - dev: true - - /@jest/types/27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/types/-/types-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.14.0 - '@types/yargs': 16.0.5 - chalk: 4.1.2 - dev: true - /@jest/types/29.4.3: - resolution: {integrity: sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jest/types/-/types-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.4.3 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.14.0 - '@types/yargs': 17.0.22 - chalk: 4.1.2 - dev: true + '@eslint/object-schema@2.1.6': {} - /@jridgewell/gen-mapping/0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} - engines: {node: '>=6.0.0'} + '@eslint/plugin-kit@0.2.7': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@eslint/core': 0.12.0 + levn: 0.4.1 - /@jridgewell/gen-mapping/0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} - engines: {node: '>=6.0.0'} + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} - engines: {node: '>=6.0.0'} + '@humanwhocodes/module-importer@1.0.1': {} - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} - engines: {node: '>=6.0.0'} + '@humanwhocodes/retry@0.3.1': {} - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + '@humanwhocodes/retry@0.4.2': {} - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@hutson/parse-repository-url@3.0.2': {} - /@lerna/add/4.0.0: - resolution: {integrity: sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/add/-/add-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@isaacs/cliui@8.0.2': dependencies: - '@lerna/bootstrap': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/npm-conf': 4.0.0 - '@lerna/validation-error': 4.0.0 - dedent: 0.7.0 - npm-package-arg: 8.1.5 - p-map: 4.0.0 - pacote: 11.3.5 - semver: 7.3.8 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /@lerna/bootstrap/4.0.0: - resolution: {integrity: sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/bootstrap/-/bootstrap-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/has-npm-version': 4.0.0 - '@lerna/npm-install': 4.0.0 - '@lerna/package-graph': 4.0.0 - '@lerna/pulse-till-done': 4.0.0 - '@lerna/rimraf-dir': 4.0.0 - '@lerna/run-lifecycle': 4.0.0 - '@lerna/run-topologically': 4.0.0 - '@lerna/symlink-binary': 4.0.0 - '@lerna/symlink-dependencies': 4.0.0 - '@lerna/validation-error': 4.0.0 - dedent: 0.7.0 - get-port: 5.1.1 - multimatch: 5.0.0 - npm-package-arg: 8.1.5 - npmlog: 4.1.2 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-waterfall: 2.1.1 - read-package-tree: 5.3.1 - semver: 7.3.8 - dev: true + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@lerna/changed/4.0.0: - resolution: {integrity: sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/changed/-/changed-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@isaacs/string-locale-compare@1.1.0': {} + + '@jest/expect-utils@29.7.0': dependencies: - '@lerna/collect-updates': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/listable': 4.0.0 - '@lerna/output': 4.0.0 - dev: true + jest-get-type: 29.6.3 - /@lerna/check-working-tree/4.0.0: - resolution: {integrity: sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@jest/schemas@29.6.3': dependencies: - '@lerna/collect-uncommitted': 4.0.0 - '@lerna/describe-ref': 4.0.0 - '@lerna/validation-error': 4.0.0 - dev: true + '@sinclair/typebox': 0.27.8 - /@lerna/child-process/4.0.0: - resolution: {integrity: sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/child-process/-/child-process-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@jest/types@29.6.3': dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.13.9 + '@types/yargs': 17.0.33 chalk: 4.1.2 - execa: 5.1.1 - strong-log-transformer: 2.1.0 - dev: true - /@lerna/clean/4.0.0: - resolution: {integrity: sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/clean/-/clean-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@jridgewell/gen-mapping@0.3.8': dependencies: - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/prompt': 4.0.0 - '@lerna/pulse-till-done': 4.0.0 - '@lerna/rimraf-dir': 4.0.0 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-waterfall: 2.1.1 - dev: true + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - /@lerna/cli/4.0.0: - resolution: {integrity: sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/cli/-/cli-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/global-options': 4.0.0 - dedent: 0.7.0 - npmlog: 4.1.2 - yargs: 16.2.0 - dev: true + '@jridgewell/resolve-uri@3.1.2': {} - /@lerna/collect-uncommitted/4.0.0: - resolution: {integrity: sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - chalk: 4.1.2 - npmlog: 4.1.2 - dev: true + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} - /@lerna/collect-updates/4.0.0: - resolution: {integrity: sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/collect-updates/-/collect-updates-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/describe-ref': 4.0.0 - minimatch: 3.1.2 - npmlog: 4.1.2 - slash: 3.0.0 - dev: true + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - /@lerna/command/4.0.0: - resolution: {integrity: sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/command/-/command-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@lerna/create@8.2.1(encoding@0.1.13)(typescript@5.8.2)': dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/package-graph': 4.0.0 - '@lerna/project': 4.0.0 - '@lerna/validation-error': 4.0.0 - '@lerna/write-log-file': 4.0.0 + '@npmcli/arborist': 7.5.4 + '@npmcli/package-json': 5.2.0 + '@npmcli/run-script': 8.1.0 + '@nx/devkit': 20.4.6(nx@20.4.6) + '@octokit/plugin-enterprise-rest': 6.0.1 + '@octokit/rest': 20.1.2 + aproba: 2.0.0 + byte-size: 8.1.1 + chalk: 4.1.0 clone-deep: 4.0.1 - dedent: 0.7.0 - execa: 5.1.1 - is-ci: 2.0.0 - npmlog: 4.1.2 - dev: true - - /@lerna/conventional-commits/4.0.0: - resolution: {integrity: sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/validation-error': 4.0.0 - conventional-changelog-angular: 5.0.13 - conventional-changelog-core: 4.2.4 - conventional-recommended-bump: 6.1.0 - fs-extra: 9.1.0 - get-stream: 6.0.1 - lodash.template: 4.5.0 - npm-package-arg: 8.1.5 - npmlog: 4.1.2 - pify: 5.0.0 - semver: 7.3.8 - dev: true - - /@lerna/create-symlink/4.0.0: - resolution: {integrity: sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/create-symlink/-/create-symlink-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - cmd-shim: 4.1.0 - fs-extra: 9.1.0 - npmlog: 4.1.2 - dev: true - - /@lerna/create/4.0.0: - resolution: {integrity: sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/create/-/create-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/npm-conf': 4.0.0 - '@lerna/validation-error': 4.0.0 - dedent: 0.7.0 - fs-extra: 9.1.0 + cmd-shim: 6.0.3 + color-support: 1.1.3 + columnify: 1.6.0 + console-control-strings: 1.1.0 + conventional-changelog-core: 5.0.1 + conventional-recommended-bump: 7.0.1 + cosmiconfig: 9.0.0(typescript@5.8.2) + dedent: 1.5.3 + execa: 5.0.0 + fs-extra: 11.3.0 + get-stream: 6.0.0 + git-url-parse: 14.0.0 + glob-parent: 6.0.2 globby: 11.1.0 - init-package-json: 2.0.5 - npm-package-arg: 8.1.5 + graceful-fs: 4.2.11 + has-unicode: 2.0.1 + ini: 1.3.8 + init-package-json: 6.0.3 + inquirer: 8.2.6 + is-ci: 3.0.1 + is-stream: 2.0.0 + js-yaml: 4.1.0 + libnpmpublish: 9.0.9 + load-json-file: 6.2.0 + lodash: 4.17.21 + make-dir: 4.0.0 + minimatch: 3.0.5 + multimatch: 5.0.0 + node-fetch: 2.6.7(encoding@0.1.13) + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-registry-fetch: 17.1.0 + nx: 20.4.6 + p-map: 4.0.0 + p-map-series: 2.1.0 + p-queue: 6.6.2 p-reduce: 2.1.0 - pacote: 11.3.5 + pacote: 18.0.6 pify: 5.0.0 - semver: 7.3.8 + read-cmd-shim: 4.0.0 + resolve-from: 5.0.0 + rimraf: 4.4.1 + semver: 7.7.1 + set-blocking: 2.0.0 + signal-exit: 3.0.7 slash: 3.0.0 + ssri: 10.0.6 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar: 6.2.1 + temp-dir: 1.0.0 + upath: 2.0.1 + uuid: 10.0.0 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 3.0.0 - whatwg-url: 8.7.0 - yargs-parser: 20.2.4 + validate-npm-package-name: 5.0.1 + wide-align: 1.1.5 + write-file-atomic: 5.0.1 + write-pkg: 4.0.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - babel-plugin-macros - bluebird + - debug + - encoding - supports-color - dev: true - - /@lerna/describe-ref/4.0.0: - resolution: {integrity: sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/describe-ref/-/describe-ref-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - npmlog: 4.1.2 - dev: true - - /@lerna/diff/4.0.0: - resolution: {integrity: sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/diff/-/diff-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/validation-error': 4.0.0 - npmlog: 4.1.2 - dev: true - - /@lerna/exec/4.0.0: - resolution: {integrity: sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/exec/-/exec-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/profiler': 4.0.0 - '@lerna/run-topologically': 4.0.0 - '@lerna/validation-error': 4.0.0 - p-map: 4.0.0 - dev: true + - typescript - /@lerna/filter-options/4.0.0: - resolution: {integrity: sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/filter-options/-/filter-options-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@lerna/collect-updates': 4.0.0 - '@lerna/filter-packages': 4.0.0 - dedent: 0.7.0 - npmlog: 4.1.2 - dev: true + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 - /@lerna/filter-packages/4.0.0: - resolution: {integrity: sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/filter-packages/-/filter-packages-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@nodelib/fs.scandir@2.1.5': dependencies: - '@lerna/validation-error': 4.0.0 - multimatch: 5.0.0 - npmlog: 4.1.2 - dev: true + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - /@lerna/get-npm-exec-opts/4.0.0: - resolution: {integrity: sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - npmlog: 4.1.2 - dev: true + '@nodelib/fs.stat@2.0.5': {} - /@lerna/get-packed/4.0.0: - resolution: {integrity: sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/get-packed/-/get-packed-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@nodelib/fs.walk@1.2.8': dependencies: - fs-extra: 9.1.0 - ssri: 8.0.1 - tar: 6.1.13 - dev: true + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 - /@lerna/github-client/4.0.0: - resolution: {integrity: sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/github-client/-/github-client-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/agent@2.2.2': dependencies: - '@lerna/child-process': 4.0.0 - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 18.12.0 - git-url-parse: 11.6.0 - npmlog: 4.1.2 + agent-base: 7.1.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 transitivePeerDependencies: - - encoding - dev: true + - supports-color - /@lerna/gitlab-client/4.0.0: - resolution: {integrity: sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - node-fetch: 2.6.9 - npmlog: 4.1.2 - whatwg-url: 8.7.0 + '@npmcli/arborist@7.5.4': + dependencies: + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 3.1.1 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/map-workspaces': 3.0.6 + '@npmcli/metavuln-calculator': 7.1.1 + '@npmcli/name-from-folder': 2.0.0 + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/query': 3.1.0 + '@npmcli/redact': 2.0.1 + '@npmcli/run-script': 8.1.0 + bin-links: 4.0.4 + cacache: 18.0.4 + common-ancestor-path: 1.0.1 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + json-stringify-nice: 1.1.4 + lru-cache: 10.4.3 + minimatch: 9.0.5 + nopt: 7.2.1 + npm-install-checks: 6.3.0 + npm-package-arg: 11.0.2 + npm-pick-manifest: 9.1.0 + npm-registry-fetch: 17.1.0 + pacote: 18.0.6 + parse-conflict-json: 3.0.1 + proc-log: 4.2.0 + proggy: 2.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + read-package-json-fast: 3.0.2 + semver: 7.7.1 + ssri: 10.0.6 + treeverse: 3.0.0 + walk-up-path: 3.0.1 transitivePeerDependencies: - - encoding - dev: true - - /@lerna/global-options/4.0.0: - resolution: {integrity: sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/global-options/-/global-options-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dev: true - - /@lerna/has-npm-version/4.0.0: - resolution: {integrity: sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - semver: 7.3.8 - dev: true - - /@lerna/import/4.0.0: - resolution: {integrity: sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/import/-/import-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/prompt': 4.0.0 - '@lerna/pulse-till-done': 4.0.0 - '@lerna/validation-error': 4.0.0 - dedent: 0.7.0 - fs-extra: 9.1.0 - p-map-series: 2.1.0 - dev: true - - /@lerna/info/4.0.0: - resolution: {integrity: sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/info/-/info-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/command': 4.0.0 - '@lerna/output': 4.0.0 - envinfo: 7.8.1 - dev: true - - /@lerna/init/4.0.0: - resolution: {integrity: sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/init/-/init-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/command': 4.0.0 - fs-extra: 9.1.0 - p-map: 4.0.0 - write-json-file: 4.3.0 - dev: true - - /@lerna/link/4.0.0: - resolution: {integrity: sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/link/-/link-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/command': 4.0.0 - '@lerna/package-graph': 4.0.0 - '@lerna/symlink-dependencies': 4.0.0 - p-map: 4.0.0 - slash: 3.0.0 - dev: true + - bluebird + - supports-color - /@lerna/list/4.0.0: - resolution: {integrity: sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/list/-/list-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/fs@3.1.1': dependencies: - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/listable': 4.0.0 - '@lerna/output': 4.0.0 - dev: true + semver: 7.7.1 - /@lerna/listable/4.0.0: - resolution: {integrity: sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/listable/-/listable-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/git@5.0.8': dependencies: - '@lerna/query-graph': 4.0.0 - chalk: 4.1.2 - columnify: 1.6.0 - dev: true + '@npmcli/promise-spawn': 7.0.2 + ini: 4.1.3 + lru-cache: 10.4.3 + npm-pick-manifest: 9.1.0 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.7.1 + which: 4.0.0 + transitivePeerDependencies: + - bluebird - /@lerna/log-packed/4.0.0: - resolution: {integrity: sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/log-packed/-/log-packed-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/installed-package-contents@2.1.0': dependencies: - byte-size: 7.0.1 - columnify: 1.6.0 - has-unicode: 2.0.1 - npmlog: 4.1.2 - dev: true + npm-bundled: 3.0.1 + npm-normalize-package-bin: 3.0.1 - /@lerna/npm-conf/4.0.0: - resolution: {integrity: sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/npm-conf/-/npm-conf-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/map-workspaces@3.0.6': dependencies: - config-chain: 1.1.13 - pify: 5.0.0 - dev: true + '@npmcli/name-from-folder': 2.0.0 + glob: 10.4.5 + minimatch: 9.0.5 + read-package-json-fast: 3.0.2 - /@lerna/npm-dist-tag/4.0.0: - resolution: {integrity: sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/metavuln-calculator@7.1.1': dependencies: - '@lerna/otplease': 4.0.0 - npm-package-arg: 8.1.5 - npm-registry-fetch: 9.0.0 - npmlog: 4.1.2 + cacache: 18.0.4 + json-parse-even-better-errors: 3.0.2 + pacote: 18.0.6 + proc-log: 4.2.0 + semver: 7.7.1 transitivePeerDependencies: - bluebird - supports-color - dev: true - /@lerna/npm-install/4.0.0: - resolution: {integrity: sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/npm-install/-/npm-install-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/name-from-folder@2.0.0': {} + + '@npmcli/node-gyp@3.0.0': {} + + '@npmcli/package-json@5.2.0': dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/get-npm-exec-opts': 4.0.0 - fs-extra: 9.1.0 - npm-package-arg: 8.1.5 - npmlog: 4.1.2 - signal-exit: 3.0.7 - write-pkg: 4.0.0 - dev: true - - /@lerna/npm-publish/4.0.0: - resolution: {integrity: sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/npm-publish/-/npm-publish-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/otplease': 4.0.0 - '@lerna/run-lifecycle': 4.0.0 - fs-extra: 9.1.0 - libnpmpublish: 4.0.2 - npm-package-arg: 8.1.5 - npmlog: 4.1.2 - pify: 5.0.0 - read-package-json: 3.0.1 + '@npmcli/git': 5.0.8 + glob: 10.4.5 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + proc-log: 4.2.0 + semver: 7.7.1 transitivePeerDependencies: - bluebird - - supports-color - dev: true - - /@lerna/npm-run-script/4.0.0: - resolution: {integrity: sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - '@lerna/get-npm-exec-opts': 4.0.0 - npmlog: 4.1.2 - dev: true - - /@lerna/otplease/4.0.0: - resolution: {integrity: sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/otplease/-/otplease-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/prompt': 4.0.0 - dev: true - - /@lerna/output/4.0.0: - resolution: {integrity: sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/output/-/output-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/pack-directory/4.0.0: - resolution: {integrity: sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/pack-directory/-/pack-directory-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/get-packed': 4.0.0 - '@lerna/package': 4.0.0 - '@lerna/run-lifecycle': 4.0.0 - npm-packlist: 2.2.2 - npmlog: 4.1.2 - tar: 6.1.13 - temp-write: 4.0.0 - dev: true - - /@lerna/package-graph/4.0.0: - resolution: {integrity: sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/package-graph/-/package-graph-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/prerelease-id-from-version': 4.0.0 - '@lerna/validation-error': 4.0.0 - npm-package-arg: 8.1.5 - npmlog: 4.1.2 - semver: 7.3.8 - dev: true - - /@lerna/package/4.0.0: - resolution: {integrity: sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/package/-/package-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - load-json-file: 6.2.0 - npm-package-arg: 8.1.5 - write-pkg: 4.0.0 - dev: true - /@lerna/prerelease-id-from-version/4.0.0: - resolution: {integrity: sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/promise-spawn@7.0.2': dependencies: - semver: 7.3.8 - dev: true + which: 4.0.0 - /@lerna/profiler/4.0.0: - resolution: {integrity: sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/profiler/-/profiler-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/query@3.1.0': dependencies: - fs-extra: 9.1.0 - npmlog: 4.1.2 - upath: 2.0.1 - dev: true + postcss-selector-parser: 6.1.2 + + '@npmcli/redact@2.0.1': {} - /@lerna/project/4.0.0: - resolution: {integrity: sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/project/-/project-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@npmcli/run-script@8.1.0': dependencies: - '@lerna/package': 4.0.0 - '@lerna/validation-error': 4.0.0 - cosmiconfig: 7.1.0 - dedent: 0.7.0 - dot-prop: 6.0.1 - glob-parent: 5.1.2 - globby: 11.1.0 - load-json-file: 6.2.0 - npmlog: 4.1.2 - p-map: 4.0.0 - resolve-from: 5.0.0 - write-json-file: 4.3.0 - dev: true - - /@lerna/prompt/4.0.0: - resolution: {integrity: sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/prompt/-/prompt-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - inquirer: 7.3.3 - npmlog: 4.1.2 - dev: true - - /@lerna/publish/4.0.0: - resolution: {integrity: sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/publish/-/publish-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/check-working-tree': 4.0.0 - '@lerna/child-process': 4.0.0 - '@lerna/collect-updates': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/describe-ref': 4.0.0 - '@lerna/log-packed': 4.0.0 - '@lerna/npm-conf': 4.0.0 - '@lerna/npm-dist-tag': 4.0.0 - '@lerna/npm-publish': 4.0.0 - '@lerna/otplease': 4.0.0 - '@lerna/output': 4.0.0 - '@lerna/pack-directory': 4.0.0 - '@lerna/prerelease-id-from-version': 4.0.0 - '@lerna/prompt': 4.0.0 - '@lerna/pulse-till-done': 4.0.0 - '@lerna/run-lifecycle': 4.0.0 - '@lerna/run-topologically': 4.0.0 - '@lerna/validation-error': 4.0.0 - '@lerna/version': 4.0.0 - fs-extra: 9.1.0 - libnpmaccess: 4.0.3 - npm-package-arg: 8.1.5 - npm-registry-fetch: 9.0.0 - npmlog: 4.1.2 - p-map: 4.0.0 - p-pipe: 3.1.0 - pacote: 11.3.5 - semver: 7.3.8 + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/promise-spawn': 7.0.2 + node-gyp: 10.3.1 + proc-log: 4.2.0 + which: 4.0.0 transitivePeerDependencies: - bluebird - - encoding - supports-color - dev: true - /@lerna/pulse-till-done/4.0.0: - resolution: {integrity: sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz} - engines: {node: '>= 10.18.0'} + '@nx/devkit@20.4.6(nx@20.4.6)': dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/query-graph/4.0.0: - resolution: {integrity: sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/query-graph/-/query-graph-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/package-graph': 4.0.0 - dev: true + ejs: 3.1.10 + enquirer: 2.3.6 + ignore: 5.3.2 + minimatch: 9.0.3 + nx: 20.4.6 + semver: 7.7.1 + tmp: 0.2.3 + tslib: 2.8.1 + yargs-parser: 21.1.1 - /@lerna/resolve-symlink/4.0.0: - resolution: {integrity: sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - fs-extra: 9.1.0 - npmlog: 4.1.2 - read-cmd-shim: 2.0.0 - dev: true + '@nx/nx-darwin-arm64@20.4.6': + optional: true - /@lerna/rimraf-dir/4.0.0: - resolution: {integrity: sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/child-process': 4.0.0 - npmlog: 4.1.2 - path-exists: 4.0.0 - rimraf: 3.0.2 - dev: true + '@nx/nx-darwin-x64@20.4.6': + optional: true - /@lerna/run-lifecycle/4.0.0: - resolution: {integrity: sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/npm-conf': 4.0.0 - npm-lifecycle: 3.1.5 - npmlog: 4.1.2 - dev: true + '@nx/nx-freebsd-x64@20.4.6': + optional: true - /@lerna/run-topologically/4.0.0: - resolution: {integrity: sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/run-topologically/-/run-topologically-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/query-graph': 4.0.0 - p-queue: 6.6.2 - dev: true - - /@lerna/run/4.0.0: - resolution: {integrity: sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/run/-/run-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/command': 4.0.0 - '@lerna/filter-options': 4.0.0 - '@lerna/npm-run-script': 4.0.0 - '@lerna/output': 4.0.0 - '@lerna/profiler': 4.0.0 - '@lerna/run-topologically': 4.0.0 - '@lerna/timer': 4.0.0 - '@lerna/validation-error': 4.0.0 - p-map: 4.0.0 - dev: true + '@nx/nx-linux-arm-gnueabihf@20.4.6': + optional: true - /@lerna/symlink-binary/4.0.0: - resolution: {integrity: sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/create-symlink': 4.0.0 - '@lerna/package': 4.0.0 - fs-extra: 9.1.0 - p-map: 4.0.0 - dev: true + '@nx/nx-linux-arm64-gnu@20.4.6': + optional: true - /@lerna/symlink-dependencies/4.0.0: - resolution: {integrity: sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/create-symlink': 4.0.0 - '@lerna/resolve-symlink': 4.0.0 - '@lerna/symlink-binary': 4.0.0 - fs-extra: 9.1.0 - p-map: 4.0.0 - p-map-series: 2.1.0 - dev: true - - /@lerna/timer/4.0.0: - resolution: {integrity: sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/timer/-/timer-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dev: true - - /@lerna/validation-error/4.0.0: - resolution: {integrity: sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/validation-error/-/validation-error-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - npmlog: 4.1.2 - dev: true - - /@lerna/version/4.0.0: - resolution: {integrity: sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/version/-/version-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - '@lerna/check-working-tree': 4.0.0 - '@lerna/child-process': 4.0.0 - '@lerna/collect-updates': 4.0.0 - '@lerna/command': 4.0.0 - '@lerna/conventional-commits': 4.0.0 - '@lerna/github-client': 4.0.0 - '@lerna/gitlab-client': 4.0.0 - '@lerna/output': 4.0.0 - '@lerna/prerelease-id-from-version': 4.0.0 - '@lerna/prompt': 4.0.0 - '@lerna/run-lifecycle': 4.0.0 - '@lerna/run-topologically': 4.0.0 - '@lerna/validation-error': 4.0.0 - chalk: 4.1.2 - dedent: 0.7.0 - load-json-file: 6.2.0 - minimatch: 3.1.2 - npmlog: 4.1.2 - p-map: 4.0.0 - p-pipe: 3.1.0 - p-reduce: 2.1.0 - p-waterfall: 2.1.1 - semver: 7.3.8 - slash: 3.0.0 - temp-write: 4.0.0 - write-json-file: 4.3.0 - transitivePeerDependencies: - - encoding - dev: true + '@nx/nx-linux-arm64-musl@20.4.6': + optional: true - /@lerna/write-log-file/4.0.0: - resolution: {integrity: sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@lerna/write-log-file/-/write-log-file-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - dependencies: - npmlog: 4.1.2 - write-file-atomic: 3.0.3 - dev: true + '@nx/nx-linux-x64-gnu@20.4.6': + optional: true - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@nx/nx-linux-x64-musl@20.4.6': + optional: true - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} - engines: {node: '>= 8'} + '@nx/nx-win32-arm64-msvc@20.4.6': + optional: true - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + '@nx/nx-win32-x64-msvc@20.4.6': + optional: true - /@npmcli/ci-detect/1.4.0: - resolution: {integrity: sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz} - dev: true + '@octokit/auth-token@4.0.0': {} - /@npmcli/fs/1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/fs/-/fs-1.1.1.tgz} + '@octokit/core@5.2.0': dependencies: - '@gar/promisify': 1.1.3 - semver: 7.3.8 - dev: true + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 - /@npmcli/git/2.1.0: - resolution: {integrity: sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/git/-/git-2.1.0.tgz} + '@octokit/endpoint@9.0.6': dependencies: - '@npmcli/promise-spawn': 1.3.2 - lru-cache: 6.0.0 - mkdirp: 1.0.4 - npm-pick-manifest: 6.1.1 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.3.8 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - dev: true + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - /@npmcli/installed-package-contents/1.0.7: - resolution: {integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz} - engines: {node: '>= 10'} - hasBin: true + '@octokit/graphql@7.1.1': dependencies: - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: true + '@octokit/request': 8.4.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - /@npmcli/move-file/1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/move-file/-/move-file-1.1.2.tgz} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - dev: true + '@octokit/openapi-types@23.0.1': {} - /@npmcli/node-gyp/1.0.3: - resolution: {integrity: sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz} - dev: true + '@octokit/plugin-enterprise-rest@6.0.1': {} - /@npmcli/promise-spawn/1.3.2: - resolution: {integrity: sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz} + '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.0)': dependencies: - infer-owner: 1.0.4 - dev: true + '@octokit/core': 5.2.0 + '@octokit/types': 13.8.0 - /@npmcli/run-script/1.8.6: - resolution: {integrity: sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@npmcli/run-script/-/run-script-1.8.6.tgz} + '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.0)': dependencies: - '@npmcli/node-gyp': 1.0.3 - '@npmcli/promise-spawn': 1.3.2 - node-gyp: 7.1.2 - read-package-json-fast: 2.0.3 - dev: true + '@octokit/core': 5.2.0 - /@octokit/auth-token/2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/auth-token/-/auth-token-2.5.0.tgz} + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.0)': dependencies: - '@octokit/types': 6.41.0 - dev: true + '@octokit/core': 5.2.0 + '@octokit/types': 13.8.0 - /@octokit/core/3.6.0: - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/core/-/core-3.6.0.tgz} + '@octokit/request-error@5.1.1': dependencies: - '@octokit/auth-token': 2.5.0 - '@octokit/graphql': 4.8.0 - '@octokit/request': 5.6.3 - '@octokit/request-error': 2.1.0 - '@octokit/types': 6.41.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true + '@octokit/types': 13.8.0 + deprecation: 2.3.1 + once: 1.4.0 - /@octokit/endpoint/6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/endpoint/-/endpoint-6.0.12.tgz} + '@octokit/request@8.4.1': dependencies: - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 - dev: true + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - /@octokit/graphql/4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/graphql/-/graphql-4.8.0.tgz} + '@octokit/rest@20.1.2': dependencies: - '@octokit/request': 5.6.3 - '@octokit/types': 6.41.0 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true + '@octokit/core': 5.2.0 + '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.0) + '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0) + '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.0) - /@octokit/openapi-types/12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz} - dev: true + '@octokit/types@13.8.0': + dependencies: + '@octokit/openapi-types': 23.0.1 - /@octokit/plugin-enterprise-rest/6.0.1: - resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz} - dev: true + '@oven/bun-darwin-aarch64@1.2.4': + optional: true - /@octokit/plugin-paginate-rest/2.21.3_@octokit+core@3.6.0: - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz} - peerDependencies: - '@octokit/core': '>=2' - dependencies: - '@octokit/core': 3.6.0 - '@octokit/types': 6.41.0 - dev: true + '@oven/bun-darwin-x64-baseline@1.2.4': + optional: true - /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz} - peerDependencies: - '@octokit/core': '>=3' - dependencies: - '@octokit/core': 3.6.0 - dev: true + '@oven/bun-darwin-x64@1.2.4': + optional: true - /@octokit/plugin-rest-endpoint-methods/5.16.2_@octokit+core@3.6.0: - resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz} - peerDependencies: - '@octokit/core': '>=3' - dependencies: - '@octokit/core': 3.6.0 - '@octokit/types': 6.41.0 - deprecation: 2.3.1 - dev: true + '@oven/bun-linux-aarch64-musl@1.2.4': + optional: true - /@octokit/request-error/2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/request-error/-/request-error-2.1.0.tgz} - dependencies: - '@octokit/types': 6.41.0 - deprecation: 2.3.1 - once: 1.4.0 - dev: true + '@oven/bun-linux-aarch64@1.2.4': + optional: true - /@octokit/request/5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/request/-/request-5.6.3.tgz} - dependencies: - '@octokit/endpoint': 6.0.12 - '@octokit/request-error': 2.1.0 - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - node-fetch: 2.6.9 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true + '@oven/bun-linux-x64-baseline@1.2.4': + optional: true - /@octokit/rest/18.12.0: - resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/rest/-/rest-18.12.0.tgz} - dependencies: - '@octokit/core': 3.6.0 - '@octokit/plugin-paginate-rest': 2.21.3_@octokit+core@3.6.0 - '@octokit/plugin-request-log': 1.0.4_@octokit+core@3.6.0 - '@octokit/plugin-rest-endpoint-methods': 5.16.2_@octokit+core@3.6.0 - transitivePeerDependencies: - - encoding - dev: true + '@oven/bun-linux-x64-musl-baseline@1.2.4': + optional: true - /@octokit/types/6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@octokit/types/-/types-6.41.0.tgz} - dependencies: - '@octokit/openapi-types': 12.11.0 - dev: true + '@oven/bun-linux-x64-musl@1.2.4': + optional: true - /@sinclair/typebox/0.25.23: - resolution: {integrity: sha512-VEB8ygeP42CFLWyAJhN5OklpxUliqdNEUcXb4xZ/CINqtYGTjL5ukluKdKzQ0iWdUxyQ7B0539PAUhHKrCNWSQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@sinclair/typebox/-/typebox-0.25.23.tgz} - dev: true + '@oven/bun-linux-x64@1.2.4': + optional: true - /@sinonjs/commons/1.8.6: - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@sinonjs/commons/-/commons-1.8.6.tgz} - dependencies: - type-detect: 4.0.8 - dev: true + '@oven/bun-windows-x64-baseline@1.2.4': + optional: true - /@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz} - dependencies: - '@sinonjs/commons': 1.8.6 - dev: true + '@oven/bun-windows-x64@1.2.4': + optional: true - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@tootallnate/once/-/once-1.1.2.tgz} - engines: {node: '>= 6'} - dev: true + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} - /@types/babel__core/7.20.0: - resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/babel__core/-/babel__core-7.20.0.tgz} + '@sigstore/bundle@2.3.2': dependencies: - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.3 - dev: true + '@sigstore/protobuf-specs': 0.3.3 + + '@sigstore/core@1.1.0': {} + + '@sigstore/protobuf-specs@0.3.3': {} - /@types/babel__generator/7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/babel__generator/-/babel__generator-7.6.4.tgz} + '@sigstore/sign@2.3.2': dependencies: - '@babel/types': 7.20.7 - dev: true + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 + make-fetch-happen: 13.0.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/babel__template/-/babel__template-7.4.1.tgz} + '@sigstore/tuf@2.3.4': dependencies: - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - dev: true + '@sigstore/protobuf-specs': 0.3.3 + tuf-js: 2.2.1 + transitivePeerDependencies: + - supports-color - /@types/babel__traverse/7.18.3: - resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz} + '@sigstore/verify@1.2.1': dependencies: - '@babel/types': 7.20.7 - dev: true + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 - /@types/dedent/0.7.0: - resolution: {integrity: sha512-EGlKlgMhnLt/cM4DbUSafFdrkeJoC9Mvnj0PUCU7tFmTjMjNRT957kXCx0wYm3JuEq4o4ZsS5vG+NlkM2DMd2A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/dedent/-/dedent-0.7.0.tgz} - dev: true + '@sinclair/typebox@0.27.8': {} - /@types/glob/7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/glob/-/glob-7.2.0.tgz} + '@stylistic/eslint-plugin@4.2.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.14.0 - dev: true + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint: 9.21.0(jiti@1.21.6) + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript - /@types/got/9.6.12: - resolution: {integrity: sha512-X4pj/HGHbXVLqTpKjA2ahI4rV/nNBc9mGO2I/0CgAra+F2dKgMXnENv2SRpemScBzBAI4vMelIVYViQxlSE6xA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/got/-/got-9.6.12.tgz} - dependencies: - '@types/node': 18.14.0 - '@types/tough-cookie': 4.0.2 - form-data: 2.5.1 - dev: true + '@tufjs/canonical-json@2.0.0': {} - /@types/graceful-fs/4.1.6: - resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz} + '@tufjs/models@2.0.1': dependencies: - '@types/node': 18.14.0 - dev: true + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.5 - /@types/istanbul-lib-coverage/2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz} - dev: true + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + '@types/babel__core@7.20.5': dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: true + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 - /@types/istanbul-reports/1.1.2: - resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz} + '@types/babel__generator@7.6.8': dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-lib-report': 3.0.0 - dev: true + '@babel/types': 7.26.9 - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz} + '@types/babel__template@7.4.4': dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 - /@types/jest/25.2.3: - resolution: {integrity: sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/jest/-/jest-25.2.3.tgz} + '@types/babel__traverse@7.20.6': dependencies: - jest-diff: 25.5.0 - pretty-format: 25.5.0 - dev: true + '@babel/types': 7.26.9 - /@types/jest/27.5.2: - resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/jest/-/jest-27.5.2.tgz} + '@types/bun@1.2.4': dependencies: - jest-matcher-utils: 27.5.1 - pretty-format: 27.5.1 - dev: true + bun-types: 1.2.4 - /@types/jest/29.4.0: - resolution: {integrity: sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/jest/-/jest-29.4.0.tgz} + '@types/debug@4.1.12': dependencies: - expect: 29.4.3 - pretty-format: 29.4.3 - dev: true + '@types/ms': 2.1.0 - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/json-schema/-/json-schema-7.0.11.tgz} - dev: true + '@types/doctrine@0.0.9': {} - /@types/json5/0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/json5/-/json5-0.0.29.tgz} - dev: true + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/minimatch/-/minimatch-3.0.5.tgz} - dev: true + '@types/estree@1.0.6': {} - /@types/minimatch/5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/minimatch/-/minimatch-5.1.2.tgz} - dev: true + '@types/istanbul-lib-coverage@2.0.6': {} - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/minimist/-/minimist-1.2.2.tgz} - dev: true + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 - /@types/node/18.14.0: - resolution: {integrity: sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/node/-/node-18.14.0.tgz} - dev: true + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 - /@types/normalize-package-data/2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz} - dev: true + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 - /@types/parse-json/4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/parse-json/-/parse-json-4.0.0.tgz} - dev: true + '@types/json-schema@7.0.15': {} - /@types/prettier/2.7.2: - resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/prettier/-/prettier-2.7.2.tgz} - dev: true + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 - /@types/resolve/1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/resolve/-/resolve-1.20.2.tgz} - dev: true + '@types/minimatch@3.0.5': {} - /@types/rimraf/3.0.0: - resolution: {integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/rimraf/-/rimraf-3.0.0.tgz} - dependencies: - '@types/glob': 7.2.0 - '@types/node': 18.14.0 - dev: true + '@types/minimist@1.2.5': {} - /@types/semver/7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/semver/-/semver-7.3.13.tgz} - dev: true + '@types/ms@2.1.0': {} - /@types/source-map-support/0.5.6: - resolution: {integrity: sha512-b2nJ9YyXmkhGaa2b8VLM0kJ04xxwNyijcq12/kDoomCt43qbHBeK2SLNJ9iJmETaAj+bKUT05PQUu3Q66GvLhQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/source-map-support/-/source-map-support-0.5.6.tgz} + '@types/node@22.13.9': dependencies: - source-map: 0.6.1 - dev: true + undici-types: 6.20.0 - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/stack-utils/-/stack-utils-2.0.1.tgz} - dev: true + '@types/normalize-package-data@2.4.4': {} - /@types/tmp/0.2.3: - resolution: {integrity: sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/tmp/-/tmp-0.2.3.tgz} - dev: true + '@types/stack-utils@2.0.3': {} - /@types/tough-cookie/4.0.2: - resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz} - dev: true + '@types/unist@3.0.3': {} - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} - dev: true - - /@types/yargs/15.0.15: - resolution: {integrity: sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/yargs/-/yargs-15.0.15.tgz} + '@types/ws@8.5.14': dependencies: - '@types/yargs-parser': 21.0.0 - dev: true + '@types/node': 22.13.9 - /@types/yargs/16.0.5: - resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/yargs/-/yargs-16.0.5.tgz} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true + '@types/yargs-parser@21.0.3': {} - /@types/yargs/17.0.22: - resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@types/yargs/-/yargs-17.0.22.tgz} + '@types/yargs@17.0.33': dependencies: - '@types/yargs-parser': 21.0.0 - dev: true + '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin/5.52.0_6cfvjsbua5ptj65675bqcn6oza: - resolution: {integrity: sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/type-utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - '@typescript-eslint/utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - debug: 4.3.4 - eslint: 8.34.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/type-utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.0 + eslint: 9.21.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/parser/-/parser-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.34.0 - typescript: 4.9.5 + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.0 + debug: 4.4.0 + eslint: 9.21.0(jiti@1.21.6) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager/5.52.0: - resolution: {integrity: sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/scope-manager@8.26.0': dependencies: - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/visitor-keys': 5.52.0 - dev: true + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 - /@typescript-eslint/type-utils/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - debug: 4.3.4 - eslint: 8.34.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + debug: 4.4.0 + eslint: 9.21.0(jiti@1.21.6) + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types/5.52.0: - resolution: {integrity: sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/types/-/types-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + '@typescript-eslint/types@8.26.0': {} - /@typescript-eslint/typescript-estree/5.52.0_typescript@4.9.5: - resolution: {integrity: sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/visitor-keys': 5.52.0 - debug: 4.3.4 - globby: 11.1.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 + debug: 4.4.0 + fast-glob: 3.3.3 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/utils/-/utils-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 - eslint: 8.34.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.34.0 - semver: 7.3.8 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys/5.52.0: - resolution: {integrity: sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.52.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /JSONStream/1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/JSONStream/-/JSONStream-1.3.5.tgz} - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - - /abab/2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/abab/-/abab-2.0.6.tgz} - dev: true - - /abbrev/1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/abbrev/-/abbrev-1.1.1.tgz} - dev: true - - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/acorn-globals/-/acorn-globals-6.0.0.tgz} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: true - - /acorn-jsx/5.3.2_acorn@8.8.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/acorn-walk/-/acorn-walk-7.2.0.tgz} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/acorn/-/acorn-7.4.1.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn/8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/acorn/-/acorn-8.8.2.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /add-stream/1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/add-stream/-/add-stream-1.0.0.tgz} - dev: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/agent-base/-/agent-base-6.0.2.tgz} - engines: {node: '>= 6.0.0'} + '@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - debug: 4.3.4 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + eslint: 9.21.0(jiti@1.21.6) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - dev: true - /agentkeepalive/4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz} - engines: {node: '>= 8.0.0'} + '@typescript-eslint/visitor-keys@8.26.0': dependencies: - debug: 4.3.4 - depd: 1.1.2 - humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color - dev: true + '@typescript-eslint/types': 8.26.0 + eslint-visitor-keys: 4.2.0 - /aggregate-error/3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/aggregate-error/-/aggregate-error-3.1.0.tgz} - engines: {node: '>=8'} + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2)': dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint: 9.21.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.8.2 - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ajv/-/ajv-6.12.6.tgz} + '@vue/compiler-core@3.5.13': dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true + '@babel/parser': 7.26.9 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz} - engines: {node: '>=8'} + '@vue/compiler-dom@3.5.13': dependencies: - type-fest: 0.21.3 - dev: true + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 - /ansi-regex/2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-regex/-/ansi-regex-2.1.1.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-regex/-/ansi-regex-5.0.1.tgz} - engines: {node: '>=8'} - dev: true - - /ansi-regex/6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-styles/-/ansi-styles-3.2.1.tgz} - engines: {node: '>=4'} + '@vue/compiler-sfc@3.5.13': dependencies: - color-convert: 1.9.3 + '@babel/parser': 7.26.9 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.3 + source-map-js: 1.2.1 - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-styles/-/ansi-styles-4.3.0.tgz} - engines: {node: '>=8'} + '@vue/compiler-ssr@3.5.13': dependencies: - color-convert: 2.0.1 - dev: true + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ansi-styles/-/ansi-styles-5.2.0.tgz} - engines: {node: '>=10'} - dev: true + '@vue/shared@3.5.13': {} - /ansi-styles/6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true + '@yarnpkg/lockfile@1.1.0': {} - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/anymatch/-/anymatch-3.1.3.tgz} - engines: {node: '>= 8'} + '@yarnpkg/parsers@3.0.2': dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /aproba/1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/aproba/-/aproba-1.2.0.tgz} - dev: true + js-yaml: 3.14.1 + tslib: 2.8.1 - /aproba/2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/aproba/-/aproba-2.0.0.tgz} - dev: true + '@zkochan/js-yaml@0.0.7': + dependencies: + argparse: 2.0.1 - /are-we-there-yet/1.1.7: - resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz} + JSONStream@1.3.5: dependencies: - delegates: 1.0.0 - readable-stream: 2.3.7 - dev: true + jsonparse: 1.3.1 + through: 2.3.8 - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/arg/-/arg-4.1.3.tgz} - dev: true + abbrev@2.0.0: {} - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/argparse/-/argparse-1.0.10.tgz} + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - sprintf-js: 1.0.3 - dev: true + acorn: 8.14.0 - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/argparse/-/argparse-2.0.1.tgz} - dev: true + acorn@8.14.0: {} - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array-differ/-/array-differ-3.0.0.tgz} - engines: {node: '>=8'} - dev: true + add-stream@1.0.0: {} - /array-ify/1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array-ify/-/array-ify-1.0.0.tgz} - dev: true + agent-base@7.1.3: {} - /array-includes/3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array-includes/-/array-includes-3.1.6.tgz} - engines: {node: '>= 0.4'} + aggregate-error@3.1.0: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - get-intrinsic: 1.2.0 - is-string: 1.0.7 - dev: true - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array-union/-/array-union-2.1.0.tgz} - engines: {node: '>=8'} + clean-stack: 2.2.0 + indent-string: 4.0.0 - /array.prototype.flat/1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz} - engines: {node: '>= 0.4'} + ajv@6.12.6: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-shim-unscopables: 1.0.0 - dev: true + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 - /array.prototype.flatmap/1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-shim-unscopables: 1.0.0 - dev: true + ansi-colors@4.1.3: {} - /array.prototype.reduce/1.0.5: - resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz} - engines: {node: '>= 0.4'} + ansi-escapes@4.3.2: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 - dev: true + type-fest: 0.21.3 - /arrify/1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/arrify/-/arrify-1.0.1.tgz} - engines: {node: '>=0.10.0'} - dev: true + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/arrify/-/arrify-2.0.1.tgz} - engines: {node: '>=8'} - dev: true + ansi-regex@5.0.1: {} - /asap/2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/asap/-/asap-2.0.6.tgz} - dev: true + ansi-regex@6.1.0: {} - /asn1/0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/asn1/-/asn1-0.2.6.tgz} + ansi-styles@4.3.0: dependencies: - safer-buffer: 2.1.2 - dev: true + color-convert: 2.0.1 - /assert-plus/1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/assert-plus/-/assert-plus-1.0.0.tgz} - engines: {node: '>=0.8'} - dev: true + ansi-styles@5.2.0: {} - /ast-types/0.13.3: - resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ast-types/-/ast-types-0.13.3.tgz} - engines: {node: '>=4'} - dev: false + ansi-styles@6.2.1: {} - /astral-regex/2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true + ansis@3.17.0: {} - /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/asynckit/-/asynckit-0.4.0.tgz} - dev: true + aproba@2.0.0: {} - /at-least-node/1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/at-least-node/-/at-least-node-1.0.0.tgz} - engines: {node: '>= 4.0.0'} - dev: true + are-docs-informative@0.0.2: {} - /available-typed-arrays/1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} - engines: {node: '>= 0.4'} - dev: true + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 - /aws-sign2/0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/aws-sign2/-/aws-sign2-0.7.0.tgz} - dev: true + argparse@2.0.1: {} - /aws4/1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/aws4/-/aws4-1.12.0.tgz} - dev: true + array-differ@3.0.0: {} - /babel-jest/27.5.1_@babel+core@7.20.12: - resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-jest/-/babel-jest-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.20.12 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__core': 7.20.0 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1_@babel+core@7.20.12 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true + array-ify@1.0.0: {} - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.20.2 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true + array-union@2.1.0: {} - /babel-plugin-jest-hoist/27.5.1: - resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - '@types/babel__core': 7.20.0 - '@types/babel__traverse': 7.18.3 - dev: true + arrify@1.0.1: {} - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false + arrify@2.0.1: {} - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 + ast-types@0.16.1: dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - core-js-compat: 3.28.0 - transitivePeerDependencies: - - supports-color - dev: false + tslib: 2.8.1 - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 + async@3.2.6: {} + + asynckit@0.4.0: {} + + axios@1.8.1: dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 + follow-redirects: 1.15.9 + form-data: 4.0.2 + proxy-from-env: 1.1.0 transitivePeerDependencies: - - supports-color - dev: false + - debug - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.12: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - dev: true - - /babel-preset-jest/27.5.1_@babel+core@7.20.12: - resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 - dev: true + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + before-after-hook@2.2.3: {} - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/balanced-match/-/balanced-match-1.0.2.tgz} + bin-links@4.0.4: + dependencies: + cmd-shim: 6.0.3 + npm-normalize-package-bin: 3.0.1 + read-cmd-shim: 4.0.0 + write-file-atomic: 5.0.1 - /bcrypt-pbkdf/1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz} + bl@4.1.0: dependencies: - tweetnacl: 0.14.5 - dev: true + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 - /before-after-hook/2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/before-after-hook/-/before-after-hook-2.2.3.tgz} - dev: true + boolbase@1.0.0: {} - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/braces/-/braces-3.0.2.tgz} - engines: {node: '>=8'} + brace-expansion@2.0.1: dependencies: - fill-range: 7.0.1 - - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz} - dev: true + balanced-match: 1.0.2 - /browserslist/4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/browserslist/-/browserslist-4.21.5.tgz} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + braces@3.0.3: dependencies: - caniuse-lite: 1.0.30001456 - electron-to-chromium: 1.4.302 - node-releases: 2.0.10 - update-browserslist-db: 1.0.10_browserslist@4.21.5 + fill-range: 7.1.1 - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/bser/-/bser-2.1.1.tgz} + browserslist@4.24.4: dependencies: - node-int64: 0.4.0 - dev: true - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/buffer-from/-/buffer-from-1.1.2.tgz} + caniuse-lite: 1.0.30001702 + electron-to-chromium: 1.5.111 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.4) - /builtins/1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/builtins/-/builtins-1.0.3.tgz} - dev: true + buffer-from@1.1.2: {} - /byline/5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/byline/-/byline-5.0.0.tgz} - engines: {node: '>=0.10.0'} - dev: true + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 - /byte-size/7.0.1: - resolution: {integrity: sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/byte-size/-/byte-size-7.0.1.tgz} - engines: {node: '>=10'} - dev: true + builtin-modules@4.0.0: {} - /cacache/15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cacache/-/cacache-15.3.0.tgz} - engines: {node: '>= 10'} + bun-types@1.2.4: dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 + '@types/node': 22.13.9 + '@types/ws': 8.5.14 + + bun@1.2.4: + optionalDependencies: + '@oven/bun-darwin-aarch64': 1.2.4 + '@oven/bun-darwin-x64': 1.2.4 + '@oven/bun-darwin-x64-baseline': 1.2.4 + '@oven/bun-linux-aarch64': 1.2.4 + '@oven/bun-linux-aarch64-musl': 1.2.4 + '@oven/bun-linux-x64': 1.2.4 + '@oven/bun-linux-x64-baseline': 1.2.4 + '@oven/bun-linux-x64-musl': 1.2.4 + '@oven/bun-linux-x64-musl-baseline': 1.2.4 + '@oven/bun-windows-x64': 1.2.4 + '@oven/bun-windows-x64-baseline': 1.2.4 + + byte-size@8.1.1: {} + + cac@6.7.14: {} + + cacache@18.0.4: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.4.5 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.1.13 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - dev: true + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 - /call-bind/1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/call-bind/-/call-bind-1.0.2.tgz} + call-bind-apply-helpers@1.0.2: dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.0 - dev: true + es-errors: 1.3.0 + function-bind: 1.1.2 - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/callsites/-/callsites-3.1.0.tgz} - engines: {node: '>=6'} - dev: true + callsites@3.1.0: {} - /camelcase-keys/6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/camelcase/-/camelcase-5.3.1.tgz} - engines: {node: '>=6'} - dev: true - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/camelcase/-/camelcase-6.3.0.tgz} - engines: {node: '>=10'} - dev: true - /caniuse-lite/1.0.30001456: - resolution: {integrity: sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz} + camelcase@5.3.1: {} - /caseless/0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/caseless/-/caseless-0.12.0.tgz} - dev: true + caniuse-lite@1.0.30001702: {} - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chalk/-/chalk-2.4.2.tgz} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + ccount@2.0.1: {} - /chalk/3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chalk/-/chalk-3.0.0.tgz} - engines: {node: '>=8'} + chalk@4.1.0: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chalk/-/chalk-4.1.2.tgz} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/char-regex/-/char-regex-1.0.2.tgz} - engines: {node: '>=10'} - dev: true + chalk@5.4.1: {} - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chardet/-/chardet-0.7.0.tgz} - dev: true + character-entities@2.0.2: {} - /chownr/1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chownr/-/chownr-1.1.4.tgz} - dev: true + chardet@0.7.0: {} - /chownr/2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/chownr/-/chownr-2.0.0.tgz} - engines: {node: '>=10'} - dev: true + chownr@2.0.0: {} - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ci-info/-/ci-info-2.0.0.tgz} + ci-info@3.9.0: {} - /ci-info/3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ci-info/-/ci-info-3.8.0.tgz} - engines: {node: '>=8'} - dev: true + ci-info@4.1.0: {} - /cjs-module-lexer/1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz} - dev: true + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 - /clean-stack/2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/clean-stack/-/clean-stack-2.2.0.tgz} - engines: {node: '>=6'} - dev: true + clean-stack@2.2.0: {} - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cli-cursor/-/cli-cursor-3.1.0.tgz} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - dev: true - /cli-truncate/2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + cli-cursor@5.0.0: dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true + restore-cursor: 5.1.0 - /cli-truncate/3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-spinners@2.6.1: {} + + cli-spinners@2.9.2: {} + + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true + string-width: 7.2.0 - /cli-width/3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cli-width/-/cli-width-3.0.0.tgz} - engines: {node: '>= 10'} - dev: true + cli-width@3.0.0: {} - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cliui/-/cliui-7.0.4.tgz} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cliui/-/cliui-8.0.1.tgz} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-deep/4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/clone-deep/-/clone-deep-4.0.1.tgz} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - dev: true - - /clone/1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/clone/-/clone-1.0.4.tgz} - engines: {node: '>=0.8'} - dev: true - - /cmd-shim/4.1.0: - resolution: {integrity: sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cmd-shim/-/cmd-shim-4.1.0.tgz} - engines: {node: '>=10'} - dependencies: - mkdirp-infer-owner: 2.0.0 - dev: true - - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/co/-/co-4.6.0.tgz} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /code-point-at/1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/code-point-at/-/code-point-at-1.1.0.tgz} - engines: {node: '>=0.10.0'} - dev: true - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz} - dev: true + clone@1.0.4: {} - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/color-convert/-/color-convert-1.9.3.tgz} - dependencies: - color-name: 1.1.3 + cmd-shim@6.0.3: {} - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/color-convert/-/color-convert-2.0.1.tgz} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - dev: true - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/color-name/-/color-name-1.1.3.tgz} + color-name@1.1.4: {} - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/color-name/-/color-name-1.1.4.tgz} - dev: true + color-support@1.1.3: {} - /colorette/2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} - dev: true + colorette@2.0.20: {} - /columnify/1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/columnify/-/columnify-1.6.0.tgz} - engines: {node: '>=8.0.0'} + columnify@1.6.0: dependencies: strip-ansi: 6.0.1 wcwidth: 1.0.1 - dev: true - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/combined-stream/-/combined-stream-1.0.8.tgz} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /commander/9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: true + commander@13.1.0: {} - /commitlint/14.1.0: - resolution: {integrity: sha512-kjqGpacjo9k/DWoeDtcYWcIXjFi7A1GDIsyXbE4xvEl3clhtrrVZ2JODmxEBgKCA/i7LaSucvQhKBEr6Aezhdw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/commitlint/-/commitlint-14.1.0.tgz} - engines: {node: '>=v12'} - hasBin: true - dependencies: - '@commitlint/cli': 14.1.0 - '@commitlint/types': 14.0.0 - dev: true + comment-parser@1.4.1: {} + + common-ancestor-path@1.0.1: {} - /compare-func/2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/compare-func/-/compare-func-2.0.0.tgz} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 - dev: true - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/concat-map/-/concat-map-0.0.1.tgz} + concat-map@0.0.1: {} - /concat-stream/2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/concat-stream/-/concat-stream-2.0.0.tgz} - engines: {'0': node >= 6.0} + concat-stream@2.0.0: dependencies: buffer-from: 1.1.2 inherits: 2.0.4 - readable-stream: 3.6.0 + readable-stream: 3.6.2 typedarray: 0.0.6 - dev: true - /config-chain/1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/config-chain/-/config-chain-1.1.13.tgz} - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - dev: true + confbox@0.1.8: {} - /console-control-strings/1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/console-control-strings/-/console-control-strings-1.1.0.tgz} - dev: true + confbox@0.2.1: {} - /conventional-changelog-angular/5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true + console-control-strings@1.1.0: {} - /conventional-changelog-conventionalcommits/4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz} - engines: {node: '>=10'} + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - /conventional-changelog-core/4.2.4: - resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz} - engines: {node: '>=10'} + conventional-changelog-core@5.0.1: dependencies: add-stream: 1.0.0 - conventional-changelog-writer: 5.0.1 - conventional-commits-parser: 3.2.4 + conventional-changelog-writer: 6.0.1 + conventional-commits-parser: 4.0.0 dateformat: 3.0.3 get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.11 + git-raw-commits: 3.0.0 git-remote-origin-url: 2.0.0 - git-semver-tags: 4.1.1 - lodash: 4.17.21 + git-semver-tags: 5.0.1 normalize-package-data: 3.0.3 - q: 1.5.1 read-pkg: 3.0.0 read-pkg-up: 3.0.0 - through2: 4.0.2 - dev: true - /conventional-changelog-preset-loader/2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz} - engines: {node: '>=10'} - dev: true + conventional-changelog-preset-loader@3.0.0: {} - /conventional-changelog-writer/5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz} - engines: {node: '>=10'} - hasBin: true + conventional-changelog-writer@6.0.1: dependencies: - conventional-commits-filter: 2.0.7 + conventional-commits-filter: 3.0.0 dateformat: 3.0.3 - handlebars: 4.7.7 + handlebars: 4.7.8 json-stringify-safe: 5.0.1 - lodash: 4.17.21 meow: 8.1.2 - semver: 6.3.0 + semver: 7.7.1 split: 1.0.1 - through2: 4.0.2 - dev: true - /conventional-commits-filter/2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz} - engines: {node: '>=10'} + conventional-commits-filter@3.0.0: dependencies: lodash.ismatch: 4.4.0 modify-values: 1.0.1 - dev: true - /conventional-commits-parser/3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz} - engines: {node: '>=10'} - hasBin: true + conventional-commits-parser@4.0.0: dependencies: JSONStream: 1.3.5 is-text-path: 1.0.1 - lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 - through2: 4.0.2 - dev: true - /conventional-recommended-bump/6.1.0: - resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz} - engines: {node: '>=10'} - hasBin: true + conventional-recommended-bump@7.0.1: dependencies: concat-stream: 2.0.0 - conventional-changelog-preset-loader: 2.3.4 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - git-raw-commits: 2.0.11 - git-semver-tags: 4.1.1 + conventional-changelog-preset-loader: 3.0.0 + conventional-commits-filter: 3.0.0 + conventional-commits-parser: 4.0.0 + git-raw-commits: 3.0.0 + git-semver-tags: 5.0.1 meow: 8.1.2 - q: 1.5.1 - dev: true - /convert-source-map/1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + convert-source-map@2.0.0: {} - /core-js-compat/3.28.0: - resolution: {integrity: sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/core-js-compat/-/core-js-compat-3.28.0.tgz} + core-js-compat@3.41.0: dependencies: - browserslist: 4.21.5 - dev: false + browserslist: 4.24.4 - /core-js/3.28.0: - resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/core-js/-/core-js-3.28.0.tgz} - requiresBuild: true - dev: false + core-util-is@1.0.3: {} - /core-util-is/1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/core-util-is/-/core-util-is-1.0.2.tgz} - dev: true - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/core-util-is/-/core-util-is-1.0.3.tgz} - dev: true - - /cosmiconfig/7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} - engines: {node: '>=10'} + cosmiconfig@9.0.0(typescript@5.8.2): dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/create-require/-/create-require-1.1.1.tgz} - dev: true - - /cross-fetch/3.1.5: - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cross-fetch/-/cross-fetch-3.1.5.tgz} - dependencies: - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - dev: false + optionalDependencies: + typescript: 5.8.2 - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cross-spawn/-/cross-spawn-7.0.3.tgz} - engines: {node: '>= 8'} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string/2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz} - engines: {node: '>=8'} - dev: true - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cssom/-/cssom-0.3.8.tgz} - dev: true - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cssom/-/cssom-0.4.4.tgz} - dev: true + cssesc@3.0.0: {} - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/cssstyle/-/cssstyle-2.3.0.tgz} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /dargs/7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dargs/-/dargs-7.0.0.tgz} - engines: {node: '>=8'} - dev: true - - /dashdash/1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dashdash/-/dashdash-1.14.1.tgz} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: true - - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/data-urls/-/data-urls-2.0.0.tgz} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true + dargs@7.0.0: {} - /dateformat/3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dateformat/-/dateformat-3.0.3.tgz} - dev: true + dateformat@3.0.3: {} - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/debug/-/debug-3.2.7.tgz} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/debug/-/debug-4.3.4.tgz} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.4.0: dependencies: - ms: 2.1.2 - - /debuglog/1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/debuglog/-/debuglog-1.0.1.tgz} - dev: true + ms: 2.1.3 - /decamelize-keys/1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize/1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/decamelize/-/decamelize-1.2.0.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /decimal.js/10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/decimal.js/-/decimal.js-10.4.3.tgz} - dev: true - - /decode-uri-component/0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} - engines: {node: '>=0.10'} - dev: true + decamelize@1.2.0: {} - /dedent/0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dedent/-/dedent-0.7.0.tgz} - dev: true + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/deep-is/-/deep-is-0.1.4.tgz} - dev: true + dedent@1.5.3: {} - /deepmerge/4.3.0: - resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/deepmerge/-/deepmerge-4.3.0.tgz} - engines: {node: '>=0.10.0'} - dev: true + deep-is@0.1.4: {} - /defaults/1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/defaults/-/defaults-1.0.4.tgz} + defaults@1.0.4: dependencies: clone: 1.0.4 - dev: true - - /define-properties/1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/define-properties/-/define-properties-1.2.0.tgz} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - - /del/6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/del/-/del-6.1.1.tgz} - engines: {node: '>=10'} - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.10 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - dev: true - /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/delayed-stream/-/delayed-stream-1.0.0.tgz} - engines: {node: '>=0.4.0'} - dev: true - - /delegates/1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/delegates/-/delegates-1.0.0.tgz} - dev: true - - /depd/1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/depd/-/depd-1.1.2.tgz} - engines: {node: '>= 0.6'} - dev: true + define-lazy-prop@2.0.0: {} - /deprecation/2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/deprecation/-/deprecation-2.3.1.tgz} - dev: true + delayed-stream@1.0.0: {} - /detect-indent/5.0.0: - resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/detect-indent/-/detect-indent-5.0.0.tgz} - engines: {node: '>=4'} - dev: true + deprecation@2.3.1: {} - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/detect-indent/-/detect-indent-6.1.0.tgz} - engines: {node: '>=8'} - dev: true + dequal@2.0.3: {} - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/detect-newline/-/detect-newline-3.1.0.tgz} - engines: {node: '>=8'} - dev: true + detect-indent@5.0.0: {} - /dezalgo/1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dezalgo/-/dezalgo-1.0.4.tgz} + devlop@1.1.0: dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: true + dequal: 2.0.3 - /diff-sequences/25.2.6: - resolution: {integrity: sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/diff-sequences/-/diff-sequences-25.2.6.tgz} - engines: {node: '>= 8.3'} - dev: true + diff-sequences@29.6.3: {} - /diff-sequences/27.5.1: - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/diff-sequences/-/diff-sequences-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /diff-sequences/29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/diff-sequences/-/diff-sequences-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/diff/-/diff-4.0.2.tgz} - engines: {node: '>=0.3.1'} - dev: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dir-glob/-/dir-glob-3.0.1.tgz} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /doctrine/2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/doctrine/-/doctrine-2.1.0.tgz} - engines: {node: '>=0.10.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/doctrine/-/doctrine-3.0.0.tgz} - engines: {node: '>=6.0.0'} + dot-prop@5.3.0: dependencies: - esutils: 2.0.3 - dev: true + is-obj: 2.0.0 - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/domexception/-/domexception-2.0.1.tgz} - engines: {node: '>=8'} + dotenv-expand@11.0.7: dependencies: - webidl-conversions: 5.0.0 - dev: true + dotenv: 16.4.7 - /dot-prop/5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dot-prop/-/dot-prop-5.3.0.tgz} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true + dotenv@16.4.7: {} - /dot-prop/6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/dot-prop/-/dot-prop-6.0.1.tgz} - engines: {node: '>=10'} + dunder-proto@1.0.1: dependencies: - is-obj: 2.0.0 - dev: true + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 - /duplexer/0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/duplexer/-/duplexer-0.1.2.tgz} - dev: true + duplexer@0.1.2: {} - /eastasianwidth/0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + eastasianwidth@0.2.0: {} - /ecc-jsbn/0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz} + ejs@3.1.10: dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true + jake: 10.9.2 - /electron-to-chromium/1.4.302: - resolution: {integrity: sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz} + electron-to-chromium@1.5.111: {} - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/emittery/-/emittery-0.8.1.tgz} - engines: {node: '>=10'} - dev: true + emoji-regex@10.4.0: {} - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/emoji-regex/-/emoji-regex-8.0.0.tgz} - dev: true + emoji-regex@8.0.0: {} - /emoji-regex/9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + emoji-regex@9.2.2: {} - /encoding/0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 - dev: true optional: true - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/end-of-stream/-/end-of-stream-1.4.4.tgz} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - dev: false - /env-paths/2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/env-paths/-/env-paths-2.2.1.tgz} - engines: {node: '>=6'} - dev: true + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 - /envinfo/7.8.1: - resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/envinfo/-/envinfo-7.8.1.tgz} - engines: {node: '>=4'} - hasBin: true - dev: true + enquirer@2.3.6: + dependencies: + ansi-colors: 4.1.3 - /err-code/2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/err-code/-/err-code-2.0.3.tgz} - dev: true + entities@4.5.0: {} - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/error-ex/-/error-ex-1.3.2.tgz} - dependencies: - is-arrayish: 0.2.1 - dev: true + env-paths@2.2.1: {} - /es-abstract/1.21.1: - resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/es-abstract/-/es-abstract-1.21.1.tgz} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.1 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - dev: true - - /es-array-method-boxes-properly/1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz} - dev: true - - /es-set-tostringtag/2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true + envinfo@7.13.0: {} - /es-shim-unscopables/1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz} - dependencies: - has: 1.0.3 - dev: true + environment@1.1.0: {} - /es-to-primitive/1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true + err-code@2.0.3: {} - /esbuild-android-arm64/0.13.15: - resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 - /esbuild-darwin-64/0.13.15: - resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true + es-define-property@1.0.1: {} - /esbuild-darwin-arm64/0.13.15: - resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true + es-errors@1.3.0: {} - /esbuild-freebsd-64/0.13.15: - resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true + es-module-lexer@1.6.0: {} - /esbuild-freebsd-arm64/0.13.15: - resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 - /esbuild-linux-32/0.13.15: - resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - /esbuild-linux-64/0.13.15: - resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true + esbuild@0.25.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 - /esbuild-linux-arm/0.13.15: - resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true + escalade@3.2.0: {} - /esbuild-linux-arm64/0.13.15: - resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true + escape-string-regexp@1.0.5: {} - /esbuild-linux-mips64le/0.13.15: - resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true + escape-string-regexp@2.0.0: {} - /esbuild-linux-ppc64le/0.13.15: - resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true + escape-string-regexp@4.0.0: {} - /esbuild-netbsd-64/0.13.15: - resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true + escape-string-regexp@5.0.0: {} - /esbuild-openbsd-64/0.13.15: - resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true + eslint-compat-utils@0.5.1(eslint@9.21.0(jiti@1.21.6)): + dependencies: + eslint: 9.21.0(jiti@1.21.6) + semver: 7.7.1 - /esbuild-runner/2.2.2_esbuild@0.13.15: - resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esbuild-runner/-/esbuild-runner-2.2.2.tgz} - hasBin: true - peerDependencies: - esbuild: '*' + eslint-compat-utils@0.6.4(eslint@9.21.0(jiti@1.21.6)): dependencies: - esbuild: 0.13.15 - source-map-support: 0.5.21 - tslib: 2.4.0 + eslint: 9.21.0(jiti@1.21.6) + semver: 7.7.1 - /esbuild-sunos-64/0.13.15: - resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true + eslint-config-flat-gitignore@2.1.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + '@eslint/compat': 1.2.7(eslint@9.21.0(jiti@1.21.6)) + eslint: 9.21.0(jiti@1.21.6) - /esbuild-windows-32/0.13.15: - resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true + eslint-flat-config-utils@2.0.1: + dependencies: + pathe: 2.0.3 - /esbuild-windows-64/0.13.15: - resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color - /esbuild-windows-arm64/0.13.15: - resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true + eslint-json-compat-utils@0.2.1(eslint@9.21.0(jiti@1.21.6))(jsonc-eslint-parser@2.4.0): + dependencies: + eslint: 9.21.0(jiti@1.21.6) + esquery: 1.6.0 + jsonc-eslint-parser: 2.4.0 - /esbuild/0.13.15: - resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esbuild/-/esbuild-0.13.15.tgz} - hasBin: true - requiresBuild: true - optionalDependencies: - esbuild-android-arm64: 0.13.15 - esbuild-darwin-64: 0.13.15 - esbuild-darwin-arm64: 0.13.15 - esbuild-freebsd-64: 0.13.15 - esbuild-freebsd-arm64: 0.13.15 - esbuild-linux-32: 0.13.15 - esbuild-linux-64: 0.13.15 - esbuild-linux-arm: 0.13.15 - esbuild-linux-arm64: 0.13.15 - esbuild-linux-mips64le: 0.13.15 - esbuild-linux-ppc64le: 0.13.15 - esbuild-netbsd-64: 0.13.15 - esbuild-openbsd-64: 0.13.15 - esbuild-sunos-64: 0.13.15 - esbuild-windows-32: 0.13.15 - esbuild-windows-64: 0.13.15 - esbuild-windows-arm64: 0.13.15 - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/escalade/-/escalade-3.1.1.tgz} - engines: {node: '>=6'} + eslint-merge-processors@2.0.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + eslint: 9.21.0(jiti@1.21.6) - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} - engines: {node: '>=0.8.0'} + eslint-plugin-antfu@3.1.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + eslint: 9.21.0(jiti@1.21.6) - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} - engines: {node: '>=8'} - dev: true + eslint-plugin-command@3.1.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + '@es-joy/jsdoccomment': 0.50.0 + eslint: 9.21.0(jiti@1.21.6) - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} - engines: {node: '>=10'} - dev: true + eslint-plugin-es-x@7.8.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.21.0(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.21.0(jiti@1.21.6)) - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/escodegen/-/escodegen-2.0.0.tgz} - engines: {node: '>=6.0'} - hasBin: true + eslint-plugin-import-x@4.6.1(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2): dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true + '@types/doctrine': 0.0.9 + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + debug: 4.4.0 + doctrine: 3.0.0 + enhanced-resolve: 5.18.1 + eslint: 9.21.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.10.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + stable-hash: 0.0.4 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + - typescript - /eslint-config-prettier/8.6.0_eslint@8.34.0: - resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-jsdoc@50.6.3(eslint@9.21.0(jiti@1.21.6)): dependencies: - eslint: 8.34.0 - dev: true + '@es-joy/jsdoccomment': 0.49.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint: 9.21.0(jiti@1.21.6) + espree: 10.3.0 + esquery: 1.6.0 + parse-imports: 2.2.1 + semver: 7.7.1 + spdx-expression-parse: 4.0.0 + synckit: 0.9.2 + transitivePeerDependencies: + - supports-color - /eslint-import-resolver-node/0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz} + eslint-plugin-jsonc@2.19.1(eslint@9.21.0(jiti@1.21.6)): dependencies: - debug: 3.2.7 - is-core-module: 2.11.0 - resolve: 1.22.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + eslint: 9.21.0(jiti@1.21.6) + eslint-compat-utils: 0.6.4(eslint@9.21.0(jiti@1.21.6)) + eslint-json-compat-utils: 0.2.1(eslint@9.21.0(jiti@1.21.6))(jsonc-eslint-parser@2.4.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + transitivePeerDependencies: + - '@eslint/json' + + eslint-plugin-n@17.16.1(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + enhanced-resolve: 5.18.1 + eslint: 9.21.0(jiti@1.21.6) + eslint-plugin-es-x: 7.8.0(eslint@9.21.0(jiti@1.21.6)) + get-tsconfig: 4.10.0 + globals: 15.15.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.7.1 + ts-declaration-location: 1.0.5(typescript@5.8.2) transitivePeerDependencies: - supports-color - dev: true + - typescript - /eslint-module-utils/2.7.4_npjqex3ey3rgd34fjcuucz7la4: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@4.9.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2): dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - debug: 3.2.7 - eslint: 8.34.0 - eslint-import-resolver-node: 0.3.7 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + eslint: 9.21.0(jiti@1.21.6) + natural-orderby: 5.0.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-regexp@2.7.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + comment-parser: 1.4.1 + eslint: 9.21.0(jiti@1.21.6) + jsdoc-type-pratt-parser: 4.1.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.12.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + debug: 4.4.0 + eslint: 9.21.0(jiti@1.21.6) + eslint-compat-utils: 0.6.4(eslint@9.21.0(jiti@1.21.6)) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import/2.27.5_mcvs2y73sfmcxqzpjj5lr7a2m4: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-unicorn@57.0.0(eslint@9.21.0(jiti@1.21.6)): + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + ci-info: 4.1.0 + clean-regexp: 1.0.0 + core-js-compat: 3.41.0 + eslint: 9.21.0(jiti@1.21.6) + esquery: 1.6.0 + globals: 15.15.0 + indent-string: 5.0.0 + is-builtin-module: 4.0.0 + jsesc: 3.1.0 + pluralize: 8.0.0 + read-package-up: 11.0.0 + regexp-tree: 0.1.27 + regjsparser: 0.12.0 + semver: 7.7.1 + strip-indent: 4.0.0 + + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6)): + dependencies: + eslint: 9.21.0(jiti@1.21.6) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2))(eslint@9.21.0(jiti@1.21.6))(typescript@5.8.2) + + eslint-plugin-vue@9.32.0(eslint@9.21.0(jiti@1.21.6)): dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.34.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_npjqex3ey3rgd34fjcuucz7la4 - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 - tsconfig-paths: 3.14.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + eslint: 9.21.0(jiti@1.21.6) + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.1 + vue-eslint-parser: 9.4.3(eslint@9.21.0(jiti@1.21.6)) + xml-name-validator: 4.0.0 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-prettier/4.2.1_u5wnrdwibbfomslmnramz52buy: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true + eslint-plugin-yml@1.17.0(eslint@9.21.0(jiti@1.21.6)): dependencies: - eslint: 8.34.0 - eslint-config-prettier: 8.6.0_eslint@8.34.0 - prettier: 2.8.4 - prettier-linter-helpers: 1.0.0 - dev: true + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint: 9.21.0(jiti@1.21.6) + eslint-compat-utils: 0.6.4(eslint@9.21.0(jiti@1.21.6)) + natural-compare: 1.4.0 + yaml-eslint-parser: 1.3.0 + transitivePeerDependencies: + - supports-color - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-scope/-/eslint-scope-5.1.1.tgz} - engines: {node: '>=8.0.0'} + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.21.0(jiti@1.21.6)): dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true + '@vue/compiler-sfc': 3.5.13 + eslint: 9.21.0(jiti@1.21.6) - /eslint-scope/7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-scope/-/eslint-scope-7.1.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /eslint-utils/3.0.0_eslint@8.34.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-utils/-/eslint-utils-3.0.0.tgz} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' + eslint-scope@8.2.0: dependencies: - eslint: 8.34.0 - eslint-visitor-keys: 2.1.0 - dev: true + esrecurse: 4.3.0 + estraverse: 5.3.0 - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} - engines: {node: '>=10'} - dev: true + eslint-visitor-keys@3.4.3: {} - /eslint-visitor-keys/3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + eslint-visitor-keys@4.2.0: {} - /eslint/8.34.0: - resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eslint/-/eslint-8.34.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@9.21.0(jiti@1.21.6): dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.21.0 + '@eslint/plugin-kit': 0.2.7 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 + cross-spawn: 7.0.6 + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.34.0 - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 - esquery: 1.4.2 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.3.0 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.6 transitivePeerDependencies: - supports-color - dev: true - /espree/9.4.1: - resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/espree/-/espree-9.4.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2_acorn@8.8.2 - eslint-visitor-keys: 3.3.0 - dev: true + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esprima/-/esprima-4.0.1.tgz} - engines: {node: '>=4'} - hasBin: true + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 - /esquery/1.4.2: - resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esquery/-/esquery-1.4.2.tgz} - engines: {node: '>=0.10'} + esprima@4.0.1: {} + + esquery@1.6.0: dependencies: estraverse: 5.3.0 - dev: true - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esrecurse/-/esrecurse-4.3.0.tgz} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - dev: true - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/estraverse/-/estraverse-4.3.0.tgz} - engines: {node: '>=4.0'} - dev: true + estraverse@5.3.0: {} - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/estraverse/-/estraverse-5.3.0.tgz} - engines: {node: '>=4.0'} - dev: true + estree-walker@2.0.2: {} - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/esutils/-/esutils-2.0.3.tgz} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eventemitter3/4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/eventemitter3/-/eventemitter3-4.0.7.tgz} - dev: true + eventemitter3@4.0.7: {} - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/execa/-/execa-5.1.1.tgz} - engines: {node: '>=10'} + eventemitter3@5.0.1: {} + + execa@5.0.0: dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 + cross-spawn: 7.0.6 + get-stream: 6.0.0 human-signals: 2.1.0 - is-stream: 2.0.1 + is-stream: 2.0.0 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true - /execa/6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + execa@8.0.1: dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 3.0.1 + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true - /exit/0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/exit/-/exit-0.1.2.tgz} - engines: {node: '>= 0.8.0'} - dev: true - - /expect/27.5.1: - resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/expect/-/expect-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + expect@29.7.0: dependencies: - '@jest/types': 27.5.1 - jest-get-type: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - dev: true + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 - /expect/29.4.3: - resolution: {integrity: sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/expect/-/expect-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.4.3 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.4.3 - jest-message-util: 29.4.3 - jest-util: 29.4.3 - dev: true + exponential-backoff@3.1.2: {} - /extend/3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/extend/-/extend-3.0.2.tgz} - dev: true + exsolve@1.0.1: {} - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/external-editor/-/external-editor-3.1.0.tgz} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: true - - /extsprintf/1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/extsprintf/-/extsprintf-1.3.0.tgz} - engines: {'0': node >=0.6.0} - dev: true - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} - dev: true + fast-deep-equal@3.1.3: {} - /fast-diff/1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fast-diff/-/fast-diff-1.2.0.tgz} - dev: true - - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fast-glob/-/fast-glob-3.2.12.tgz} - engines: {node: '>=8.6.0'} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - dev: true + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein/2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} - dev: true + fast-levenshtein@2.0.6: {} - /fastq/1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fastq/-/fastq-1.15.0.tgz} + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 - /fb-watchman/2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fb-watchman/-/fb-watchman-2.0.2.tgz} + figures@3.2.0: dependencies: - bser: 2.1.1 - dev: true + escape-string-regexp: 1.0.5 - /figures/3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/figures/-/figures-3.2.0.tgz} - engines: {node: '>=8'} + file-entry-cache@8.0.0: dependencies: - escape-string-regexp: 1.0.5 - dev: true + flat-cache: 4.0.1 - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} - engines: {node: ^10.12.0 || >=12.0.0} + filelist@1.0.4: dependencies: - flat-cache: 3.0.4 - dev: true + minimatch: 5.1.6 - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fill-range/-/fill-range-7.0.1.tgz} - engines: {node: '>=8'} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - /filter-obj/1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/filter-obj/-/filter-obj-1.1.0.tgz} - engines: {node: '>=0.10.0'} - dev: true + find-up-simple@1.0.1: {} - /find-up/2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/find-up/-/find-up-2.1.0.tgz} - engines: {node: '>=4'} + find-up@2.1.0: dependencies: locate-path: 2.0.0 - dev: true - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/find-up/-/find-up-4.1.0.tgz} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/find-up/-/find-up-5.0.0.tgz} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/flat-cache/-/flat-cache-3.0.4.tgz} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: true + flatted: 3.3.3 + keyv: 4.5.4 - /flatted/3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/flatted/-/flatted-3.2.7.tgz} - dev: true + flat@5.0.2: {} - /for-each/0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/for-each/-/for-each-0.3.3.tgz} - dependencies: - is-callable: 1.2.7 - dev: true + flatted@3.3.3: {} - /forever-agent/0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/forever-agent/-/forever-agent-0.6.1.tgz} - dev: true + follow-redirects@1.15.9: {} - /form-data/2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/form-data/-/form-data-2.3.3.tgz} - engines: {node: '>= 0.12'} + foreground-child@3.3.1: dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true + cross-spawn: 7.0.6 + signal-exit: 4.1.0 - /form-data/2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/form-data/-/form-data-2.5.1.tgz} - engines: {node: '>= 0.12'} + form-data@4.0.2: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 mime-types: 2.1.35 - dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/form-data/-/form-data-3.0.1.tgz} - engines: {node: '>= 6'} + front-matter@4.0.2: dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true + js-yaml: 3.14.1 - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fs-extra/-/fs-extra-10.1.0.tgz} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + fs-constants@1.0.0: {} - /fs-extra/9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fs-extra/-/fs-extra-9.1.0.tgz} - engines: {node: '>=10'} + fs-extra@11.3.0: dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs-minipass/1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fs-minipass/-/fs-minipass-1.2.7.tgz} - dependencies: - minipass: 2.9.0 - dev: true + universalify: 2.0.1 - /fs-minipass/2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fs-minipass/-/fs-minipass-2.1.0.tgz} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - dev: true - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/fs.realpath/-/fs.realpath-1.0.0.tgz} - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/function-bind/-/function-bind-1.1.1.tgz} - - /function.prototype.name/1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz} - engines: {node: '>= 0.4'} + fs-minipass@3.0.3: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - functions-have-names: 1.2.3 - dev: true + minipass: 7.1.2 - /functions-have-names/1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/functions-have-names/-/functions-have-names-1.2.3.tgz} - dev: true + fs.realpath@1.0.0: {} - /gauge/2.7.4: - resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/gauge/-/gauge-2.7.4.tgz} - dependencies: - aproba: 1.2.0 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.5 - dev: true + function-bind@1.1.2: {} - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/gensync/-/gensync-1.0.0-beta.2.tgz} - engines: {node: '>=6.9.0'} + gensync@1.0.0-beta.2: {} - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-caller-file/-/get-caller-file-2.0.5.tgz} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-intrinsic/1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true + get-east-asian-width@1.3.0: {} - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-package-type/-/get-package-type-0.1.0.tgz} - engines: {node: '>=8.0.0'} - dev: true + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 - /get-pkg-repo/4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz} - engines: {node: '>=6.9.0'} - hasBin: true + get-pkg-repo@4.2.1: dependencies: '@hutson/parse-repository-url': 3.0.2 hosted-git-info: 4.1.0 through2: 2.0.5 yargs: 16.2.0 - dev: true - /get-port/5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-port/-/get-port-5.1.1.tgz} - engines: {node: '>=8'} - dev: true + get-port@5.1.1: {} - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-stream/-/get-stream-5.2.0.tgz} - engines: {node: '>=8'} + get-proto@1.0.1: dependencies: - pump: 3.0.0 - dev: false + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-stream/-/get-stream-6.0.1.tgz} - engines: {node: '>=10'} - dev: true + get-stream@6.0.0: {} - /get-symbol-description/1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - dev: true + get-stream@8.0.1: {} - /getpass/0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/getpass/-/getpass-0.1.7.tgz} + get-tsconfig@4.10.0: dependencies: - assert-plus: 1.0.0 - dev: true - - /git-hooks-list/1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz} - dev: true + resolve-pkg-maps: 1.0.0 - /git-raw-commits/2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz} - engines: {node: '>=10'} - hasBin: true + git-raw-commits@3.0.0: dependencies: dargs: 7.0.0 - lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 - through2: 4.0.2 - dev: true - /git-remote-origin-url/2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz} - engines: {node: '>=4'} + git-remote-origin-url@2.0.0: dependencies: gitconfiglocal: 1.0.0 pify: 2.3.0 - dev: true - /git-semver-tags/4.1.1: - resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz} - engines: {node: '>=10'} - hasBin: true + git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 6.3.0 - dev: true + semver: 7.7.1 - /git-up/4.0.5: - resolution: {integrity: sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-up/-/git-up-4.0.5.tgz} + git-up@7.0.0: dependencies: - is-ssh: 1.4.0 - parse-url: 6.0.5 - dev: true + is-ssh: 1.4.1 + parse-url: 8.1.0 - /git-url-parse/11.6.0: - resolution: {integrity: sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/git-url-parse/-/git-url-parse-11.6.0.tgz} + git-url-parse@14.0.0: dependencies: - git-up: 4.0.5 - dev: true + git-up: 7.0.0 - /gitconfiglocal/1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz} + gitconfiglocal@1.0.0: dependencies: ini: 1.3.8 - dev: true - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/glob-parent/-/glob-parent-5.1.2.tgz} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/glob-parent/-/glob-parent-6.0.2.tgz} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: true - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/glob/-/glob-7.2.3.tgz} + glob@10.4.5: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 - /global-dirs/0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/global-dirs/-/global-dirs-0.1.1.tgz} - engines: {node: '>=4'} + glob@11.0.1: dependencies: - ini: 1.3.8 - dev: true + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/globals/-/globals-11.12.0.tgz} - engines: {node: '>=4'} + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 - /globals/13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/globals/-/globals-13.20.0.tgz} - engines: {node: '>=8'} + globals@11.12.0: {} + + globals@13.24.0: dependencies: type-fest: 0.20.2 - dev: true - /globalthis/1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/globalthis/-/globalthis-1.0.3.tgz} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 - dev: true + globals@14.0.0: {} - /globby/10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/globby/-/globby-10.0.0.tgz} - engines: {node: '>=8'} - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - glob: 7.2.3 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true + globals@15.15.0: {} - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/globby/-/globby-11.1.0.tgz} - engines: {node: '>=10'} + globals@16.0.0: {} + + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.3 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 - /gopd/1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/gopd/-/gopd-1.0.1.tgz} - dependencies: - get-intrinsic: 1.2.0 - dev: true + gopd@1.2.0: {} - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/graceful-fs/-/graceful-fs-4.2.10.tgz} - dev: true + graceful-fs@4.2.11: {} - /grapheme-splitter/1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} - dev: true + graphemer@1.4.0: {} - /handlebars/4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/handlebars/-/handlebars-4.7.7.tgz} - engines: {node: '>=0.4.7'} - hasBin: true + handlebars@4.7.8: dependencies: minimist: 1.2.8 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 - dev: true + uglify-js: 3.19.3 - /har-schema/2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/har-schema/-/har-schema-2.0.0.tgz} - engines: {node: '>=4'} - dev: true - - /har-validator/5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/har-validator/-/har-validator-5.1.5.tgz} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - - /hard-rejection/2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/hard-rejection/-/hard-rejection-2.1.0.tgz} - engines: {node: '>=6'} - dev: true - - /has-bigints/1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-bigints/-/has-bigints-1.0.2.tgz} - dev: true + hard-rejection@2.1.0: {} - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-flag/-/has-flag-3.0.0.tgz} - engines: {node: '>=4'} - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-flag/-/has-flag-4.0.0.tgz} - engines: {node: '>=8'} - dev: true - - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} - dependencies: - get-intrinsic: 1.2.0 - dev: true - - /has-proto/1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-proto/-/has-proto-1.0.1.tgz} - engines: {node: '>= 0.4'} - dev: true + has-flag@4.0.0: {} - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-symbols/-/has-symbols-1.0.3.tgz} - engines: {node: '>= 0.4'} - dev: true + has-symbols@1.1.0: {} - /has-tostringtag/1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 - dev: true + has-symbols: 1.1.0 - /has-unicode/2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has-unicode/-/has-unicode-2.0.1.tgz} - dev: true + has-unicode@2.0.1: {} - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/has/-/has-1.0.3.tgz} - engines: {node: '>= 0.4.0'} + hasown@2.0.2: dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - dev: true - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz} - engines: {node: '>=10'} + hosted-git-info@7.0.2: dependencies: - whatwg-encoding: 1.0.5 - dev: true - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/html-escaper/-/html-escaper-2.0.2.tgz} - dev: true + lru-cache: 10.4.3 - /http-cache-semantics/4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz} - dev: true + http-cache-semantics@4.1.1: {} - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} - engines: {node: '>= 6'} + http-proxy-agent@7.0.2: dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - dev: true - - /http-signature/1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/http-signature/-/http-signature-1.2.0.tgz} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: true - /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz} - engines: {node: '>= 6'} + https-proxy-agent@7.0.6: dependencies: - agent-base: 6.0.2 - debug: 4.3.4 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - dev: true - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/human-signals/-/human-signals-2.1.0.tgz} - engines: {node: '>=10.17.0'} - dev: true - - /human-signals/3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} - dev: true + human-signals@2.1.0: {} - /humanize-ms/1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/humanize-ms/-/humanize-ms-1.2.1.tgz} - dependencies: - ms: 2.1.3 - dev: true + human-signals@5.0.0: {} - /husky/8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - dev: true + husky@9.1.7: {} - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/iconv-lite/-/iconv-lite-0.4.24.tgz} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - dev: true - /iconv-lite/0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/iconv-lite/-/iconv-lite-0.6.3.tgz} - engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - dev: true optional: true - /ignore-walk/3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ignore-walk/-/ignore-walk-3.0.4.tgz} + ieee754@1.2.1: {} + + ignore-walk@6.0.5: dependencies: - minimatch: 3.1.2 - dev: true + minimatch: 9.0.5 - /ignore/5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ignore/-/ignore-5.2.4.tgz} - engines: {node: '>= 4'} + ignore@5.3.2: {} - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/import-fresh/-/import-fresh-3.3.0.tgz} - engines: {node: '>=6'} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/import-local/-/import-local-3.1.0.tgz} - engines: {node: '>=8'} - hasBin: true + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - dev: true - /imurmurhash/0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/imurmurhash/-/imurmurhash-0.1.4.tgz} - engines: {node: '>=0.8.19'} - dev: true + imurmurhash@0.1.4: {} - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/indent-string/-/indent-string-4.0.0.tgz} - engines: {node: '>=8'} - dev: true + indent-string@4.0.0: {} - /infer-owner/1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/infer-owner/-/infer-owner-1.0.4.tgz} - dev: true + indent-string@5.0.0: {} - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/inflight/-/inflight-1.0.6.tgz} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 + index-to-position@0.1.2: {} - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/inherits/-/inherits-2.0.4.tgz} + inherits@2.0.4: {} - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ini/-/ini-1.3.8.tgz} - dev: true + ini@1.3.8: {} - /init-package-json/2.0.5: - resolution: {integrity: sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/init-package-json/-/init-package-json-2.0.5.tgz} - engines: {node: '>=10'} + ini@4.1.3: {} + + init-package-json@6.0.3: dependencies: - npm-package-arg: 8.1.5 - promzard: 0.3.0 - read: 1.0.7 - read-package-json: 4.1.2 - semver: 7.3.8 + '@npmcli/package-json': 5.2.0 + npm-package-arg: 11.0.2 + promzard: 1.0.2 + read: 3.0.1 + semver: 7.7.1 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 3.0.0 - dev: true + validate-npm-package-name: 5.0.1 + transitivePeerDependencies: + - bluebird - /inquirer/7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/inquirer/-/inquirer-7.3.3.tgz} - engines: {node: '>=8.0.0'} + inquirer@8.2.6: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -5593,1307 +6216,565 @@ packages: figures: 3.2.0 lodash: 4.17.21 mute-stream: 0.0.8 + ora: 5.4.1 run-async: 2.4.1 - rxjs: 6.6.7 + rxjs: 7.8.2 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 - dev: true - - /internal-slot/1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/internal-slot/-/internal-slot-1.0.5.tgz} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - - /ip/2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ip/-/ip-2.0.0.tgz} - dev: true + wrap-ansi: 6.2.0 - /is-array-buffer/3.0.1: - resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz} + ip-address@9.0.5: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 - dev: true + jsbn: 1.1.0 + sprintf-js: 1.1.3 - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-arrayish/-/is-arrayish-0.2.1.tgz} - dev: true + is-arrayish@0.2.1: {} - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-bigint/-/is-bigint-1.0.4.tgz} + is-builtin-module@4.0.0: dependencies: - has-bigints: 1.0.2 - dev: true + builtin-modules: 4.0.0 - /is-boolean-object/1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} - engines: {node: '>= 0.4'} + is-ci@3.0.1: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-callable/1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-callable/-/is-callable-1.2.7.tgz} - engines: {node: '>= 0.4'} - dev: true + ci-info: 3.9.0 - /is-ci-cli/2.2.0: - resolution: {integrity: sha512-Xg97ZGDzU0a9gPTAli+TNegMk+PI3x0KLRYCfBa2LAboF1YyuA03Gwdc9vpu3VRNU+lFFNkvXnIQuJ0PgB120Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-ci-cli/-/is-ci-cli-2.2.0.tgz} - engines: {node: '>=8'} - hasBin: true + is-core-module@2.16.1: dependencies: - cross-spawn: 7.0.3 - is-ci: 2.0.0 + hasown: 2.0.2 - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-ci/-/is-ci-2.0.0.tgz} - hasBin: true - dependencies: - ci-info: 2.0.0 + is-docker@2.2.1: {} - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-core-module/-/is-core-module-2.11.0.tgz} - dependencies: - has: 1.0.3 + is-extglob@2.1.1: {} - /is-date-object/1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-date-object/-/is-date-object-1.0.5.tgz} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-extglob/-/is-extglob-2.1.1.tgz} - engines: {node: '>=0.10.0'} + is-fullwidth-code-point@4.0.0: {} - /is-fullwidth-code-point/1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz} - engines: {node: '>=0.10.0'} + is-fullwidth-code-point@5.0.0: dependencies: - number-is-nan: 1.0.1 - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} - engines: {node: '>=8'} - dev: true - - /is-fullwidth-code-point/4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz} - engines: {node: '>=6'} - dev: true + get-east-asian-width: 1.3.0 - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-glob/-/is-glob-4.0.3.tgz} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-lambda/1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-lambda/-/is-lambda-1.0.1.tgz} - dev: true - - /is-negative-zero/2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object/1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-number-object/-/is-number-object-1.0.7.tgz} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-number/-/is-number-7.0.0.tgz} - engines: {node: '>=0.12.0'} - - /is-obj/2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-obj/-/is-obj-2.0.0.tgz} - engines: {node: '>=8'} - dev: true + is-interactive@1.0.0: {} - /is-path-cwd/2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz} - engines: {node: '>=6'} - dev: true + is-lambda@1.0.1: {} - /is-path-inside/3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-path-inside/-/is-path-inside-3.0.3.tgz} - engines: {node: '>=8'} - dev: true + is-number@7.0.0: {} - /is-plain-obj/1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} - engines: {node: '>=0.10.0'} - dev: true + is-obj@2.0.0: {} - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz} - engines: {node: '>=8'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-object/2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-plain-object/-/is-plain-object-2.0.4.tgz} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - dev: true - - /is-plain-object/5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-plain-object/-/is-plain-object-5.0.0.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz} - dev: true - - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-regex/-/is-regex-1.1.4.tgz} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-shared-array-buffer/1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} - dependencies: - call-bind: 1.0.2 - dev: true - /is-ssh/1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-ssh/-/is-ssh-1.4.0.tgz} + is-ssh@1.4.1: dependencies: - protocols: 2.0.1 - dev: true - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-stream/-/is-stream-2.0.1.tgz} - engines: {node: '>=8'} - dev: true - - /is-stream/3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + protocols: 2.0.2 - /is-string/1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-string/-/is-string-1.0.7.tgz} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true + is-stream@2.0.0: {} - /is-symbol/1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-symbol/-/is-symbol-1.0.4.tgz} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true + is-stream@3.0.0: {} - /is-text-path/1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-text-path/-/is-text-path-1.0.1.tgz} - engines: {node: '>=0.10.0'} + is-text-path@1.0.1: dependencies: text-extensions: 1.9.0 - dev: true - - /is-typed-array/1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-typed-array/-/is-typed-array-1.1.10.tgz} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - - /is-typedarray/1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-typedarray/-/is-typedarray-1.0.0.tgz} - dev: true - - /is-weakref/1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/is-weakref/-/is-weakref-1.0.2.tgz} - dependencies: - call-bind: 1.0.2 - dev: true - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/isarray/-/isarray-1.0.0.tgz} - dev: true - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/isexe/-/isexe-2.0.0.tgz} + is-unicode-supported@0.1.0: {} - /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/isobject/-/isobject-3.0.1.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /isstream/0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/isstream/-/isstream-0.1.2.tgz} - dev: true - - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument/5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.20.12 - '@babel/parser': 7.20.15 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - - /jest-changed-files/27.5.1: - resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - execa: 5.1.1 - throat: 6.0.2 - dev: true - - /jest-circus/27.5.1: - resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-circus/-/jest-circus-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + is-wsl@2.2.0: dependencies: - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.6 - throat: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true + is-docker: 2.2.1 - /jest-cli/27.5.1: - resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-cli/-/jest-cli-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - jest-config: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - prompts: 2.4.2 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true + isarray@1.0.0: {} - /jest-config/27.5.1: - resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-config/-/jest-config-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 27.5.1 - '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.8.0 - deepmerge: 4.3.0 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-circus: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-get-type: 27.5.1 - jest-jasmine2: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runner: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 27.5.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true + isexe@2.0.0: {} - /jest-diff/25.5.0: - resolution: {integrity: sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-diff/-/jest-diff-25.5.0.tgz} - engines: {node: '>= 8.3'} - dependencies: - chalk: 3.0.0 - diff-sequences: 25.2.6 - jest-get-type: 25.2.6 - pretty-format: 25.5.0 - dev: true + isexe@3.1.1: {} - /jest-diff/27.5.1: - resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-diff/-/jest-diff-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true + isobject@3.0.1: {} - /jest-diff/29.4.3: - resolution: {integrity: sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-diff/-/jest-diff-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jackspeak@3.4.3: dependencies: - chalk: 4.1.2 - diff-sequences: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.4.3 - dev: true + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - /jest-docblock/27.5.1: - resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-docblock/-/jest-docblock-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jackspeak@4.1.0: dependencies: - detect-newline: 3.1.0 - dev: true + '@isaacs/cliui': 8.0.2 - /jest-each/27.5.1: - resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-each/-/jest-each-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jake@10.9.2: dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - jest-get-type: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-environment-jsdom/27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - jest-mock: 27.5.1 - jest-util: 27.5.1 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/27.5.1: - resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /jest-get-type/25.2.6: - resolution: {integrity: sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-get-type/-/jest-get-type-25.2.6.tgz} - engines: {node: '>= 8.3'} - dev: true - - /jest-get-type/27.5.1: - resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-get-type/-/jest-get-type-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-get-type/29.4.3: - resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-get-type/-/jest-get-type-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /jest-haste-map/27.5.1: - resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.6 - '@types/node': 18.14.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 27.5.1 - jest-serializer: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-jasmine2/27.5.1: - resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - co: 4.6.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - throat: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true + async: 3.2.6 + chalk: 4.1.0 + filelist: 1.0.4 + minimatch: 3.1.2 - /jest-leak-detector/27.5.1: - resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-diff@29.7.0: dependencies: - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true + chalk: 4.1.0 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 - /jest-matcher-utils/27.5.1: - resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true + jest-get-type@29.6.3: {} - /jest-matcher-utils/29.4.3: - resolution: {integrity: sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 - jest-diff: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.4.3 - dev: true - - /jest-message-util/27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-message-util/-/jest-message-util-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 - /jest-message-util/29.4.3: - resolution: {integrity: sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-message-util/-/jest-message-util-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 29.4.3 - '@types/stack-utils': 2.0.1 + '@babel/code-frame': 7.26.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.4.3 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 - dev: true - - /jest-mock/27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-mock/-/jest-mock-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - dev: true - - /jest-pnp-resolver/1.2.3_jest-resolve@27.5.1: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.5.1 - dev: true - - /jest-regex-util/27.5.1: - resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-resolve-dependencies/27.5.1: - resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-regex-util: 27.5.1 - jest-snapshot: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/27.5.1: - resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-resolve/-/jest-resolve-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-pnp-resolver: 1.2.3_jest-resolve@27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - resolve: 1.22.1 - resolve.exports: 1.1.1 - slash: 3.0.0 - dev: true - - /jest-runner/27.5.1: - resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-runner/-/jest-runner-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - emittery: 0.8.1 - graceful-fs: 4.2.10 - jest-docblock: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-haste-map: 27.5.1 - jest-leak-detector: 27.5.1 - jest-message-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runtime: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - source-map-support: 0.5.21 - throat: 6.0.2 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-runtime/27.5.1: - resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-runtime/-/jest-runtime-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/globals': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - execa: 5.1.1 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-serializer/27.5.1: - resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-serializer/-/jest-serializer-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 18.14.0 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/27.5.1: - resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 - chalk: 4.1.2 - expect: 27.5.1 - graceful-fs: 4.2.10 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - jest-haste-map: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - natural-compare: 1.4.0 - pretty-format: 27.5.1 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/27.5.1: - resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-util/-/jest-util-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - chalk: 4.1.2 - ci-info: 3.8.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - dev: true - /jest-util/29.4.3: - resolution: {integrity: sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-util/-/jest-util-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@29.7.0: dependencies: - '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@jest/types': 29.6.3 + '@types/node': 22.13.9 chalk: 4.1.2 - ci-info: 3.8.0 - graceful-fs: 4.2.10 + ci-info: 3.9.0 + graceful-fs: 4.2.11 picomatch: 2.3.1 - dev: true - - /jest-validate/27.5.1: - resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-validate/-/jest-validate-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 27.5.1 - leven: 3.1.0 - pretty-format: 27.5.1 - dev: true - - /jest-watcher/27.5.1: - resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-watcher/-/jest-watcher-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 18.14.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 27.5.1 - string-length: 4.0.2 - dev: true - - /jest-worker/27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest-worker/-/jest-worker-27.5.1.tgz} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.14.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest/27.5.1: - resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jest/-/jest-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - import-local: 3.1.0 - jest-cli: 27.5.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /js-sdsl/4.3.0: - resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/js-sdsl/-/js-sdsl-4.3.0.tgz} - dev: true + jiti@1.21.6: + optional: true - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/js-tokens/-/js-tokens-4.0.0.tgz} + js-tokens@4.0.0: {} - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/js-yaml/-/js-yaml-3.14.1.tgz} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/js-yaml/-/js-yaml-4.1.0.tgz} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - dev: true - /jsbn/0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsbn/-/jsbn-0.1.1.tgz} - dev: true + jsbn@1.1.0: {} - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsdom/-/jsdom-16.7.0.tgz} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.3 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.9 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true + jsdoc-type-pratt-parser@4.1.0: {} - /jsesc/0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsesc/-/jsesc-0.5.0.tgz} - hasBin: true - dev: false + jsesc@3.0.2: {} - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsesc/-/jsesc-2.5.2.tgz} - engines: {node: '>=4'} - hasBin: true + jsesc@3.1.0: {} - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} - dev: true + json-buffer@3.0.1: {} - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} - dev: true + json-parse-better-errors@1.0.2: {} - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} - dev: true + json-parse-even-better-errors@2.3.1: {} - /json-schema/0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-schema/-/json-schema-0.4.0.tgz} - dev: true + json-parse-even-better-errors@3.0.2: {} - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} - dev: true + json-schema-traverse@0.4.1: {} - /json-stringify-safe/5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz} - dev: true + json-stable-stringify-without-jsonify@1.0.1: {} - /json5/1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json5/-/json5-1.0.2.tgz} - hasBin: true + json-stringify-nice@1.1.4: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsonc-eslint-parser@2.4.0: dependencies: - minimist: 1.2.8 - dev: true + acorn: 8.14.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.1 - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/json5/-/json5-2.2.3.tgz} - engines: {node: '>=6'} - hasBin: true + jsonc-parser@3.2.0: {} - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsonfile/-/jsonfile-6.1.0.tgz} + jsonfile@6.1.0: dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: - graceful-fs: 4.2.10 - dev: true + graceful-fs: 4.2.11 - /jsonparse/1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsonparse/-/jsonparse-1.3.1.tgz} - engines: {'0': node >= 0.2.0} - dev: true + jsonparse@1.3.1: {} - /jsprim/1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/jsprim/-/jsprim-1.4.2.tgz} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true + just-diff-apply@5.5.0: {} - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/kind-of/-/kind-of-6.0.3.tgz} - engines: {node: '>=0.10.0'} - dev: true + just-diff@6.0.2: {} - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/kleur/-/kleur-3.0.3.tgz} - engines: {node: '>=6'} - dev: true + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 - /lerna/4.0.0: - resolution: {integrity: sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lerna/-/lerna-4.0.0.tgz} - engines: {node: '>= 10.18.0'} - hasBin: true + kind-of@6.0.3: {} + + lerna@8.2.1(encoding@0.1.13): dependencies: - '@lerna/add': 4.0.0 - '@lerna/bootstrap': 4.0.0 - '@lerna/changed': 4.0.0 - '@lerna/clean': 4.0.0 - '@lerna/cli': 4.0.0 - '@lerna/create': 4.0.0 - '@lerna/diff': 4.0.0 - '@lerna/exec': 4.0.0 - '@lerna/import': 4.0.0 - '@lerna/info': 4.0.0 - '@lerna/init': 4.0.0 - '@lerna/link': 4.0.0 - '@lerna/list': 4.0.0 - '@lerna/publish': 4.0.0 - '@lerna/run': 4.0.0 - '@lerna/version': 4.0.0 + '@lerna/create': 8.2.1(encoding@0.1.13)(typescript@5.8.2) + '@npmcli/arborist': 7.5.4 + '@npmcli/package-json': 5.2.0 + '@npmcli/run-script': 8.1.0 + '@nx/devkit': 20.4.6(nx@20.4.6) + '@octokit/plugin-enterprise-rest': 6.0.1 + '@octokit/rest': 20.1.2 + aproba: 2.0.0 + byte-size: 8.1.1 + chalk: 4.1.0 + clone-deep: 4.0.1 + cmd-shim: 6.0.3 + color-support: 1.1.3 + columnify: 1.6.0 + console-control-strings: 1.1.0 + conventional-changelog-angular: 7.0.0 + conventional-changelog-core: 5.0.1 + conventional-recommended-bump: 7.0.1 + cosmiconfig: 9.0.0(typescript@5.8.2) + dedent: 1.5.3 + envinfo: 7.13.0 + execa: 5.0.0 + fs-extra: 11.3.0 + get-port: 5.1.1 + get-stream: 6.0.0 + git-url-parse: 14.0.0 + glob-parent: 6.0.2 + globby: 11.1.0 + graceful-fs: 4.2.11 + has-unicode: 2.0.1 import-local: 3.1.0 - npmlog: 4.1.2 + ini: 1.3.8 + init-package-json: 6.0.3 + inquirer: 8.2.6 + is-ci: 3.0.1 + is-stream: 2.0.0 + jest-diff: 29.7.0 + js-yaml: 4.1.0 + libnpmaccess: 8.0.6 + libnpmpublish: 9.0.9 + load-json-file: 6.2.0 + lodash: 4.17.21 + make-dir: 4.0.0 + minimatch: 3.0.5 + multimatch: 5.0.0 + node-fetch: 2.6.7(encoding@0.1.13) + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-registry-fetch: 17.1.0 + nx: 20.4.6 + p-map: 4.0.0 + p-map-series: 2.1.0 + p-pipe: 3.1.0 + p-queue: 6.6.2 + p-reduce: 2.1.0 + p-waterfall: 2.1.1 + pacote: 18.0.6 + pify: 5.0.0 + read-cmd-shim: 4.0.0 + resolve-from: 5.0.0 + rimraf: 4.4.1 + semver: 7.7.1 + set-blocking: 2.0.0 + signal-exit: 3.0.7 + slash: 3.0.0 + ssri: 10.0.6 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar: 6.2.1 + temp-dir: 1.0.0 + typescript: 5.8.2 + upath: 2.0.1 + uuid: 10.0.0 + validate-npm-package-license: 3.0.4 + validate-npm-package-name: 5.0.1 + wide-align: 1.1.5 + write-file-atomic: 5.0.1 + write-pkg: 4.0.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - babel-plugin-macros - bluebird + - debug - encoding - supports-color - dev: true - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/leven/-/leven-3.1.0.tgz} - engines: {node: '>=6'} - dev: true - - /levn/0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/levn/-/levn-0.3.0.tgz} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/levn/-/levn-0.4.1.tgz} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /libnpmaccess/4.0.3: - resolution: {integrity: sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz} - engines: {node: '>=10'} + libnpmaccess@8.0.6: dependencies: - aproba: 2.0.0 - minipass: 3.3.6 - npm-package-arg: 8.1.5 - npm-registry-fetch: 11.0.0 + npm-package-arg: 11.0.2 + npm-registry-fetch: 17.1.0 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /libnpmpublish/4.0.2: - resolution: {integrity: sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz} - engines: {node: '>=10'} + libnpmpublish@9.0.9: dependencies: - normalize-package-data: 3.0.3 - npm-package-arg: 8.1.5 - npm-registry-fetch: 11.0.0 - semver: 7.3.8 - ssri: 8.0.1 + ci-info: 4.1.0 + normalize-package-data: 6.0.2 + npm-package-arg: 11.0.2 + npm-registry-fetch: 17.1.0 + proc-log: 4.2.0 + semver: 7.7.1 + sigstore: 2.3.1 + ssri: 10.0.6 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /lilconfig/2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - dev: true + lilconfig@3.1.3: {} - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} - dev: true + lines-and-columns@1.2.4: {} - /lint-staged/13.1.2: - resolution: {integrity: sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + lines-and-columns@2.0.3: {} + + lint-staged@15.4.3: dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.19 - commander: 9.5.0 - debug: 4.3.4 - execa: 6.1.0 - lilconfig: 2.0.6 - listr2: 5.0.7 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 + chalk: 5.4.1 + commander: 13.1.0 + debug: 4.4.0 + execa: 8.0.1 + lilconfig: 3.1.3 + listr2: 8.2.5 + micromatch: 4.0.8 pidtree: 0.6.0 - string-argv: 0.3.1 - yaml: 2.2.1 + string-argv: 0.3.2 + yaml: 2.7.0 transitivePeerDependencies: - - enquirer - supports-color - dev: true - /listr2/5.0.7: - resolution: {integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true + listr2@8.2.5: dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/load-json-file/-/load-json-file-4.0.0.tgz} - engines: {node: '>=4'} + load-json-file@4.0.0: dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 - dev: true - /load-json-file/6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/load-json-file/-/load-json-file-6.2.0.tgz} - engines: {node: '>=8'} + load-json-file@6.2.0: dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 parse-json: 5.2.0 strip-bom: 4.0.0 type-fest: 0.6.0 - dev: true - /locate-path/2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/locate-path/-/locate-path-2.0.0.tgz} - engines: {node: '>=4'} + local-pkg@1.1.1: + dependencies: + mlly: 1.7.4 + pkg-types: 2.1.0 + quansync: 0.2.8 + + locate-path@2.0.0: dependencies: p-locate: 2.0.0 path-exists: 3.0.0 - dev: true - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/locate-path/-/locate-path-5.0.0.tgz} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/locate-path/-/locate-path-6.0.0.tgz} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /lodash._reinterpolate/3.0.0: - resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz} - dev: true - - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} - dev: false + lodash.ismatch@4.4.0: {} - /lodash.get/4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.get/-/lodash.get-4.4.2.tgz} - dev: true + lodash.merge@4.6.2: {} - /lodash.ismatch/4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz} - dev: true + lodash@4.17.21: {} - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.merge/-/lodash.merge-4.6.2.tgz} - dev: true - - /lodash.template/4.5.0: - resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.template/-/lodash.template-4.5.0.tgz} + log-symbols@4.1.0: dependencies: - lodash._reinterpolate: 3.0.0 - lodash.templatesettings: 4.2.0 - dev: true + chalk: 4.1.2 + is-unicode-supported: 0.1.0 - /lodash.templatesettings/4.2.0: - resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz} + log-update@6.1.0: dependencies: - lodash._reinterpolate: 3.0.0 - dev: true + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lodash/-/lodash-4.17.21.tgz} - dev: true + longest-streak@3.1.0: {} - /log-update/4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - dev: true + lru-cache@10.4.3: {} + + lru-cache@11.0.2: {} - /lru-cache/5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lru-cache/-/lru-cache-5.1.1.tgz} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/lru-cache/-/lru-cache-6.0.0.tgz} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - dev: true - /make-dir/2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/make-dir/-/make-dir-2.1.0.tgz} - engines: {node: '>=6'} + magic-string@0.30.17: dependencies: - pify: 4.0.1 - semver: 5.7.1 - dev: true + '@jridgewell/sourcemap-codec': 1.5.0 - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/make-dir/-/make-dir-3.1.0.tgz} - engines: {node: '>=8'} + make-dir@2.1.0: dependencies: - semver: 6.3.0 - dev: true + pify: 4.0.1 + semver: 5.7.2 - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/make-error/-/make-error-1.3.6.tgz} - dev: true + make-dir@4.0.0: + dependencies: + semver: 7.7.1 - /make-fetch-happen/8.0.14: - resolution: {integrity: sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz} - engines: {node: '>= 10'} + make-fetch-happen@13.0.1: dependencies: - agentkeepalive: 4.2.1 - cacache: 15.3.0 + '@npmcli/agent': 2.2.2 + cacache: 18.0.4 http-cache-semantics: 4.1.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + proc-log: 4.2.0 promise-retry: 2.0.1 - socks-proxy-agent: 5.0.1 - ssri: 8.0.1 + ssri: 10.0.6 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /make-fetch-happen/9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz} - engines: {node: '>= 10'} + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + markdown-table@3.0.4: {} + + math-intrinsics@1.1.0: {} + + mdast-util-find-and-replace@3.0.2: dependencies: - agentkeepalive: 4.2.1 - cacache: 15.3.0 - http-cache-semantics: 4.1.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - promise-retry: 2.0.1 - socks-proxy-agent: 6.2.1 - ssri: 8.0.1 + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/makeerror/-/makeerror-1.0.12.tgz} + mdast-util-gfm-autolink-literal@2.0.1: dependencies: - tmpl: 1.0.5 - dev: true + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 - /map-obj/1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/map-obj/-/map-obj-1.0.1.tgz} - engines: {node: '>=0.10.0'} - dev: true + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color - /map-obj/4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/map-obj/-/map-obj-4.3.0.tgz} - engines: {node: '>=8'} - dev: true + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color - /meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/meow/-/meow-8.1.2.tgz} - engines: {node: '>=10'} + mdast-util-gfm-table@2.0.0: dependencies: - '@types/minimist': 1.2.2 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -6904,1078 +6785,832 @@ packages: trim-newlines: 3.0.1 type-fest: 0.18.1 yargs-parser: 20.2.9 - dev: true - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true + merge-stream@2.0.0: {} - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/merge2/-/merge2-1.4.1.tgz} - engines: {node: '>= 8'} + merge2@1.4.1: {} - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/micromatch/-/micromatch-4.0.5.tgz} - engines: {node: '>=8.6'} + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mime-db/-/mime-db-1.52.0.tgz} - engines: {node: '>= 0.6'} - dev: true + mime-db@1.52.0: {} - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mime-types/-/mime-types-2.1.35.tgz} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - dev: true - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mimic-fn/-/mimic-fn-2.1.0.tgz} - engines: {node: '>=6'} - dev: true + mimic-fn@2.1.0: {} - /mimic-fn/4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true + mimic-fn@4.0.0: {} - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/min-indent/-/min-indent-1.0.1.tgz} - engines: {node: '>=4'} - dev: true + mimic-function@5.0.1: {} + + min-indent@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minimatch/-/minimatch-3.1.2.tgz} + minimatch@3.0.5: dependencies: brace-expansion: 1.1.11 - /minimist-options/4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minimist-options/-/minimist-options-4.1.0.tgz} - engines: {node: '>= 6'} + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist/1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minimist/-/minimist-1.2.8.tgz} - dev: true + minimist@1.2.8: {} - /minipass-collect/1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-collect/-/minipass-collect-1.0.2.tgz} - engines: {node: '>= 8'} + minipass-collect@2.0.1: dependencies: - minipass: 3.3.6 - dev: true + minipass: 7.1.2 - /minipass-fetch/1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz} - engines: {node: '>=8'} + minipass-fetch@3.0.5: dependencies: - minipass: 3.3.6 + minipass: 7.1.2 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 - dev: true - - /minipass-flush/1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-flush/-/minipass-flush-1.0.5.tgz} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - /minipass-json-stream/1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz} + minipass-flush@1.0.5: dependencies: - jsonparse: 1.3.1 minipass: 3.3.6 - dev: true - /minipass-pipeline/1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - dev: true - /minipass-sized/1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass-sized/-/minipass-sized-1.0.3.tgz} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - dev: true - - /minipass/2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass/-/minipass-2.9.0.tgz} - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true - /minipass/3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass/-/minipass-3.3.6.tgz} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - dev: true - /minipass/4.0.3: - resolution: {integrity: sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minipass/-/minipass-4.0.3.tgz} - engines: {node: '>=8'} - dev: true + minipass@4.2.8: {} - /minizlib/1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minizlib/-/minizlib-1.3.3.tgz} - dependencies: - minipass: 2.9.0 - dev: true + minipass@5.0.0: {} - /minizlib/2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/minizlib/-/minizlib-2.1.2.tgz} - engines: {node: '>= 8'} + minipass@7.1.2: {} + + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true - /mkdirp-infer-owner/2.0.0: - resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - infer-owner: 1.0.4 - mkdirp: 1.0.4 - dev: true + mkdirp@1.0.4: {} - /mkdirp/0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mkdirp/-/mkdirp-0.5.6.tgz} - hasBin: true + mlly@1.7.4: dependencies: - minimist: 1.2.8 - dev: true - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mkdirp/-/mkdirp-1.0.4.tgz} - engines: {node: '>=10'} - hasBin: true - dev: true - - /modify-values/1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/modify-values/-/modify-values-1.0.1.tgz} - engines: {node: '>=0.10.0'} - dev: true + acorn: 8.14.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.5.4 - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ms/-/ms-2.1.2.tgz} + modify-values@1.0.1: {} - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ms/-/ms-2.1.3.tgz} - dev: true + ms@2.1.3: {} - /multimatch/5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/multimatch/-/multimatch-5.0.0.tgz} - engines: {node: '>=10'} + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.1.2 - dev: true + minimatch: 3.0.5 - /mute-stream/0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/mute-stream/-/mute-stream-0.0.8.tgz} - dev: true + mute-stream@0.0.8: {} - /natural-compare-lite/1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} - dev: true + mute-stream@1.0.0: {} - /natural-compare/1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/natural-compare/-/natural-compare-1.4.0.tgz} - dev: true + nanoid@3.3.8: {} - /negotiator/0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/negotiator/-/negotiator-0.6.3.tgz} - engines: {node: '>= 0.6'} - dev: true + natural-compare@1.4.0: {} - /neo-async/2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/neo-async/-/neo-async-2.6.2.tgz} - dev: true + natural-orderby@5.0.0: {} - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-fetch/-/node-fetch-2.6.7.tgz} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false + negotiator@0.6.4: {} - /node-fetch/2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-fetch/-/node-fetch-2.6.9.tgz} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + neo-async@2.6.2: {} + + node-fetch@2.6.7(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 - dev: true + optionalDependencies: + encoding: 0.1.13 - /node-gyp/5.1.1: - resolution: {integrity: sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-gyp/-/node-gyp-5.1.1.tgz} - engines: {node: '>= 6.0.0'} - hasBin: true + node-gyp@10.3.1: dependencies: env-paths: 2.2.1 - glob: 7.2.3 - graceful-fs: 4.2.10 - mkdirp: 0.5.6 - nopt: 4.0.3 - npmlog: 4.1.2 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.7.1 - tar: 4.4.19 - which: 1.3.1 - dev: true - - /node-gyp/7.1.2: - resolution: {integrity: sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-gyp/-/node-gyp-7.1.2.tgz} - engines: {node: '>= 10.12.0'} - hasBin: true - dependencies: - env-paths: 2.2.1 - glob: 7.2.3 - graceful-fs: 4.2.10 - nopt: 5.0.0 - npmlog: 4.1.2 - request: 2.88.2 - rimraf: 3.0.2 - semver: 7.3.8 - tar: 6.1.13 - which: 2.0.2 - dev: true - - /node-int64/0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-int64/-/node-int64-0.4.0.tgz} - dev: true - - /node-releases/2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/node-releases/-/node-releases-2.0.10.tgz} + exponential-backoff: 3.1.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + make-fetch-happen: 13.0.1 + nopt: 7.2.1 + proc-log: 4.2.0 + semver: 7.7.1 + tar: 6.2.1 + which: 4.0.0 + transitivePeerDependencies: + - supports-color - /nopt/4.0.3: - resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/nopt/-/nopt-4.0.3.tgz} - hasBin: true - dependencies: - abbrev: 1.1.1 - osenv: 0.1.5 - dev: true + node-machine-id@1.1.12: {} - /nopt/5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/nopt/-/nopt-5.0.0.tgz} - engines: {node: '>=6'} - hasBin: true + node-releases@2.0.19: {} + + nopt@7.2.1: dependencies: - abbrev: 1.1.1 - dev: true + abbrev: 2.0.0 - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 + resolve: 1.22.10 + semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data/3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.11.0 - semver: 7.3.8 + is-core-module: 2.16.1 + semver: 7.7.1 validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - /normalize-url/6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/normalize-url/-/normalize-url-6.1.0.tgz} - engines: {node: '>=10'} - dev: true - - /npm-bundled/1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-bundled/-/npm-bundled-1.1.2.tgz} + normalize-package-data@6.0.2: dependencies: - npm-normalize-package-bin: 1.0.1 - dev: true + hosted-git-info: 7.0.2 + semver: 7.7.1 + validate-npm-package-license: 3.0.4 - /npm-install-checks/4.0.0: - resolution: {integrity: sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz} - engines: {node: '>=10'} + npm-bundled@3.0.1: dependencies: - semver: 7.3.8 - dev: true + npm-normalize-package-bin: 3.0.1 - /npm-lifecycle/3.1.5: - resolution: {integrity: sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz} + npm-install-checks@6.3.0: dependencies: - byline: 5.0.0 - graceful-fs: 4.2.10 - node-gyp: 5.1.1 - resolve-from: 4.0.0 - slide: 1.1.6 - uid-number: 0.0.6 - umask: 1.1.0 - which: 1.3.1 - dev: true - - /npm-normalize-package-bin/1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz} - dev: true - - /npm-package-arg/8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - semver: 7.3.8 - validate-npm-package-name: 3.0.0 - dev: true + semver: 7.7.1 - /npm-packlist/2.2.2: - resolution: {integrity: sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-packlist/-/npm-packlist-2.2.2.tgz} - engines: {node: '>=10'} - hasBin: true + npm-normalize-package-bin@3.0.1: {} + + npm-package-arg@11.0.2: dependencies: - glob: 7.2.3 - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: true + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.7.1 + validate-npm-package-name: 5.0.1 - /npm-pick-manifest/6.1.1: - resolution: {integrity: sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz} + npm-packlist@8.0.2: dependencies: - npm-install-checks: 4.0.0 - npm-normalize-package-bin: 1.0.1 - npm-package-arg: 8.1.5 - semver: 7.3.8 - dev: true + ignore-walk: 6.0.5 - /npm-registry-fetch/11.0.0: - resolution: {integrity: sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz} - engines: {node: '>=10'} + npm-pick-manifest@9.1.0: dependencies: - make-fetch-happen: 9.1.0 - minipass: 3.3.6 - minipass-fetch: 1.4.1 - minipass-json-stream: 1.0.1 - minizlib: 2.1.2 - npm-package-arg: 8.1.5 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.2 + semver: 7.7.1 - /npm-registry-fetch/9.0.0: - resolution: {integrity: sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz} - engines: {node: '>=10'} + npm-registry-fetch@17.1.0: dependencies: - '@npmcli/ci-detect': 1.4.0 - lru-cache: 6.0.0 - make-fetch-happen: 8.0.14 - minipass: 3.3.6 - minipass-fetch: 1.4.1 - minipass-json-stream: 1.0.1 + '@npmcli/redact': 2.0.1 + jsonparse: 1.3.1 + make-fetch-happen: 13.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 minizlib: 2.1.2 - npm-package-arg: 8.1.5 + npm-package-arg: 11.0.2 + proc-log: 4.2.0 transitivePeerDependencies: - - bluebird - supports-color - dev: true - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npm-run-path/-/npm-run-path-4.0.1.tgz} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: true - /npm-run-path/5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 - dev: true - - /npmlog/4.1.2: - resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/npmlog/-/npmlog-4.1.2.tgz} - dependencies: - are-we-there-yet: 1.1.7 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - dev: true - /number-is-nan/1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/number-is-nan/-/number-is-nan-1.0.1.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /nwsapi/2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/nwsapi/-/nwsapi-2.2.2.tgz} - dev: true - - /oauth-sign/0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/oauth-sign/-/oauth-sign-0.9.0.tgz} - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/object-assign/-/object-assign-4.1.1.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /object-inspect/1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/object-keys/-/object-keys-1.1.1.tgz} - engines: {node: '>= 0.4'} - dev: true - - /object.assign/4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/object.assign/-/object.assign-4.1.4.tgz} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /object.getownpropertydescriptors/2.1.5: - resolution: {integrity: sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz} - engines: {node: '>= 0.8'} + nth-check@2.1.1: dependencies: - array.prototype.reduce: 1.0.5 - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - dev: true + boolbase: 1.0.0 - /object.values/1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/object.values/-/object.values-1.1.6.tgz} - engines: {node: '>= 0.4'} + nx@20.4.6: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - dev: true + '@napi-rs/wasm-runtime': 0.2.4 + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.2 + '@zkochan/js-yaml': 0.0.7 + axios: 1.8.1 + chalk: 4.1.0 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 8.0.1 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + enquirer: 2.3.6 + figures: 3.2.0 + flat: 5.0.2 + front-matter: 4.0.2 + ignore: 5.3.2 + jest-diff: 29.7.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.3 + minimatch: 9.0.3 + node-machine-id: 1.1.12 + npm-run-path: 4.0.1 + open: 8.4.2 + ora: 5.3.0 + resolve.exports: 2.0.3 + semver: 7.7.1 + string-width: 4.2.3 + tar-stream: 2.2.0 + tmp: 0.2.3 + tsconfig-paths: 4.2.0 + tslib: 2.8.1 + yaml: 2.7.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@nx/nx-darwin-arm64': 20.4.6 + '@nx/nx-darwin-x64': 20.4.6 + '@nx/nx-freebsd-x64': 20.4.6 + '@nx/nx-linux-arm-gnueabihf': 20.4.6 + '@nx/nx-linux-arm64-gnu': 20.4.6 + '@nx/nx-linux-arm64-musl': 20.4.6 + '@nx/nx-linux-x64-gnu': 20.4.6 + '@nx/nx-linux-x64-musl': 20.4.6 + '@nx/nx-win32-arm64-msvc': 20.4.6 + '@nx/nx-win32-x64-msvc': 20.4.6 + transitivePeerDependencies: + - debug - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/once/-/once-1.4.0.tgz} + once@1.4.0: dependencies: wrappy: 1.0.2 - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/onetime/-/onetime-5.1.2.tgz} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime/6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/optionator/-/optionator-0.8.3.tgz} - engines: {node: '>= 0.8.0'} + onetime@7.0.0: dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/optionator/-/optionator-0.9.1.tgz} - engines: {node: '>= 0.8.0'} + mimic-function: 5.0.1 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optionator@0.9.4: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true + word-wrap: 1.2.5 - /os-homedir/1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/os-homedir/-/os-homedir-1.0.2.tgz} - engines: {node: '>=0.10.0'} - dev: true - - /os-tmpdir/1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} - engines: {node: '>=0.10.0'} - dev: true + ora@5.3.0: + dependencies: + bl: 4.1.0 + chalk: 4.1.0 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + is-interactive: 1.0.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 - /osenv/0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/osenv/-/osenv-0.1.5.tgz} + ora@5.4.1: dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: true + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 - /p-finally/1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-finally/-/p-finally-1.0.0.tgz} - engines: {node: '>=4'} - dev: true + os-tmpdir@1.0.2: {} - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-limit/-/p-limit-1.3.0.tgz} - engines: {node: '>=4'} + p-finally@1.0.0: {} + + p-limit@1.3.0: dependencies: p-try: 1.0.0 - dev: true - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-limit/-/p-limit-2.3.0.tgz} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-limit/-/p-limit-3.1.0.tgz} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-locate/2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-locate/-/p-locate-2.0.0.tgz} - engines: {node: '>=4'} + p-locate@2.0.0: dependencies: p-limit: 1.3.0 - dev: true - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-locate/-/p-locate-4.1.0.tgz} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-locate/-/p-locate-5.0.0.tgz} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-map-series/2.1.0: - resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-map-series/-/p-map-series-2.1.0.tgz} - engines: {node: '>=8'} - dev: true + p-map-series@2.1.0: {} - /p-map/4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-map/-/p-map-4.0.0.tgz} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - /p-pipe/3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-pipe/-/p-pipe-3.1.0.tgz} - engines: {node: '>=8'} - dev: true + p-pipe@3.1.0: {} - /p-queue/6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-queue/-/p-queue-6.6.2.tgz} - engines: {node: '>=8'} + p-queue@6.6.2: dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - dev: true - /p-reduce/2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-reduce/-/p-reduce-2.1.0.tgz} - engines: {node: '>=8'} - dev: true + p-reduce@2.1.0: {} - /p-timeout/3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-timeout/-/p-timeout-3.2.0.tgz} - engines: {node: '>=8'} + p-timeout@3.2.0: dependencies: p-finally: 1.0.0 - dev: true - /p-try/1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-try/-/p-try-1.0.0.tgz} - engines: {node: '>=4'} - dev: true + p-try@1.0.0: {} - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-try/-/p-try-2.2.0.tgz} - engines: {node: '>=6'} - dev: true + p-try@2.2.0: {} - /p-waterfall/2.1.1: - resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/p-waterfall/-/p-waterfall-2.1.1.tgz} - engines: {node: '>=8'} + p-waterfall@2.1.1: dependencies: p-reduce: 2.1.0 - dev: true - /pacote/11.3.5: - resolution: {integrity: sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pacote/-/pacote-11.3.5.tgz} - engines: {node: '>=10'} - hasBin: true + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.11: dependencies: - '@npmcli/git': 2.1.0 - '@npmcli/installed-package-contents': 1.0.7 - '@npmcli/promise-spawn': 1.3.2 - '@npmcli/run-script': 1.8.6 - cacache: 15.3.0 - chownr: 2.0.0 - fs-minipass: 2.1.0 - infer-owner: 1.0.4 - minipass: 3.3.6 - mkdirp: 1.0.4 - npm-package-arg: 8.1.5 - npm-packlist: 2.2.2 - npm-pick-manifest: 6.1.1 - npm-registry-fetch: 11.0.0 + quansync: 0.2.8 + + pacote@18.0.6: + dependencies: + '@npmcli/git': 5.0.8 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/promise-spawn': 7.0.2 + '@npmcli/run-script': 8.1.0 + cacache: 18.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-pick-manifest: 9.1.0 + npm-registry-fetch: 17.1.0 + proc-log: 4.2.0 promise-retry: 2.0.1 - read-package-json-fast: 2.0.3 - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.1.13 + sigstore: 2.3.1 + ssri: 10.0.6 + tar: 6.2.1 transitivePeerDependencies: - bluebird - supports-color - dev: true - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parent-module/-/parent-module-1.0.1.tgz} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - dev: true - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parse-json/-/parse-json-4.0.0.tgz} - engines: {node: '>=4'} + parse-conflict-json@3.0.1: + dependencies: + json-parse-even-better-errors: 3.0.2 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + + parse-gitignore@2.0.0: {} + + parse-imports@2.2.1: + dependencies: + es-module-lexer: 1.6.0 + slashes: 3.0.12 + + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 - dev: true - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parse-json/-/parse-json-5.2.0.tgz} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-path/4.0.4: - resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parse-path/-/parse-path-4.0.4.tgz} + parse-json@8.1.0: dependencies: - is-ssh: 1.4.0 - protocols: 1.4.8 - qs: 6.11.0 - query-string: 6.14.1 - dev: true + '@babel/code-frame': 7.26.2 + index-to-position: 0.1.2 + type-fest: 4.36.0 - /parse-url/6.0.5: - resolution: {integrity: sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parse-url/-/parse-url-6.0.5.tgz} + parse-path@7.0.1: dependencies: - is-ssh: 1.4.0 - normalize-url: 6.1.0 - parse-path: 4.0.4 - protocols: 1.4.8 - dev: true + protocols: 2.0.2 - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/parse5/-/parse5-6.0.1.tgz} - dev: true + parse-url@8.1.0: + dependencies: + parse-path: 7.0.1 - /path-exists/3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-exists/-/path-exists-3.0.0.tgz} - engines: {node: '>=4'} - dev: true + path-exists@3.0.0: {} - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-exists/-/path-exists-4.0.0.tgz} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} - engines: {node: '>=0.10.0'} + path-key@3.1.1: {} - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-key/-/path-key-3.1.1.tgz} - engines: {node: '>=8'} + path-key@4.0.0: {} - /path-key/4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-parse@1.0.7: {} - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-parse/-/path-parse-1.0.7.tgz} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-type/-/path-type-3.0.0.tgz} - engines: {node: '>=4'} + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.2 + minipass: 7.1.2 + + path-type@3.0.0: dependencies: pify: 3.0.0 - dev: true - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/path-type/-/path-type-4.0.0.tgz} - engines: {node: '>=8'} + path-type@4.0.0: {} - /performance-now/2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/performance-now/-/performance-now-2.1.0.tgz} - dev: true + pathe@2.0.3: {} - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/picocolors/-/picocolors-1.0.0.tgz} + picocolors@1.1.1: {} - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/picomatch/-/picomatch-2.3.1.tgz} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pidtree/0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + picomatch@4.0.2: {} - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pify/-/pify-2.3.0.tgz} - engines: {node: '>=0.10.0'} - dev: true + pidtree@0.6.0: {} - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pify/-/pify-3.0.0.tgz} - engines: {node: '>=4'} - dev: true + pify@2.3.0: {} - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pify/-/pify-4.0.1.tgz} - engines: {node: '>=6'} - dev: true + pify@3.0.0: {} - /pify/5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pify/-/pify-5.0.0.tgz} - engines: {node: '>=10'} - dev: true + pify@4.0.1: {} - /pirates/4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pirates/-/pirates-4.0.5.tgz} - engines: {node: '>= 6'} + pify@5.0.0: {} - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pkg-dir/-/pkg-dir-4.2.0.tgz} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - dev: true - - /prelude-ls/1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/prelude-ls/-/prelude-ls-1.1.2.tgz} - engines: {node: '>= 0.8.0'} - dev: true - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/prelude-ls/-/prelude-ls-1.2.1.tgz} - engines: {node: '>= 0.8.0'} - dev: true - /prettier-linter-helpers/1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} - engines: {node: '>=6.0.0'} + pkg-types@1.3.1: dependencies: - fast-diff: 1.2.0 - dev: true - - /prettier/2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/prettier/-/prettier-2.8.4.tgz} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 - /pretty-format/25.5.0: - resolution: {integrity: sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pretty-format/-/pretty-format-25.5.0.tgz} - engines: {node: '>= 8.3'} + pkg-types@2.1.0: dependencies: - '@jest/types': 25.5.0 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 16.13.1 - dev: true + confbox: 0.2.1 + exsolve: 1.0.1 + pathe: 2.0.3 - /pretty-format/27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pretty-format/-/pretty-format-27.5.1.tgz} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true + pluralize@8.0.0: {} - /pretty-format/29.4.3: - resolution: {integrity: sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pretty-format/-/pretty-format-29.4.3.tgz} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + postcss-selector-parser@6.1.2: dependencies: - '@jest/schemas': 29.4.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - - /private/0.1.8: - resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/private/-/private-0.1.8.tgz} - engines: {node: '>= 0.6'} - dev: false - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} - dev: true - - /promise-inflight/1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/promise-inflight/-/promise-inflight-1.0.1.tgz} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dev: true + cssesc: 3.0.0 + util-deprecate: 1.0.2 - /promise-retry/2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/promise-retry/-/promise-retry-2.0.1.tgz} - engines: {node: '>=10'} + postcss@8.5.3: dependencies: - err-code: 2.0.3 - retry: 0.12.0 - dev: true + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/prompts/-/prompts-2.4.2.tgz} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true + prelude-ls@1.2.1: {} - /promzard/0.3.0: - resolution: {integrity: sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/promzard/-/promzard-0.3.0.tgz} - dependencies: - read: 1.0.7 - dev: true + prettier@3.5.3: {} - /proto-list/1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/proto-list/-/proto-list-1.2.4.tgz} - dev: true + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 - /protocols/1.4.8: - resolution: {integrity: sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/protocols/-/protocols-1.4.8.tgz} - dev: true + proc-log@4.2.0: {} - /protocols/2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/protocols/-/protocols-2.0.1.tgz} - dev: true + process-nextick-args@2.0.1: {} - /psl/1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/psl/-/psl-1.9.0.tgz} - dev: true + proggy@2.0.0: {} - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/pump/-/pump-3.0.0.tgz} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false + promise-all-reject-late@1.0.1: {} - /punycode/2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/punycode/-/punycode-2.3.0.tgz} - engines: {node: '>=6'} - dev: true + promise-call-limit@3.0.2: {} - /q/1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/q/-/q-1.5.1.tgz} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true + promise-inflight@1.0.1: {} - /qs/6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/qs/-/qs-6.11.0.tgz} - engines: {node: '>=0.6'} + promise-retry@2.0.1: dependencies: - side-channel: 1.0.4 - dev: true - - /qs/6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/qs/-/qs-6.5.3.tgz} - engines: {node: '>=0.6'} - dev: true + err-code: 2.0.3 + retry: 0.12.0 - /query-string/6.14.1: - resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/query-string/-/query-string-6.14.1.tgz} - engines: {node: '>=6'} + promzard@1.0.2: dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - - /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/querystringify/-/querystringify-2.2.0.tgz} - dev: true - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + read: 3.0.1 - /quick-lru/4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/quick-lru/-/quick-lru-4.0.1.tgz} - engines: {node: '>=8'} - dev: true + protocols@2.0.2: {} - /react-is/16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/react-is/-/react-is-16.13.1.tgz} - dev: true + proxy-from-env@1.1.0: {} - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/react-is/-/react-is-17.0.2.tgz} - dev: true + punycode@2.3.1: {} - /react-is/18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/react-is/-/react-is-18.2.0.tgz} - dev: true + quansync@0.2.8: {} - /read-cmd-shim/2.0.0: - resolution: {integrity: sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz} - dev: true + queue-microtask@1.2.3: {} - /read-package-json-fast/2.0.3: - resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz} - engines: {node: '>=10'} - dependencies: - json-parse-even-better-errors: 2.3.1 - npm-normalize-package-bin: 1.0.1 - dev: true + quick-lru@4.0.1: {} - /read-package-json/2.1.2: - resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-package-json/-/read-package-json-2.1.2.tgz} - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 - dev: true + react-is@18.3.1: {} - /read-package-json/3.0.1: - resolution: {integrity: sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-package-json/-/read-package-json-3.0.1.tgz} - engines: {node: '>=10'} - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 3.0.3 - npm-normalize-package-bin: 1.0.1 - dev: true + read-cmd-shim@4.0.0: {} - /read-package-json/4.1.2: - resolution: {integrity: sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-package-json/-/read-package-json-4.1.2.tgz} - engines: {node: '>=10'} + read-package-json-fast@3.0.2: dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 3.0.3 - npm-normalize-package-bin: 1.0.1 - dev: true + json-parse-even-better-errors: 3.0.2 + npm-normalize-package-bin: 3.0.1 - /read-package-tree/5.3.1: - resolution: {integrity: sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-package-tree/-/read-package-tree-5.3.1.tgz} - deprecated: The functionality that this package provided is now in @npmcli/arborist + read-package-up@11.0.0: dependencies: - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - util-promisify: 2.1.0 - dev: true + find-up-simple: 1.0.1 + read-pkg: 9.0.1 + type-fest: 4.36.0 - /read-pkg-up/3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz} - engines: {node: '>=4'} + read-pkg-up@3.0.0: dependencies: find-up: 2.1.0 read-pkg: 3.0.0 - dev: true - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-pkg/-/read-pkg-3.0.0.tgz} - engines: {node: '>=4'} + read-pkg@3.0.0: dependencies: load-json-file: 4.0.0 normalize-package-data: 2.5.0 path-type: 3.0.0 - dev: true - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read-pkg/-/read-pkg-5.2.0.tgz} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read/1.0.7: - resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/read/-/read-1.0.7.tgz} - engines: {node: '>=0.8'} + read-pkg@9.0.1: dependencies: - mute-stream: 0.0.8 - dev: true + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.1.0 + type-fest: 4.36.0 + unicorn-magic: 0.1.0 - /readable-stream/2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/readable-stream/-/readable-stream-2.3.7.tgz} + read@3.0.1: + dependencies: + mute-stream: 1.0.0 + + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -7984,1412 +7619,595 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream/3.6.0: - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/readable-stream/-/readable-stream-3.6.0.tgz} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - - /readdir-scoped-modules/1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.10 - once: 1.4.0 - dev: true - /recast/0.19.1: - resolution: {integrity: sha512-8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/recast/-/recast-0.19.1.tgz} - engines: {node: '>= 4'} + recast@0.23.11: dependencies: - ast-types: 0.13.3 + ast-types: 0.16.1 esprima: 4.0.1 - private: 0.1.8 source-map: 0.6.1 - dev: false + tiny-invariant: 1.3.3 + tslib: 2.8.1 - /redent/3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/redent/-/redent-3.0.0.tgz} - engines: {node: '>=8'} + redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true - - /regenerate-unicode-properties/10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: false - - /regenerate/1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regenerate/-/regenerate-1.4.2.tgz} - dev: false - /regenerator-runtime/0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} - dev: false - - /regenerator-transform/0.15.1: - resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz} - dependencies: - '@babel/runtime': 7.20.13 - dev: false - - /regexp.prototype.flags/1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz} - engines: {node: '>= 0.4'} + refa@0.12.1: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - dev: true + '@eslint-community/regexpp': 4.12.1 - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regexpp/-/regexpp-3.2.0.tgz} - engines: {node: '>=8'} - dev: true - - /regexpu-core/5.3.1: - resolution: {integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regexpu-core/-/regexpu-core-5.3.1.tgz} - engines: {node: '>=4'} + regexp-ast-analysis@0.7.1: dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.0 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: false + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 - /regjsparser/0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/regjsparser/-/regjsparser-0.9.1.tgz} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: false + regexp-tree@0.1.27: {} - /request/2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/request/-/request-2.88.2.tgz} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + regjsparser@0.12.0: dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/require-directory/-/require-directory-2.1.1.tgz} - engines: {node: '>=0.10.0'} - dev: true + jsesc: 3.0.2 - /requires-port/1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/requires-port/-/requires-port-1.0.0.tgz} - dev: true + require-directory@2.1.1: {} - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz} - engines: {node: '>=8'} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 - dev: true - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve-from/-/resolve-from-4.0.0.tgz} - engines: {node: '>=4'} - dev: true + resolve-from@4.0.0: {} - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve-from/-/resolve-from-5.0.0.tgz} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-global/1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve-global/-/resolve-global-1.0.0.tgz} - engines: {node: '>=8'} - dependencies: - global-dirs: 0.1.1 - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve.exports/1.1.1: - resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve.exports/-/resolve.exports-1.1.1.tgz} - engines: {node: '>=10'} - dev: true + resolve.exports@2.0.3: {} - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/resolve/-/resolve-1.22.1.tgz} - hasBin: true + resolve@1.22.10: dependencies: - is-core-module: 2.11.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/restore-cursor/-/restore-cursor-3.1.0.tgz} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /retry/0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/retry/-/retry-0.12.0.tgz} - engines: {node: '>= 4'} - dev: true - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/reusify/-/reusify-1.0.4.tgz} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /rfdc/1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true - - /rimraf/2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/rimraf/-/rimraf-2.7.1.tgz} - hasBin: true + restore-cursor@5.1.0: dependencies: - glob: 7.2.3 - dev: true + onetime: 7.0.0 + signal-exit: 4.1.0 - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/rimraf/-/rimraf-3.0.2.tgz} - hasBin: true - dependencies: - glob: 7.2.3 + retry@0.12.0: {} - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/run-async/-/run-async-2.4.1.tgz} - engines: {node: '>=0.12.0'} - dev: true + reusify@1.1.0: {} - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/run-parallel/-/run-parallel-1.2.0.tgz} - dependencies: - queue-microtask: 1.2.3 + rfdc@1.4.1: {} - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/rxjs/-/rxjs-6.6.7.tgz} - engines: {npm: '>=2.0.0'} + rimraf@4.4.1: dependencies: - tslib: 1.14.1 - dev: true + glob: 9.3.5 - /rxjs/7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + rimraf@6.0.1: dependencies: - tslib: 2.5.0 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/safe-buffer/-/safe-buffer-5.1.2.tgz} - dev: true + glob: 11.0.1 + package-json-from-dist: 1.0.1 - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/safe-buffer/-/safe-buffer-5.2.1.tgz} - dev: true + run-async@2.4.1: {} - /safe-regex-test/1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + run-parallel@1.2.0: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-regex: 1.1.4 - dev: true - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/safer-buffer/-/safer-buffer-2.1.2.tgz} - dev: true + queue-microtask: 1.2.3 - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/saxes/-/saxes-5.0.1.tgz} - engines: {node: '>=10'} + rxjs@7.8.2: dependencies: - xmlchars: 2.2.0 - dev: true + tslib: 2.8.1 - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/semver/-/semver-5.7.1.tgz} - hasBin: true - dev: true + safe-buffer@5.1.2: {} - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/semver/-/semver-6.3.0.tgz} - hasBin: true + safe-buffer@5.2.1: {} - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/semver/-/semver-7.3.5.tgz} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true + safer-buffer@2.1.2: {} - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/semver/-/semver-7.3.8.tgz} - engines: {node: '>=10'} - hasBin: true + scslre@0.3.0: dependencies: - lru-cache: 6.0.0 - dev: true + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 - /set-blocking/2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/set-blocking/-/set-blocking-2.0.0.tgz} - dev: true + semver@5.7.2: {} - /shallow-clone/3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/shallow-clone/-/shallow-clone-3.0.1.tgz} - engines: {node: '>=8'} + semver@6.3.1: {} + + semver@7.7.1: {} + + set-blocking@2.0.0: {} + + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - dev: true - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/shebang-command/-/shebang-command-2.0.0.tgz} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/shebang-regex/-/shebang-regex-3.0.0.tgz} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /side-channel/1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/side-channel/-/side-channel-1.0.4.tgz} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - object-inspect: 1.12.3 - dev: true + signal-exit@3.0.7: {} - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/signal-exit/-/signal-exit-3.0.7.tgz} - dev: true + signal-exit@4.1.0: {} - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sisteransi/-/sisteransi-1.0.5.tgz} - dev: true + sigstore@2.3.1: + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/sign': 2.3.2 + '@sigstore/tuf': 2.3.4 + '@sigstore/verify': 1.2.1 + transitivePeerDependencies: + - supports-color - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/slash/-/slash-3.0.0.tgz} - engines: {node: '>=8'} + sisteransi@1.0.5: {} - /slice-ansi/3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true + slash@3.0.0: {} - /slice-ansi/4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true + slashes@3.0.12: {} - /slice-ansi/5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - - /slide/1.1.6: - resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/slide/-/slide-1.1.6.tgz} - dev: true - - /smart-buffer/4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/smart-buffer/-/smart-buffer-4.2.0.tgz} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true - /socks-proxy-agent/5.0.1: - resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz} - engines: {node: '>= 6'} + slice-ansi@7.1.0: dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 - transitivePeerDependencies: - - supports-color - dev: true + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 - /socks-proxy-agent/6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz} - engines: {node: '>= 10'} + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 + agent-base: 7.1.3 + debug: 4.4.0 + socks: 2.8.4 transitivePeerDependencies: - supports-color - dev: true - /socks/2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/socks/-/socks-2.7.1.tgz} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.8.4: dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 - dev: true - /sort-keys/2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sort-keys/-/sort-keys-2.0.0.tgz} - engines: {node: '>=4'} + sort-keys@2.0.0: dependencies: is-plain-obj: 1.1.0 - dev: true - - /sort-keys/4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sort-keys/-/sort-keys-4.2.0.tgz} - engines: {node: '>=8'} - dependencies: - is-plain-obj: 2.1.0 - dev: true - /sort-object-keys/1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz} - dev: true + source-map-js@1.2.1: {} - /sort-package-json/1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sort-package-json/-/sort-package-json-1.57.0.tgz} - hasBin: true - dependencies: - detect-indent: 6.1.0 - detect-newline: 3.1.0 - git-hooks-list: 1.0.3 - globby: 10.0.0 - is-plain-obj: 2.1.0 - sort-object-keys: 1.1.3 - dev: true + source-map@0.6.1: {} - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/source-map-support/-/source-map-support-0.5.21.tgz} + spdx-correct@3.2.0: dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/source-map/-/source-map-0.6.1.tgz} - engines: {node: '>=0.10.0'} + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/source-map/-/source-map-0.7.4.tgz} - engines: {node: '>= 8'} - dev: true + spdx-exceptions@2.5.0: {} - /spdx-correct/3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/spdx-correct/-/spdx-correct-3.1.1.tgz} + spdx-expression-parse@3.0.1: dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.12 - dev: true - - /spdx-exceptions/2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} - dev: true + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + spdx-expression-parse@4.0.0: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 - dev: true + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 - /spdx-license-ids/3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz} - dev: true + spdx-license-ids@3.0.21: {} - /split-on-first/1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/split-on-first/-/split-on-first-1.1.0.tgz} - engines: {node: '>=6'} - dev: true + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/split/-/split-1.0.1.tgz} + split@1.0.1: dependencies: through: 2.3.8 - dev: true - /split2/3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/split2/-/split2-3.2.2.tgz} - dependencies: - readable-stream: 3.6.0 - dev: true + sprintf-js@1.0.3: {} - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sprintf-js/-/sprintf-js-1.0.3.tgz} - dev: true + sprintf-js@1.1.3: {} - /sshpk/1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/sshpk/-/sshpk-1.17.0.tgz} - engines: {node: '>=0.10.0'} - hasBin: true + ssri@10.0.6: dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: true + minipass: 7.1.2 - /ssri/8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ssri/-/ssri-8.0.1.tgz} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true + stable-hash@0.0.4: {} - /stack-utils/2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/stack-utils/-/stack-utils-2.0.6.tgz} - engines: {node: '>=10'} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - dev: true - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz} - engines: {node: '>=4'} - dev: true - /string-argv/0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} - engines: {node: '>=0.6.19'} - dev: true - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string-length/-/string-length-4.0.2.tgz} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width/1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string-width/-/string-width-1.0.2.tgz} - engines: {node: '>=0.10.0'} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - dev: true + string-argv@0.3.2: {} - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string-width/-/string-width-4.2.3.tgz} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width/5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 - dev: true - - /string.prototype.trimend/1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - dev: true + strip-ansi: 7.1.0 - /string.prototype.trimstart/1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz} + string-width@7.2.0: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - dev: true + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string_decoder/-/string_decoder-1.1.1.tgz} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/string_decoder/-/string_decoder-1.3.0.tgz} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - - /strip-ansi/3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-ansi/-/strip-ansi-3.0.1.tgz} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: true - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-ansi/-/strip-ansi-6.0.1.tgz} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi/7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 - dev: true + ansi-regex: 6.1.0 - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-bom/-/strip-bom-3.0.0.tgz} - engines: {node: '>=4'} - dev: true + strip-bom@3.0.0: {} - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-bom/-/strip-bom-4.0.0.tgz} - engines: {node: '>=8'} - dev: true + strip-bom@4.0.0: {} - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline/3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-indent/-/strip-indent-3.0.0.tgz} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} - engines: {node: '>=8'} - dev: true + strip-indent@4.0.0: + dependencies: + min-indent: 1.0.1 - /strong-log-transformer/2.1.0: - resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz} - engines: {node: '>=4'} - hasBin: true + strip-json-comments@3.1.1: {} + + strong-log-transformer@2.1.0: dependencies: duplexer: 0.1.2 minimist: 1.2.8 through: 2.3.8 - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/supports-color/-/supports-color-5.5.0.tgz} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/supports-color/-/supports-color-7.2.0.tgz} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/supports-color/-/supports-color-8.1.1.tgz} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /supports-hyperlinks/2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} - engines: {node: '>=8'} + synckit@0.6.2: dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true + tslib: 2.8.1 - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} - engines: {node: '>= 0.4'} + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.8.1 - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/symbol-tree/-/symbol-tree-3.2.4.tgz} - dev: true + tapable@2.2.1: {} - /tar/4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tar/-/tar-4.4.19.tgz} - engines: {node: '>=4.5'} + tar-stream@2.2.0: dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.6 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: true + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 - /tar/6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tar/-/tar-6.1.13.tgz} - engines: {node: '>=10'} + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 - minipass: 4.0.3 + minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true - - /temp-dir/1.0.0: - resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/temp-dir/-/temp-dir-1.0.0.tgz} - engines: {node: '>=4'} - dev: true - - /temp-dir/2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/temp-dir/-/temp-dir-2.0.0.tgz} - engines: {node: '>=8'} - dev: true - - /temp-write/4.0.0: - resolution: {integrity: sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/temp-write/-/temp-write-4.0.0.tgz} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.10 - is-stream: 2.0.1 - make-dir: 3.1.0 - temp-dir: 1.0.0 - uuid: 3.4.0 - dev: true - /tempy/1.0.1: - resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tempy/-/tempy-1.0.1.tgz} - engines: {node: '>=10'} - dependencies: - del: 6.1.1 - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 - dev: true + temp-dir@1.0.0: {} - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/terminal-link/-/terminal-link-2.1.1.tgz} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 - dev: true + text-extensions@1.9.0: {} - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/test-exclude/-/test-exclude-6.0.0.tgz} - engines: {node: '>=8'} + through2@2.0.5: dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - dev: true - - /text-extensions/1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/text-extensions/-/text-extensions-1.9.0.tgz} - engines: {node: '>=0.10'} - dev: true + readable-stream: 2.3.8 + xtend: 4.0.2 - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/text-table/-/text-table-0.2.0.tgz} - dev: true + through@2.3.8: {} - /throat/6.0.2: - resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/throat/-/throat-6.0.2.tgz} - dev: true + tiny-invariant@1.3.3: {} - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true + tinyexec@0.3.2: {} - /through2/2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/through2/-/through2-2.0.5.tgz} + tmp@0.0.33: dependencies: - readable-stream: 2.3.7 - xtend: 4.0.2 - dev: true + os-tmpdir: 1.0.2 - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/through2/-/through2-4.0.2.tgz} - dependencies: - readable-stream: 3.6.0 - dev: true + tmp@0.2.3: {} - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tmp/-/tmp-0.0.33.tgz} - engines: {node: '>=0.6.0'} + to-regex-range@5.0.1: dependencies: - os-tmpdir: 1.0.2 - dev: true + is-number: 7.0.0 - /tmp/0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tmp/-/tmp-0.2.1.tgz} - engines: {node: '>=8.17.0'} + toml-eslint-parser@0.10.0: dependencies: - rimraf: 3.0.2 - dev: false + eslint-visitor-keys: 3.4.3 - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tmpl/-/tmpl-1.0.5.tgz} - dev: true + tr46@0.0.3: {} - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} - engines: {node: '>=4'} + treeverse@3.0.0: {} - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/to-regex-range/-/to-regex-range-5.0.1.tgz} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 + trim-newlines@3.0.1: {} - /tough-cookie/2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tough-cookie/-/tough-cookie-2.5.0.tgz} - engines: {node: '>=0.8'} + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - psl: 1.9.0 - punycode: 2.3.0 - dev: true + typescript: 5.8.2 - /tough-cookie/4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tough-cookie/-/tough-cookie-4.1.2.tgz} - engines: {node: '>=6'} + ts-declaration-location@1.0.5(typescript@5.8.2): dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: true + minimatch: 10.0.1 + typescript: 5.8.2 - /tr46/0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tr46/-/tr46-0.0.3.tgz} - - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tr46/-/tr46-2.1.0.tgz} - engines: {node: '>=8'} + tsconfig-paths@4.2.0: dependencies: - punycode: 2.3.0 - dev: true - - /trim-newlines/3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/trim-newlines/-/trim-newlines-3.0.1.tgz} - engines: {node: '>=8'} - dev: true - - /ts-node/9.1.1_typescript@4.9.5: - resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ts-node/-/ts-node-9.1.1.tgz} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' - dependencies: - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - source-map-support: 0.5.21 - typescript: 4.9.5 - yn: 3.1.1 - dev: true - - /tsconfig-paths/3.14.1: - resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 + json5: 2.2.3 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tslib/-/tslib-1.14.1.tgz} - dev: true - - /tslib/2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tslib/-/tslib-2.4.0.tgz} - /tslib/2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tslib/-/tslib-2.5.0.tgz} - dev: true + tslib@2.8.1: {} - /tsutils/3.21.0_typescript@4.9.5: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tsutils/-/tsutils-3.21.0.tgz} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - - /tunnel-agent/0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /tweetnacl/0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/tweetnacl/-/tweetnacl-0.14.5.tgz} - dev: true - - /type-check/0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-check/-/type-check-0.3.2.tgz} - engines: {node: '>= 0.8.0'} + tuf-js@2.2.1: dependencies: - prelude-ls: 1.1.2 - dev: true + '@tufjs/models': 2.0.1 + debug: 4.4.0 + make-fetch-happen: 13.0.1 + transitivePeerDependencies: + - supports-color - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-check/-/type-check-0.4.0.tgz} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-detect/-/type-detect-4.0.8.tgz} - engines: {node: '>=4'} - dev: true - - /type-fest/0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.16.0.tgz} - engines: {node: '>=10'} - dev: true - /type-fest/0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.18.1.tgz} - engines: {node: '>=10'} - dev: true + type-fest@0.18.1: {} - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.20.2.tgz} - engines: {node: '>=10'} - dev: true + type-fest@0.20.2: {} - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.21.3.tgz} - engines: {node: '>=10'} - dev: true + type-fest@0.21.3: {} - /type-fest/0.4.1: - resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.4.1.tgz} - engines: {node: '>=6'} - dev: true + type-fest@0.4.1: {} - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.6.0.tgz} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/type-fest/-/type-fest-0.8.1.tgz} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /typed-array-length/1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/typed-array-length/-/typed-array-length-1.0.4.tgz} - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.10 - dev: true + type-fest@4.36.0: {} - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz} - dependencies: - is-typedarray: 1.0.0 - dev: true + typedarray@0.0.6: {} - /typedarray/0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/typedarray/-/typedarray-0.0.6.tgz} - dev: true + typescript@5.8.2: {} - /typescript/4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/typescript/-/typescript-4.9.5.tgz} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true + ufo@1.5.4: {} - /uglify-js/3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + uglify-js@3.19.3: optional: true - /uid-number/0.0.6: - resolution: {integrity: sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/uid-number/-/uid-number-0.0.6.tgz} - dev: true - - /umask/1.1.0: - resolution: {integrity: sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/umask/-/umask-1.1.0.tgz} - dev: true - - /unbox-primitive/1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - - /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz} - engines: {node: '>=4'} - dev: false - - /unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: false - - /unicode-match-property-value-ecmascript/2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz} - engines: {node: '>=4'} - dev: false + undici-types@6.20.0: {} - /unicode-property-aliases-ecmascript/2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz} - engines: {node: '>=4'} - dev: false + unicorn-magic@0.1.0: {} - /unique-filename/1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unique-filename/-/unique-filename-1.1.1.tgz} + unique-filename@3.0.0: dependencies: - unique-slug: 2.0.2 - dev: true + unique-slug: 4.0.0 - /unique-slug/2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unique-slug/-/unique-slug-2.0.2.tgz} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - dev: true - /unique-string/2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/unique-string/-/unique-string-2.0.0.tgz} - engines: {node: '>=8'} + unist-util-is@6.0.0: dependencies: - crypto-random-string: 2.0.0 - dev: true - - /universal-user-agent/6.0.0: - resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz} - dev: true + '@types/unist': 3.0.3 - /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/universalify/-/universalify-0.2.0.tgz} - engines: {node: '>= 4.0.0'} - dev: true - - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/universalify/-/universalify-2.0.0.tgz} - engines: {node: '>= 10.0.0'} - dev: true - - /upath/2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/upath/-/upath-2.0.1.tgz} - engines: {node: '>=4'} - dev: true - - /update-browserslist-db/1.0.10_browserslist@4.21.5: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + unist-util-stringify-position@4.0.0: dependencies: - browserslist: 4.21.5 - escalade: 3.1.1 - picocolors: 1.0.0 + '@types/unist': 3.0.3 - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/uri-js/-/uri-js-4.4.1.tgz} + unist-util-visit-parents@6.0.1: dependencies: - punycode: 2.3.0 - dev: true + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 - /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/url-parse/-/url-parse-1.5.10.tgz} + unist-util-visit@5.0.0: dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: true + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/util-deprecate/-/util-deprecate-1.0.2.tgz} - dev: true + universal-user-agent@6.0.1: {} - /util-promisify/2.1.0: - resolution: {integrity: sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/util-promisify/-/util-promisify-2.1.0.tgz} - dependencies: - object.getownpropertydescriptors: 2.1.5 - dev: true - - /uuid/3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/uuid/-/uuid-3.4.0.tgz} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true + universalify@2.0.1: {} - /v8-to-istanbul/8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 - source-map: 0.7.4 - dev: true + upath@2.0.1: {} - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - dev: true + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 - /validate-npm-package-name/3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz} + uri-js@4.4.1: dependencies: - builtins: 1.0.3 - dev: true + punycode: 2.3.1 - /verror/1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/verror/-/verror-1.10.0.tgz} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: true + util-deprecate@1.0.2: {} - /w3c-hr-time/1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz} - deprecated: Use your platform's native performance.now() and performance.timeOrigin. - dependencies: - browser-process-hrtime: 1.0.0 - dev: true + uuid@10.0.0: {} - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz} - engines: {node: '>=10'} + validate-npm-package-license@3.0.4: dependencies: - xml-name-validator: 3.0.0 - dev: true + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/walker/-/walker-1.0.8.tgz} - dependencies: - makeerror: 1.0.12 - dev: true + validate-npm-package-name@5.0.1: {} - /wcwidth/1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/wcwidth/-/wcwidth-1.0.1.tgz} + vue-eslint-parser@9.4.3(eslint@9.21.0(jiti@1.21.6)): dependencies: - defaults: 1.0.4 - dev: true - - /webidl-conversions/3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz} - - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz} - engines: {node: '>=8'} - dev: true + debug: 4.4.0 + eslint: 9.21.0(jiti@1.21.6) + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz} - engines: {node: '>=10.4'} - dev: true + walk-up-path@3.0.1: {} - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz} + wcwidth@1.0.1: dependencies: - iconv-lite: 0.4.24 - dev: true + defaults: 1.0.4 - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz} - dev: true + webidl-conversions@3.0.1: {} - /whatwg-url/5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/whatwg-url/-/whatwg-url-5.0.0.tgz} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/whatwg-url/-/whatwg-url-8.7.0.tgz} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which-boxed-primitive/1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which-typed-array/1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/which-typed-array/-/which-typed-array-1.1.9.tgz} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - dev: true - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/which/-/which-1.3.1.tgz} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/which/-/which-2.0.2.tgz} - engines: {node: '>= 8'} - hasBin: true + which@4.0.0: dependencies: - isexe: 2.0.0 + isexe: 3.1.1 - /wide-align/1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/wide-align/-/wide-align-1.1.5.tgz} + wide-align@1.1.5: dependencies: - string-width: 1.0.2 - dev: true + string-width: 4.2.3 - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/word-wrap/-/word-wrap-1.2.3.tgz} - engines: {node: '>=0.10.0'} - dev: true + word-wrap@1.2.5: {} - /wordwrap/1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/wordwrap/-/wordwrap-1.0.0.tgz} - dev: true + wordwrap@1.0.0: {} - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/wrappy/-/wrappy-1.0.2.tgz} + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} - /write-file-atomic/2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz} + write-file-atomic@2.4.3: dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 imurmurhash: 0.1.4 signal-exit: 3.0.7 - dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true + signal-exit: 4.1.0 - /write-json-file/3.2.0: - resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/write-json-file/-/write-json-file-3.2.0.tgz} - engines: {node: '>=6'} + write-json-file@3.2.0: dependencies: detect-indent: 5.0.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 make-dir: 2.1.0 pify: 4.0.1 sort-keys: 2.0.0 write-file-atomic: 2.4.3 - dev: true - - /write-json-file/4.3.0: - resolution: {integrity: sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/write-json-file/-/write-json-file-4.3.0.tgz} - engines: {node: '>=8.3'} - dependencies: - detect-indent: 6.1.0 - graceful-fs: 4.2.10 - is-plain-obj: 2.1.0 - make-dir: 3.1.0 - sort-keys: 4.2.0 - write-file-atomic: 3.0.3 - dev: true - - /write-pkg/4.0.0: - resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/write-pkg/-/write-pkg-4.0.0.tgz} - engines: {node: '>=8'} + + write-pkg@4.0.0: dependencies: sort-keys: 2.0.0 type-fest: 0.4.1 write-json-file: 3.2.0 - dev: true - - /ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/ws/-/ws-7.5.9.tgz} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz} - dev: true - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/xmlchars/-/xmlchars-2.2.0.tgz} - dev: true - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/xtend/-/xtend-4.0.2.tgz} - engines: {node: '>=0.4'} - dev: true + xml-name-validator@4.0.0: {} - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/y18n/-/y18n-5.0.8.tgz} - engines: {node: '>=10'} - dev: true + xtend@4.0.2: {} - /yallist/3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yallist/-/yallist-3.1.1.tgz} + y18n@5.0.8: {} - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yallist/-/yallist-4.0.0.tgz} - dev: true + yallist@3.1.1: {} - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yaml/-/yaml-1.10.2.tgz} - engines: {node: '>= 6'} - dev: true + yallist@4.0.0: {} - /yaml/2.2.1: - resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} - engines: {node: '>= 14'} - dev: true + yaml-eslint-parser@1.3.0: + dependencies: + eslint-visitor-keys: 3.4.3 + yaml: 2.7.0 - /yargs-parser/20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yargs-parser/-/yargs-parser-20.2.4.tgz} - engines: {node: '>=10'} - dev: true + yaml@2.7.0: {} - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yargs-parser/-/yargs-parser-20.2.9.tgz} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser/21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yargs-parser/-/yargs-parser-21.1.1.tgz} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yargs/-/yargs-16.2.0.tgz} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs/17.7.0: - resolution: {integrity: sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yargs/-/yargs-17.7.0.tgz} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yn/-/yn-3.1.1.tgz} - engines: {node: '>=6'} - dev: true + yocto-queue@0.1.0: {} - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.npmjs.com/, tarball: https://registry.npmjs.com/yocto-queue/-/yocto-queue-0.1.0.tgz} - engines: {node: '>=10'} + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 975bcae0..a084e41d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,2 @@ packages: - - './packages/*' \ No newline at end of file + - './packages/*' diff --git a/tsconfig.json b/tsconfig.json index 3c4d9358..f2d080ef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,20 @@ { "compilerOptions": { - "module": "commonjs", - "target": "es2015", - "lib": ["es2015", "es2016"], - "noImplicitAny": false, - "sourceMap": true, + "composite": true, + "target": "esnext", + "lib": [ + "esnext" + ], + "module": "esnext", + "moduleResolution": "bundler", + "allowJs": true, "strict": true, - "declaration": true + "downlevelIteration": true, + "noEmit": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "verbatimModuleSyntax": true, + "skipLibCheck": true } }