From 58fb571c90613d8ef3b94a9f6938ff9bfc31366e Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Thu, 12 Jun 2025 16:30:42 -0400 Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=8E=89=20Initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 23 - .env | 0 .github/CODEOWNERS | 3 +- .github/FUNDING.yaml | 5 - .github/copilot-instructions.md | 16 - .github/workflows/docker.yaml | 60 -- .github/workflows/pnpm-publish.yaml | 6 +- .vscode/extensions.json | 1 - CHANGELOG.md | 14 +- CODE_OF_CONDUCT.md | 2 +- Dockerfile | 18 - LICENSE.txt | 224 +++++- README.md | 52 +- package.json | 81 +- pnpm-lock.yaml | 1150 ++++++++++++++++++++------- pnpm-workspace.yaml | 31 + src/index.test.ts | 6 - src/index.ts | 18 +- src/lang.test.ts | 41 + src/lang.ts | 37 + src/langs.test.ts | 33 + src/langs.ts | 125 +++ src/main.ts | 13 - src/types/undici-types.d.ts | 3 - 24 files changed, 1370 insertions(+), 592 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .env delete mode 100644 .github/FUNDING.yaml delete mode 100644 .github/copilot-instructions.md delete mode 100644 .github/workflows/docker.yaml delete mode 100644 Dockerfile create mode 100644 pnpm-workspace.yaml delete mode 100644 src/index.test.ts create mode 100644 src/lang.test.ts create mode 100644 src/lang.ts create mode 100644 src/langs.test.ts create mode 100644 src/langs.ts delete mode 100644 src/main.ts delete mode 100644 src/types/undici-types.d.ts diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 12144e1..0000000 --- a/.dockerignore +++ /dev/null @@ -1,23 +0,0 @@ -# Folders -.git -.github -.vscode -dist -docs -node_modules - -# Files -.dockerignore -.editorconfig -.eslintignore -.eslintrc.yaml -.gitignore -.prettierignore -.prettierrc.yaml -*.md -*.test.ts -*.tsbuildinfo -*.txt -Dockerfile -tsconfig.eslint.json -typedoc.json diff --git a/.env b/.env deleted file mode 100644 index e69de29..0000000 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index be8242a..e9934e8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,2 @@ -* @NatoBoram +*.ts @coderabbitai/typescript-reviewers +*.tsx @coderabbitai/react-reviewers diff --git a/.github/FUNDING.yaml b/.github/FUNDING.yaml deleted file mode 100644 index b15c52a..0000000 --- a/.github/FUNDING.yaml +++ /dev/null @@ -1,5 +0,0 @@ -github: - - NatoBoram -patreon: NatoBoram -custom: - - https://paypal.me/NatoBoram/5 diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md deleted file mode 100644 index 9855f09..0000000 --- a/.github/copilot-instructions.md +++ /dev/null @@ -1,16 +0,0 @@ -- Avoid `else` by using early `return` or new functions. -- Avoid classes unless they implement a shared behaviour or hide a private state. -- Avoid function-wide scopes, particularly `try`/`catch` and `if`. Instead, make a separate function for its inner scope and have its parent handle the conditions and error handlings. -- Avoid nesting by using early `return` or new functions. -- If a block of code is so complex that it has a paragraph to explain it, move it to a separate function. -- If a method does not use `this`, move it outside the class. -- Instead of using `let`, use `const` and make a function that directly gives the correct value. -- Make all interfaces `readonly`. -- Never use `any`. -- Never use `as`. -- Never use `enum`; replace them by objects with a `const` assertion and export its values as a type alias. -- Never use Hungarian notation. -- Never use tuples; replace them by interfaces. -- Prefer passing around the original object such as `Date` and `URL` instead of serializing it. -- Remove comments that are just repeating the next line. The same goes for `@params` and `@returns` in JSDoc. -- When a comment precedes a declaration, turn it to a TSDoc when that makes sense. diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml deleted file mode 100644 index 426ffe1..0000000 --- a/.github/workflows/docker.yaml +++ /dev/null @@ -1,60 +0,0 @@ -name: Docker CI - -on: - pull_request: - branches: - - main - merge_group: - branches: - - main - push: - branches: - - main - tags: - - v* - -jobs: - docker: - runs-on: ubuntu-latest - - if: github.actor != 'nektos/act' - - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v4 - - - uses: docker/login-action@v3 - if: github.actor != 'dependabot[bot]' - with: - username: ${{ vars.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - uses: docker/login-action@v3 - if: github.actor != 'dependabot[bot]' - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: | - natoboram/gigachad.ts - ghcr.io/${{ github.repository }} - tags: | - type=ref,event=tag - type=semver,pattern={{major}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}}.{{minor}}.{{patch}} - type=semver,pattern={{version}} - - - uses: docker/build-push-action@v6 - with: - context: . - push: ${{ github.ref_type == 'tag' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/pnpm-publish.yaml b/.github/workflows/pnpm-publish.yaml index e260656..58b85be 100644 --- a/.github/workflows/pnpm-publish.yaml +++ b/.github/workflows/pnpm-publish.yaml @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-node@v4 with: registry-url: https://npm.pkg.github.com - scope: "@natoboram" + scope: "@coderabbitai" - run: pnpm publish --access public --no-git-checks --provenance env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -39,13 +39,13 @@ jobs: - uses: actions/setup-node@v4 with: registry-url: https://registry.npmjs.org - scope: "@natoboram" + scope: "@coderabbitai" - run: pnpm publish --access public --no-git-checks --provenance env: NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} - run: pnpm pack --pack-gzip-level 9 - - run: gh release create "$VERSION" --generate-notes --title "$VERSION" --verify-tag natoboram-gigachad.ts-*.tgz + - run: gh release create "$VERSION" --generate-notes --title "$VERSION" --verify-tag coderabbitai-ast-grep-langs-*.tgz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VERSION: ${{ github.ref_name }} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 1090dd1..3b11301 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -6,7 +6,6 @@ "esbenp.prettier-vscode", "github.vscode-github-actions", "github.vscode-pull-request-github", - "ms-azuretools.vscode-docker", "redhat.vscode-yaml", "vitest.explorer" ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 532dee9..57d8c4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com) and this p ### Added +- A `Lang` enum with the names of all first-party languages. +- A `langs` object with all first-party languages. + ### Changed ### Deprecated @@ -18,14 +21,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com) and this p ### Security -## [0.0.0] - 2025-06-04 - -This release doesn't actually exist; it's a placeholder to demonstrate the changelog format. - -### Added - -- A changelog following the [Keep a Changelog](https://keepachangelog.com) format. - ## Types of changes - `Added` for new features. @@ -34,6 +29,3 @@ This release doesn't actually exist; it's a placeholder to demonstrate the chang - `Removed` for now removed features. - `Fixed` for any bug fixes. - `Security` in case of vulnerabilities. - -[Unreleased]: https://github.com/NatoBoram/gigachad.ts/compare/v0.0.0...HEAD -[0.0.0]: https://github.com/NatoBoram/gigachad.ts/releases/tag/v0.0.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 70329af..6052952 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -. +. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 0871773..0000000 --- a/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM node:23-slim AS base -ENV PNPM_HOME="/pnpm" -ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable -COPY . /app -WORKDIR /app - -FROM base AS prod-deps -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile - -FROM base AS build -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile -RUN pnpm run build - -FROM base -COPY --from=prod-deps /app/node_modules /app/node_modules -COPY --from=build /app/dist /app/dist -CMD [ "pnpm", "start" ] diff --git a/LICENSE.txt b/LICENSE.txt index b3dbff0..d645695 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,22 +1,202 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. + + Apache License + Version 2.0, January 2004 + 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 [yyyy] [name of copyright owner] + + 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/README.md b/README.md index b2d5bb4..9db5da3 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,5 @@ -# `@natoboram/gigachad.ts` +# `@coderabbitai/ast-grep-langs` -[![Node.js CI](https://github.com/NatoBoram/gigachad.ts/actions/workflows/node.js.yaml/badge.svg)](https://github.com/NatoBoram/gigachad.ts/actions/workflows/node.js.yaml) [![Docker CI](https://github.com/NatoBoram/gigachad.ts/actions/workflows/docker.yaml/badge.svg)](https://github.com/NatoBoram/gigachad.ts/actions/workflows/docker.yaml) [![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fnatoboram.github.io%2Fgigachad.ts%2Fcoverage%2Fcoverage-summary.json&query=total.branches.pct&suffix=%25&logo=vitest&label=coverage&color=acd268)](https://natoboram.github.io/gigachad.ts/coverage) [![GitHub Pages](https://github.com/NatoBoram/gigachad.ts/actions/workflows/github-pages.yaml/badge.svg)](https://github.com/NatoBoram/gigachad.ts/actions/workflows/github-pages.yaml) [![Dependabot Updates](https://github.com/NatoBoram/gigachad.ts/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/NatoBoram/gigachad.ts/actions/workflows/dependabot/dependabot-updates) +[![Node.js CI](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml) [![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fcoderabbitai.github.io%2Fast-grep-langs%2Fcoverage%2Fcoverage-summary.json&query=total.branches.pct&suffix=%25&logo=vitest&label=coverage&color=acd268)](https://coderabbitai.github.io/ast-grep-langs/coverage) [![GitHub Pages](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml) [![Dependabot Updates](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates) ![CodeRabbit Reviews](https://img.shields.io/coderabbit/prs/github/coderabbitai/ast-grep-langs?utm_source=oss&utm_medium=github&utm_campaign=coderabbitai%2Fast-grep-langs&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews) -The most gigachad project setup for TypeScript. - -- Containerize with [Docker](https://github.com/docker/cli) -- Deliver continuously with GitHub Workflow -- Document with [TypeDoc](https://github.com/TypeStrong/typedoc) -- Execute workflows locally with [`act`](https://github.com/nektos/act) -- Format on save in [VSCode](https://github.com/microsoft/vscode) -- Format with [Prettier](https://github.com/prettier/prettier) -- Keep a changelog with the [Keep a Changelog](https://keepachangelog.com) format -- Lint code with [ESLint](https://github.com/eslint/eslint) -- Lint markdown with [markdownlint](https://github.com/DavidAnson/markdownlint) -- Manage packages with [pnpm](https://github.com/pnpm/pnpm) -- Pledge your respect with the [Contributor Covenant](https://github.com/EthicalSource/contributor_covenant) -- Run with [Node.js](https://nodejs.org/api/typescript.html#type-stripping) -- Test units and calculate coverage with [Vitest](https://github.com/vitest-dev/vitest) -- Update dependencies with [Dependabot](https://github.com/dependabot/dependabot-core) - -## Publishing - -This template offers a GitHub Workflow to help you automatically publish a version to both NPM, the GitHub Package Registry and in GitHub Releases on the push of a tag. - -Start by updating your version number: - -```sh -git checkout main -git pull --autostash --prune --rebase -VERSION=$(pnpm version patch --no-git-tag-version) -git checkout -b "release/$VERSION" -git commit --all --message "🔖 $VERSION" -git push --set-upstream origin "release/$VERSION" -gh pr create --base main --draft --fill --head "release/$VERSION" --title "🔖 $VERSION" -``` - -Once your CI passes, merge the pull request, wait for the CI to pass again then push a new tag: - -```sh -git checkout main -git pull --autostash --prune --rebase -git tag "$VERSION" --annotate --message "🔖 $VERSION" --sign -git push --tags -``` - -To publish on NPM, you'll need to provide your NPM token. - -1. Sign in to -2. Access Tokens / Generate New Token / Classic Token / Automation / Generate Token -3. Copy that token and save it in your project's secrets at `/settings/secrets/actions/new` with the name `NODE_AUTH_TOKEN` +Exports all first-party ast-grep languages diff --git a/package.json b/package.json index f311d9d..d759349 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,24 @@ { - "name": "@natoboram/gigachad.ts", + "name": "@coderabbitai/ast-grep-langs", "version": "0.0.0", - "description": "The most gigachad project setup for TypeScript.", + "description": " Exports all first-party ast-grep languages", "keywords": [ - "dependabot", - "eslint", - "gigachad", - "markdownlint", - "prettier", - "project-template", - "typescript", - "vitest" + "ast-grep" ], - "homepage": "https://github.com/NatoBoram/gigachad.ts", + "homepage": "https://github.com/coderabbitai/ast-grep-langs", "bugs": { - "url": "https://github.com/NatoBoram/gigachad.ts/issues" + "url": "https://github.com/coderabbitai/ast-grep-langs/issues" }, - "license": "Unlicense", + "license": "Apache-2.0", "author": { - "name": "Nato Boram", - "url": "https://github.com/NatoBoram" + "name": "CodeRabbit", + "url": "https://coderabbit.ai", + "email": "support@coderabbit.ai" }, - "funding": [ + "contributors": [ { - "type": "patreon", - "url": "https://www.patreon.com/NatoBoram" - }, - { - "type": "individual", - "url": "https://paypal.me/NatoBoram/5" + "name": "Nato Boram", + "url": "https://github.com/NatoBoram" } ], "files": [ @@ -36,30 +26,51 @@ "!dist/**/*.test.*" ], "main": "dist/index.js", - "bin": { - "gigachad": "dist/main.js" - }, - "repository": "github:NatoBoram/gigachad.ts", + "repository": "github:coderabbitai/ast-grep-langs", "scripts": { "build": "tsgo", "clean": "rm -rf dist docs node_modules tsconfig.tsbuildinfo", - "dev": "node ./src/main.ts", - "docker": "pnpm run docker:build && pnpm run docker:run", - "docker:build": "docker build -t gigachad.ts .", - "docker:kill": "docker ps --format '{{.Image}} {{.ID}}' | grep gigachad.ts | awk '{print $2}' | xargs docker kill", - "docker:run": "docker run gigachad.ts", "docs": "typedoc", "format": "prettier --write .", "lint": "eslint . && markdownlint-cli2 \"**/*.md\" && prettier --check .", "lint:fix": "eslint --fix --quiet .; markdownlint-cli2 \"**/*.md\" --fix; prettier --list-different --write .", - "start": "node dist/main.js", "test": "vitest run", "test:coverage": "vitest run --coverage", "test:watch": "vitest" }, + "dependencies": { + "@ast-grep/lang-angular": "^0.0.4", + "@ast-grep/lang-bash": "^0.0.3", + "@ast-grep/lang-c": "^0.0.2", + "@ast-grep/lang-cpp": "^0.0.2", + "@ast-grep/lang-csharp": "^0.0.1", + "@ast-grep/lang-css": "^0.0.3", + "@ast-grep/lang-dart": "^0.0.3", + "@ast-grep/lang-elixir": "^0.0.3", + "@ast-grep/lang-go": "^0.0.2", + "@ast-grep/lang-haskell": "^0.0.2", + "@ast-grep/lang-html": "^0.0.3", + "@ast-grep/lang-java": "^0.0.3", + "@ast-grep/lang-javascript": "^0.0.3", + "@ast-grep/lang-json": "^0.0.3", + "@ast-grep/lang-kotlin": "^0.0.2", + "@ast-grep/lang-lua": "^0.0.3", + "@ast-grep/lang-php": "^0.0.3", + "@ast-grep/lang-python": "^0.0.1", + "@ast-grep/lang-ruby": "^0.0.3", + "@ast-grep/lang-rust": "^0.0.3", + "@ast-grep/lang-scala": "^0.0.3", + "@ast-grep/lang-sql": "^0.0.3", + "@ast-grep/lang-swift": "^0.0.3", + "@ast-grep/lang-toml": "^0.0.5", + "@ast-grep/lang-tsx": "^0.0.2", + "@ast-grep/lang-typescript": "^0.0.3", + "@ast-grep/lang-yaml": "^0.0.2", + "@ast-grep/napi": "^0.38.5" + }, "devDependencies": { "@eslint/js": "^9.28.0", - "@typescript/native-preview": "^7.0.0-dev", + "@typescript/native-preview": "7.0.0-dev.20250612.1", "@vitest/coverage-v8": "3.2.1", "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", @@ -69,8 +80,8 @@ "prettier": "^3.5.3", "typedoc": "^0.28.5", "typescript": "5.8.3", - "typescript-eslint": "^8.33.1", - "vitest": "^3.2.1" + "typescript-eslint": "^8.34.0", + "vitest": "^3.2.3" }, "type": "module", "exports": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c359a1a..e5fa13e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,16 +7,101 @@ settings: importers: .: + dependencies: + '@ast-grep/lang-angular': + specifier: ^0.0.4 + version: 0.0.4 + '@ast-grep/lang-bash': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-c': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-cpp': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-csharp': + specifier: ^0.0.1 + version: 0.0.1 + '@ast-grep/lang-css': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-dart': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-elixir': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-go': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-haskell': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-html': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-java': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-javascript': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-json': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-kotlin': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-lua': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-php': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-python': + specifier: ^0.0.1 + version: 0.0.1 + '@ast-grep/lang-ruby': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-rust': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-scala': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-sql': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-swift': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-toml': + specifier: ^0.0.5 + version: 0.0.5 + '@ast-grep/lang-tsx': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/lang-typescript': + specifier: ^0.0.3 + version: 0.0.3 + '@ast-grep/lang-yaml': + specifier: ^0.0.2 + version: 0.0.2 + '@ast-grep/napi': + specifier: ^0.38.5 + version: 0.38.5 devDependencies: '@eslint/js': specifier: ^9.28.0 version: 9.28.0 '@typescript/native-preview': - specifier: ^7.0.0-dev - version: 7.0.0-dev.20250605.1 + specifier: 7.0.0-dev.20250612.1 + version: 7.0.0-dev.20250612.1 '@vitest/coverage-v8': specifier: 3.2.1 - version: 3.2.1(vitest@3.2.1(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0)) + version: 3.2.1(vitest@3.2.3(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0)) eslint: specifier: ^9.28.0 version: 9.28.0(jiti@2.4.2) @@ -42,11 +127,11 @@ importers: specifier: 5.8.3 version: 5.8.3 typescript-eslint: - specifier: ^8.33.1 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) vitest: - specifier: ^3.2.1 - version: 3.2.1(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) + specifier: ^3.2.3 + version: 3.2.3(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) packages: @@ -54,6 +139,283 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@ast-grep/lang-angular@0.0.4': + resolution: {integrity: sha512-8SWB3bZAJ7+G3/XWBXPpbqAhNiteOmCx/VqSJdUSSFhPhntGemPWdvbt7E46pgh8xchfG9ooI18MhdSJupiSnA==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-bash@0.0.3': + resolution: {integrity: sha512-6CrUcR4UFPRbToP07M2KHr2Bpit3j7rc2jeG+1y0n7H8EvHHujyC2JLW6/clNyNqpKMLH/6EYROwbbn2/sRAMQ==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-c@0.0.2': + resolution: {integrity: sha512-PAhImywspkfubiHbgSg0SRJKxirPovjKYcJkdlpieN0EjpSBrqXmAhi4Ku8J3AumegMC0n/J6KmRzjM1VpfplA==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-cpp@0.0.2': + resolution: {integrity: sha512-e4WZAHWJ/uZ+JPw0lfXsGTnRMuh/oQilm8CLraDSR6HRsw+tepscISdFe+ufui+88eoTSiatvk8q91W7u8loqA==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-csharp@0.0.1': + resolution: {integrity: sha512-hqRnrHkBYTMFo7cV6L6QqWGvdwahZLpo2MI33cMa2i6UFO+6xTUPB0wJx5xELvMz457tKjO8ljKwSh3a/kiryA==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-css@0.0.3': + resolution: {integrity: sha512-PCGymPecuYppS7fA+DZNFfyEO3J7Vio0ejK+NR9drRenFFYSaatHcClYbdXhRZxVTg0IRXo2zWGjroP01CEI8Q==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-dart@0.0.3': + resolution: {integrity: sha512-5t0C4q4Ns+IqmCB0D75Q5JtGnfSTUtYn9Vl2vb6V1/kS8Utr/imNpwWntl+/MAvMMhlYC8XR6IpzNbs7Nbljlg==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-elixir@0.0.3': + resolution: {integrity: sha512-u2Os40nueyQKPduOoOjCAivrYalG1cQWM6zyXNlto1JHTFtbuCVPYsGsZ1KKnBgYr9c+YT26guzXlYwnoO/KNg==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-go@0.0.2': + resolution: {integrity: sha512-RFlSWu6z2EOvnUNRI7uNysLo40Hi3eH95sqKYet59kRgdjbDFPii+DfBohl7uHPyDRiS7tPkiYXnpOpZlrtAXQ==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-haskell@0.0.2': + resolution: {integrity: sha512-Gv0/ndjiPZwPfBqmsPluzaH3T86yTXedvRcZhCDUs+f2/7OS5S3LQ3EkWlGWW78XJfreFzuvWMipu83h/bimiA==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-html@0.0.3': + resolution: {integrity: sha512-RMOcT0f04sxZoezzhvp+gh8VdjJsE7+q3oXXXghLZG+ul5AX0jPe++T3QsX5vCSLr9k3JRrbbukSt7RLhnEthg==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-java@0.0.3': + resolution: {integrity: sha512-xZ4Pjcqlo971j8xnS7TqD83rzvcEiWEaPAzNZAbM06UdJeZGYvZcjenfmKtCVE16pOXEXbh4p2TNz5c21Vtp1A==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-javascript@0.0.3': + resolution: {integrity: sha512-TtuRhpjb3qqOWqOuhc/SAoERN/MYybjs9dCvWF08AJ0/Qr9F+lqC6bRgJ8M20u5wqFd5gBP9a5QDM7SqT6b/6A==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-json@0.0.3': + resolution: {integrity: sha512-rixdx1oiQXliehQmg6zDsv4iuYjqenfLk+LelR3WwG0HDlU8XRIMeeN9WorgJrFh+I9m20VwSyZ5awrKzMzjsw==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-kotlin@0.0.2': + resolution: {integrity: sha512-cs2XCCw++JYD+5eXhmS39uf1ywQa3V6b+5nZEP53EeKgSuF9CyosUxqSrCl8vwJB7Nwe0S+4PqASeU2LxHSGYg==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-lua@0.0.3': + resolution: {integrity: sha512-tsgG2M/0T0mJDjdLeeGGnM5bZIpl+kP4432yc7+WOGCgUMFuzKvIhAZC02GjmUbITxlNrcEHW317WMlA2pbvIw==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-php@0.0.3': + resolution: {integrity: sha512-DkLPUnPq0uDTKPqzuQfBsZnWbzep3GYiZ8blIKu3Z8sCH4nUpMynaCR9+1Q/vvfds0Q+3/5GR/vuibYSNqNgmA==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-python@0.0.1': + resolution: {integrity: sha512-RUtQKM5msT2Jdwu6q9rW5qVh2S5X3iBAGj6Zoct1CAHEGHIpkOFa+jLvJpVeLxVOqq0U9jRX+7G1keuqgn7daQ==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-ruby@0.0.3': + resolution: {integrity: sha512-Gp2O/1o/xLRdJWf9D5Ka2/iTdTmrO/JvflVYZtTZT57G/LqU5UKQ7kSpNBqZT0c4WFd6QQvKl/a/MilRdHS+1w==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-rust@0.0.3': + resolution: {integrity: sha512-KObhjEPKWy1/4waExuMzNFlpwYNK9cw6/7kmkxOlk0otO8QvRQDlk6A/aEXvLmFftrN8L1bIecEgZxNoEcn3MA==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-scala@0.0.3': + resolution: {integrity: sha512-69NlcfZYFX6KDmYN07dIQx4l6+VmO4Lv67RxUxsLGexPDDw0Ez32k9pJnaUEEwGupk6li7YHIcU42uyfJJ09jQ==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-sql@0.0.3': + resolution: {integrity: sha512-kNI7yNcsb59XugKoWs4Svt+FB+a28MIHw/zJVVr7nyuhxyVsfdZCI8lDzqBXUqAFDhaNT6LxnWTELE8JthvdBw==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-swift@0.0.3': + resolution: {integrity: sha512-uKNn7IP4jUIKyUtpTcHxsM4McdWEC7v6Oc2a2pg6adOyY5tYy6R40ZWa1C8tolUq64GqXLnsPjQHTe0G5brQGg==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-toml@0.0.5': + resolution: {integrity: sha512-1+6PAxmPyu4LHpwLzXOtjUrK5DtBEhl+wOKT4kangy1+0Ys6QLpSEov9LYZdgB3f61wPG+Mugbp131t3mAP06Q==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-tsx@0.0.2': + resolution: {integrity: sha512-txZ9rw60u4QpNlhI/IVAg4O4dHAA3JDJxivYeSJMYofBju69NfZOBvWTa43EhFsMmjS5AECctz5lt1PA1RldKw==} + peerDependencies: + tree-sitter-cli: 0.24.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-typescript@0.0.3': + resolution: {integrity: sha512-shguHGyN4IDVi+iCkhU94iJA7R4QgTiP1nWpc1dntTw6jbyOH++2S9ibDNiHy9uyHkvML58etoPQRaQPk6Bc9Q==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/lang-yaml@0.0.2': + resolution: {integrity: sha512-kiV82Udo7Jat7fBq9OzJBdn/d7R0qd355ruBiwM7aTPlE5vtIaKFr+l3pkfTUEefgI8Ow8QHFJxsaOiQmkEYOw==} + peerDependencies: + tree-sitter-cli: 0.25.6 + peerDependenciesMeta: + tree-sitter-cli: + optional: true + + '@ast-grep/napi-darwin-arm64@0.38.5': + resolution: {integrity: sha512-Ky60f2O2Od7ySDLF8QOPX5PvdNw/1DGlqxLvKYF1wJUMAY3/7ZRGxDSZ+m3BwvYCMhvKCLWSthQ3eMuZyEUZzQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@ast-grep/napi-darwin-x64@0.38.5': + resolution: {integrity: sha512-4AOenxM5lC9nzSnTPmmDDYUG3Rrh4VjbmWf6JbZPhvhdgMnKigbFVvv2BqhzxBtI8MxJ86jNmuI3KW1QYc+V1A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@ast-grep/napi-linux-arm64-gnu@0.38.5': + resolution: {integrity: sha512-8ePpkH15Patg4PdwreB64YXaIynyaNm6RbnkMKnZ6jFYnAa00NeWZ7lv1vdD01q5pzI4k3jx6deBGEvgRZ8hww==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@ast-grep/napi-linux-arm64-musl@0.38.5': + resolution: {integrity: sha512-TG1e6AgRXksJuBMEVKV75h6aNoaE1IpIR4WB0CM6VTK84vjAlCh70XvFbqicowpCPJkWoQ2fhy4Ux+B8YykpJA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@ast-grep/napi-linux-x64-gnu@0.38.5': + resolution: {integrity: sha512-BD8PEBras1EfbRHpZXUXJrAfaXcCL2ZZTgk+BNd/p//CWGqVQRbbVib5irRRETJf804ElXPD7uLV6IWeQP5u+w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@ast-grep/napi-linux-x64-musl@0.38.5': + resolution: {integrity: sha512-fJyehG0xPe9Hvp64o4N1gVIbJ3oBXvMaN81pXSTcMP9QI5v/H40igZ4XoPkobSGittPr7x3ooDv9WIwuzc4pxA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@ast-grep/napi-win32-arm64-msvc@0.38.5': + resolution: {integrity: sha512-25wyag97kE6nv1hHaNuPgORYbSUndgsAUKCSarsEDI5BBp6h0YDdFY+VzM+SH62F0RBqj0bkpud38UblftfgFw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@ast-grep/napi-win32-ia32-msvc@0.38.5': + resolution: {integrity: sha512-9ZmG9xAxxxMbDvhf2QQ0bq/e9BJ+TVXFsj9Fp5Ju7dkyCRFwLGquL/RapE/jz/L11zfu+Z7EVZfmp1RnmGxpWw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@ast-grep/napi-win32-x64-msvc@0.38.5': + resolution: {integrity: sha512-DNeLIwkK/BKyYX5ymmeioqpXOXGcOxj2OgLpWiyk/VawwQe6uGgrH97k3pRku513dzHKayfizvU2igjj9oTJuA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@ast-grep/napi@0.38.5': + resolution: {integrity: sha512-lhuekQ5khQd70GaHatR+Ge4AcYtdYjzO372TlXI7cQOdvDcrL5MOR7CnQXvUe1cuJHTx2UJd42KK6z6Qza8Tjw==} + engines: {node: '>= 10'} + + '@ast-grep/setup-lang@0.0.3': + resolution: {integrity: sha512-+ZNOuf0r7ABVwOANrrQpUrUv7xyuhsZGyQ88WZCH/euQmIEvSH3JsUFevg/60M7hi8NVh4vfSQs6ajTpumSzxg==} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -67,8 +429,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.27.3': - resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': @@ -379,18 +741,22 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + '@eslint/config-array@0.20.1': + resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.2': - resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + '@eslint/config-helpers@0.2.3': + resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.14.0': resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.15.0': + resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -403,12 +769,12 @@ packages: resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.1': - resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + '@eslint/plugin-kit@0.3.2': + resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@gerrit0/mini-shiki@3.5.0': - resolution: {integrity: sha512-RQ1YHbN0EsRMP62QB61jFxrgpb8VIUE+PhR8CjBarIat6b2UeYHBo2s+IL7Fny6F4FuV4S63ksSNWiImsUKR+A==} + '@gerrit0/mini-shiki@3.6.0': + resolution: {integrity: sha512-KaeJvPNofTEZR9EzVNp/GQzbQqkGfjiu6k3CXKvhVTX+8OoAKSX/k7qxLKOX3B0yh2XqVAc93rsOu48CGt2Qug==} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -472,117 +838,117 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/rollup-android-arm-eabi@4.41.1': - resolution: {integrity: sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==} + '@rollup/rollup-android-arm-eabi@4.43.0': + resolution: {integrity: sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.41.1': - resolution: {integrity: sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==} + '@rollup/rollup-android-arm64@4.43.0': + resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.41.1': - resolution: {integrity: sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==} + '@rollup/rollup-darwin-arm64@4.43.0': + resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.41.1': - resolution: {integrity: sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==} + '@rollup/rollup-darwin-x64@4.43.0': + resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.41.1': - resolution: {integrity: sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==} + '@rollup/rollup-freebsd-arm64@4.43.0': + resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.41.1': - resolution: {integrity: sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==} + '@rollup/rollup-freebsd-x64@4.43.0': + resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.41.1': - resolution: {integrity: sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==} + '@rollup/rollup-linux-arm-gnueabihf@4.43.0': + resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.41.1': - resolution: {integrity: sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==} + '@rollup/rollup-linux-arm-musleabihf@4.43.0': + resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.41.1': - resolution: {integrity: sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==} + '@rollup/rollup-linux-arm64-gnu@4.43.0': + resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.41.1': - resolution: {integrity: sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==} + '@rollup/rollup-linux-arm64-musl@4.43.0': + resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.41.1': - resolution: {integrity: sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==} + '@rollup/rollup-linux-loongarch64-gnu@4.43.0': + resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.41.1': - resolution: {integrity: sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==} + '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': + resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.41.1': - resolution: {integrity: sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==} + '@rollup/rollup-linux-riscv64-gnu@4.43.0': + resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.41.1': - resolution: {integrity: sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==} + '@rollup/rollup-linux-riscv64-musl@4.43.0': + resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.41.1': - resolution: {integrity: sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==} + '@rollup/rollup-linux-s390x-gnu@4.43.0': + resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.41.1': - resolution: {integrity: sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==} + '@rollup/rollup-linux-x64-gnu@4.43.0': + resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.41.1': - resolution: {integrity: sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==} + '@rollup/rollup-linux-x64-musl@4.43.0': + resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.41.1': - resolution: {integrity: sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==} + '@rollup/rollup-win32-arm64-msvc@4.43.0': + resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.41.1': - resolution: {integrity: sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==} + '@rollup/rollup-win32-ia32-msvc@4.43.0': + resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.41.1': - resolution: {integrity: sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==} + '@rollup/rollup-win32-x64-msvc@4.43.0': + resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==} cpu: [x64] os: [win32] - '@shikijs/engine-oniguruma@3.5.0': - resolution: {integrity: sha512-DLM1VL+WvWFHQlikP8MTc8T2MdEGAOJhAi9+48wkQ7kO7c/99h4ALK0b0CPQBCeLMp37raoM1Ucuo3OTSjtUxA==} + '@shikijs/engine-oniguruma@3.6.0': + resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==} - '@shikijs/langs@3.5.0': - resolution: {integrity: sha512-kBJhmj0ZkULbf3O+Asr8Xs7hcFtQdPnqIld2kKrG9WhDpIvqMRWSj3L9LECi2TH7vV6ROrvJ78/1yEASL0d00w==} + '@shikijs/langs@3.6.0': + resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==} - '@shikijs/themes@3.5.0': - resolution: {integrity: sha512-xr4bPmAORm2fhfVeaCDfRXiq0rxAxPRR0Bhiw+EaofgJ79Jj61fnVZDF40nJKvmMoKnC60TqCTpbr15ToTgTOA==} + '@shikijs/themes@3.6.0': + resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==} - '@shikijs/types@3.5.0': - resolution: {integrity: sha512-VvqGHhS8BWClF7eVnEJLe0nAhQw/1L+xC5mp6uj+tVr3tjD2ASx2Mx9M9l7tZQO++1qwZeIIusvSRhz4aKODFQ==} + '@shikijs/types@3.6.0': + resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -603,6 +969,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -621,109 +990,109 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.33.1': - resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.1 + '@typescript-eslint/parser': ^8.34.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.1': - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.33.1': - resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.33.1': - resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.33.1': - resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.1': - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.33.1': - resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.33.1': - resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.1': - resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.33.1': - resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-fkftk9+orn2beytfCCjgfprsybt8a0gybKoMm47YTuLz09QI/8ugclqYpu2Durs54UVLpssL+qZK+//aGbuiTQ==} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-+QSiCODDFg5WLfPAtCH1/YJeFVFcZD8dlr9xySBaETXX2rJubCM/ht2/PeEBrfti19VIvVkfWKbSOG0vOv7C6w==} engines: {node: '>=20.6.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-ubfzZKLv105zDT5AjO9wIIrLz4ehXd0lwV+Gu7qRws9Oq3ojPVzzQs/B8Vh4zl3R1Zn1bzm8fSkIs0+kO1Ik5g==} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-dlXSE88+7n0JJU0f60tMxJ8m0s8rxAy1ZZO6DpBsIr/q7AxzSBSqphCBG4cvl/7gOboZYwApvg4+/7mYU8Tjeg==} engines: {node: '>=20.6.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-raRVls6Yx0zOt1Dj+xUOG6SAlq5B+dV731Re+86AfL0XQwWXU2YPK/QP8BRH4zv/PzOVzX274zBmTI6tSQC/1g==} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-w1m7t5PYLtPbkCnWJnwWFNpQny1Rd1a1FWp/B8OvqnO64iZJYbSQZGVUKyl6ka4NuSp3ZM51QieW+wfZRRJM0A==} engines: {node: '>=20.6.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-kOHdWPxj/arjamt7s3p7DPDFZr84yAVxS1jHD2YWhwH/uotHu4RaFUYD+iYurl7b+B3numHFLwzWO9HvOXQbeQ==} + '@typescript/native-preview-linux-arm@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-E/uqiPWE3Rdio3N5CL8nhXamfXImE/HcsWo7wBPEV0Nh3jbLI05PyozhQaX6i5zxzAvIteecYRezyaiNW6JlVg==} engines: {node: '>=20.6.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-DFJO78Lr5NgJFclOJyOev5h0sDEKpUmIq3UHBEP8IOnyjZiHfDSSOUajC3miEI0FqW7sq/Ocixm2Q3jPXx8EUA==} + '@typescript/native-preview-linux-x64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-bghKpsdKfGuLvbAbOvf0zx6YjOxtB4a0RJb58RsMpsyAFDobBVXPiPYwqQ0+qcDFpM2b1Ld0jdNkqpsi7KFnrA==} engines: {node: '>=20.6.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-t0IGSeQ7UFpahbWj6HoWevpl3aWopFKqIc6jgdy4Fr6FGdg+js68PBpx2wul+u4U8iC2s9hq4a3RrA1Ffj2jUw==} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-g6/ajZLELB8u/JTs16cx7bbitgb+e6qa+ksuOLjO7lGKCadccbAoZQfwyroGVb9g5ZVK6txfbw3NlM3GSaoLsA==} engines: {node: '>=20.6.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-9QNuKDE0qEyH7hGfMwWAxLh8QEEPaFBKRQ65J2TuNYk5MC+K83yhHZhgZhNjftC0Wqj3aD2/mtUdxJjSUsOlmQ==} + '@typescript/native-preview-win32-x64@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-Gqam3rIIgvOYl7TVQA+EmtdmzawZx0xfcNJIuv3YryifMjg+OD2tCGzc1u/KVSugAqqJd5s0JCYqgykp1ZkWJQ==} engines: {node: '>=20.6.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20250605.1': - resolution: {integrity: sha512-JCxsGHd0pHC2H8fKRI9Ncw4gUyU6os4B2zp9o9hLlXVTyisdhoUmnznv91O5K1xBr1pmqZFqd6o7V4PCx8zZ8Q==} + '@typescript/native-preview@7.0.0-dev.20250612.1': + resolution: {integrity: sha512-DxI0HWno0orjFsUIuOnavQlUHTgxrw1oYMToAwpQTZD1Io+aKSIDOGYadxEjMVZhZSzgykNh2/J5ktQkN2tK8A==} engines: {node: '>=20.6.0'} hasBin: true @@ -736,11 +1105,11 @@ packages: '@vitest/browser': optional: true - '@vitest/expect@3.2.1': - resolution: {integrity: sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==} + '@vitest/expect@3.2.3': + resolution: {integrity: sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==} - '@vitest/mocker@3.2.1': - resolution: {integrity: sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==} + '@vitest/mocker@3.2.3': + resolution: {integrity: sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 @@ -750,28 +1119,28 @@ packages: vite: optional: true - '@vitest/pretty-format@3.2.1': - resolution: {integrity: sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==} + '@vitest/pretty-format@3.2.3': + resolution: {integrity: sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==} - '@vitest/runner@3.2.1': - resolution: {integrity: sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==} + '@vitest/runner@3.2.3': + resolution: {integrity: sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==} - '@vitest/snapshot@3.2.1': - resolution: {integrity: sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==} + '@vitest/snapshot@3.2.3': + resolution: {integrity: sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==} - '@vitest/spy@3.2.1': - resolution: {integrity: sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==} + '@vitest/spy@3.2.3': + resolution: {integrity: sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==} - '@vitest/utils@3.2.1': - resolution: {integrity: sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==} + '@vitest/utils@3.2.3': + resolution: {integrity: sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -807,11 +1176,11 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -926,16 +1295,16 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 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==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@9.28.0: @@ -948,8 +1317,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: @@ -991,8 +1360,8 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.5: - resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -1375,8 +1744,8 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - postcss@8.5.4: - resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + postcss@8.5.5: + resolution: {integrity: sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -1410,8 +1779,8 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.41.1: - resolution: {integrity: sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==} + rollup@4.43.0: + resolution: {integrity: sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1472,6 +1841,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1528,8 +1900,8 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x - typescript-eslint@8.33.1: - resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==} + typescript-eslint@8.34.0: + resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1550,8 +1922,8 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - vite-node@3.2.1: - resolution: {integrity: sha512-V4EyKQPxquurNJPtQJRZo8hKOoKNBRIhxcDbQFPFig0JdoWcUhwRgK8yoCXXrfYVPKS6XwirGHPszLnR8FbjCA==} + vite-node@3.2.3: + resolution: {integrity: sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -1595,16 +1967,16 @@ packages: yaml: optional: true - vitest@3.2.1: - resolution: {integrity: sha512-VZ40MBnlE1/V5uTgdqY3DmjUgZtIzsYq758JGlyQrv5syIsaYcabkfPkEuWML49Ph0D/SoqpVFd0dyVTr551oA==} + vitest@3.2.3: + resolution: {integrity: sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.1 - '@vitest/ui': 3.2.1 + '@vitest/browser': 3.2.3 + '@vitest/ui': 3.2.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -1661,15 +2033,164 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@ast-grep/lang-angular@0.0.4': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-bash@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-c@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-cpp@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-csharp@0.0.1': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-css@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-dart@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-elixir@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-go@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-haskell@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-html@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-java@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-javascript@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-json@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-kotlin@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-lua@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-php@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-python@0.0.1': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-ruby@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-rust@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-scala@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-sql@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-swift@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-toml@0.0.5': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-tsx@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-typescript@0.0.3': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/lang-yaml@0.0.2': + dependencies: + '@ast-grep/setup-lang': 0.0.3 + + '@ast-grep/napi-darwin-arm64@0.38.5': + optional: true + + '@ast-grep/napi-darwin-x64@0.38.5': + optional: true + + '@ast-grep/napi-linux-arm64-gnu@0.38.5': + optional: true + + '@ast-grep/napi-linux-arm64-musl@0.38.5': + optional: true + + '@ast-grep/napi-linux-x64-gnu@0.38.5': + optional: true + + '@ast-grep/napi-linux-x64-musl@0.38.5': + optional: true + + '@ast-grep/napi-win32-arm64-msvc@0.38.5': + optional: true + + '@ast-grep/napi-win32-ia32-msvc@0.38.5': + optional: true + + '@ast-grep/napi-win32-x64-msvc@0.38.5': + optional: true + + '@ast-grep/napi@0.38.5': + optionalDependencies: + '@ast-grep/napi-darwin-arm64': 0.38.5 + '@ast-grep/napi-darwin-x64': 0.38.5 + '@ast-grep/napi-linux-arm64-gnu': 0.38.5 + '@ast-grep/napi-linux-arm64-musl': 0.38.5 + '@ast-grep/napi-linux-x64-gnu': 0.38.5 + '@ast-grep/napi-linux-x64-musl': 0.38.5 + '@ast-grep/napi-win32-arm64-msvc': 0.38.5 + '@ast-grep/napi-win32-ia32-msvc': 0.38.5 + '@ast-grep/napi-win32-x64-msvc': 0.38.5 + + '@ast-grep/setup-lang@0.0.3': {} + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 - '@babel/types@7.27.3': + '@babel/types@7.27.6': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -1830,7 +2351,7 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.0': + '@eslint/config-array@0.20.1': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.1 @@ -1838,17 +2359,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.2': {} + '@eslint/config-helpers@0.2.3': {} '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.15.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.1 - espree: 10.3.0 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 @@ -1862,17 +2387,17 @@ snapshots: '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.1': + '@eslint/plugin-kit@0.3.2': dependencies: - '@eslint/core': 0.14.0 + '@eslint/core': 0.15.0 levn: 0.4.1 - '@gerrit0/mini-shiki@3.5.0': + '@gerrit0/mini-shiki@3.6.0': dependencies: - '@shikijs/engine-oniguruma': 3.5.0 - '@shikijs/langs': 3.5.0 - '@shikijs/themes': 3.5.0 - '@shikijs/types': 3.5.0 + '@shikijs/engine-oniguruma': 3.6.0 + '@shikijs/langs': 3.6.0 + '@shikijs/themes': 3.6.0 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 '@humanfs/core@0.19.1': {} @@ -1931,80 +2456,80 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/rollup-android-arm-eabi@4.41.1': + '@rollup/rollup-android-arm-eabi@4.43.0': optional: true - '@rollup/rollup-android-arm64@4.41.1': + '@rollup/rollup-android-arm64@4.43.0': optional: true - '@rollup/rollup-darwin-arm64@4.41.1': + '@rollup/rollup-darwin-arm64@4.43.0': optional: true - '@rollup/rollup-darwin-x64@4.41.1': + '@rollup/rollup-darwin-x64@4.43.0': optional: true - '@rollup/rollup-freebsd-arm64@4.41.1': + '@rollup/rollup-freebsd-arm64@4.43.0': optional: true - '@rollup/rollup-freebsd-x64@4.41.1': + '@rollup/rollup-freebsd-x64@4.43.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.41.1': + '@rollup/rollup-linux-arm-gnueabihf@4.43.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.41.1': + '@rollup/rollup-linux-arm-musleabihf@4.43.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.41.1': + '@rollup/rollup-linux-arm64-gnu@4.43.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.41.1': + '@rollup/rollup-linux-arm64-musl@4.43.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.41.1': + '@rollup/rollup-linux-loongarch64-gnu@4.43.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.41.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.41.1': + '@rollup/rollup-linux-riscv64-gnu@4.43.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.41.1': + '@rollup/rollup-linux-riscv64-musl@4.43.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.41.1': + '@rollup/rollup-linux-s390x-gnu@4.43.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.41.1': + '@rollup/rollup-linux-x64-gnu@4.43.0': optional: true - '@rollup/rollup-linux-x64-musl@4.41.1': + '@rollup/rollup-linux-x64-musl@4.43.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.41.1': + '@rollup/rollup-win32-arm64-msvc@4.43.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.41.1': + '@rollup/rollup-win32-ia32-msvc@4.43.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.41.1': + '@rollup/rollup-win32-x64-msvc@4.43.0': optional: true - '@shikijs/engine-oniguruma@3.5.0': + '@shikijs/engine-oniguruma@3.6.0': dependencies: - '@shikijs/types': 3.5.0 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.5.0': + '@shikijs/langs@3.6.0': dependencies: - '@shikijs/types': 3.5.0 + '@shikijs/types': 3.6.0 - '@shikijs/themes@3.5.0': + '@shikijs/themes@3.6.0': dependencies: - '@shikijs/types': 3.5.0 + '@shikijs/types': 3.6.0 - '@shikijs/types@3.5.0': + '@shikijs/types@3.6.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -2025,6 +2550,8 @@ snapshots: '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -2039,14 +2566,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.5 @@ -2056,40 +2583,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1 eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 debug: 4.4.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.33.1': + '@typescript-eslint/scope-manager@8.34.0': dependencies: - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 - '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) @@ -2097,14 +2624,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.33.1': {} + '@typescript-eslint/types@8.34.0': {} - '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -2115,54 +2642,54 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.33.1': + '@typescript-eslint/visitor-keys@8.34.0': dependencies: - '@typescript-eslint/types': 8.33.1 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.34.0 + eslint-visitor-keys: 4.2.1 - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250605.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20250605.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20250605.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20250605.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20250605.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20250605.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20250605.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20250612.1': optional: true - '@typescript/native-preview@7.0.0-dev.20250605.1': + '@typescript/native-preview@7.0.0-dev.20250612.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20250605.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20250605.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20250605.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20250605.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20250605.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20250605.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20250612.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20250612.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20250612.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20250612.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20250612.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20250612.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20250612.1 - '@vitest/coverage-v8@3.2.1(vitest@3.2.1(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0))': + '@vitest/coverage-v8@3.2.1(vitest@3.2.3(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -2177,56 +2704,57 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.1(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) + vitest: 3.2.3(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.2.1': + '@vitest/expect@3.2.3': dependencies: '@types/chai': 5.2.2 - '@vitest/spy': 3.2.1 - '@vitest/utils': 3.2.1 + '@vitest/spy': 3.2.3 + '@vitest/utils': 3.2.3 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.1(vite@6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0))': + '@vitest/mocker@3.2.3(vite@6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0))': dependencies: - '@vitest/spy': 3.2.1 + '@vitest/spy': 3.2.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: vite: 6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) - '@vitest/pretty-format@3.2.1': + '@vitest/pretty-format@3.2.3': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.1': + '@vitest/runner@3.2.3': dependencies: - '@vitest/utils': 3.2.1 + '@vitest/utils': 3.2.3 pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@3.2.1': + '@vitest/snapshot@3.2.3': dependencies: - '@vitest/pretty-format': 3.2.1 + '@vitest/pretty-format': 3.2.3 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.2.1': + '@vitest/spy@3.2.3': dependencies: tinyspy: 4.0.3 - '@vitest/utils@3.2.1': + '@vitest/utils@3.2.3': dependencies: - '@vitest/pretty-format': 3.2.1 + '@vitest/pretty-format': 3.2.3 loupe: 3.1.3 tinyrainbow: 2.0.0 - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 - acorn@8.14.1: {} + acorn@8.15.0: {} ajv@6.12.6: dependencies: @@ -2257,12 +2785,12 @@ snapshots: balanced-match@1.0.2: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -2401,38 +2929,38 @@ snapshots: dependencies: eslint: 9.28.0(jiti@2.4.2) - eslint-scope@8.3.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} eslint@9.28.0(jiti@2.4.2): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.2 + '@eslint/config-array': 0.20.1 + '@eslint/config-helpers': 0.2.3 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 '@eslint/js': 9.28.0 - '@eslint/plugin-kit': 0.3.1 + '@eslint/plugin-kit': 0.3.2 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2452,11 +2980,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esquery@1.6.0: dependencies: @@ -2470,7 +2998,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -2494,7 +3022,7 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.5(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -2680,7 +3208,7 @@ snapshots: magicast@0.3.5: dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 source-map-js: 1.2.1 make-dir@4.0.0: @@ -2908,11 +3436,11 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minipass@7.1.2: {} @@ -2976,7 +3504,7 @@ snapshots: picomatch@4.0.2: {} - postcss@8.5.4: + postcss@8.5.5: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -2999,30 +3527,30 @@ snapshots: reusify@1.1.0: {} - rollup@4.41.1: + rollup@4.43.0: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.41.1 - '@rollup/rollup-android-arm64': 4.41.1 - '@rollup/rollup-darwin-arm64': 4.41.1 - '@rollup/rollup-darwin-x64': 4.41.1 - '@rollup/rollup-freebsd-arm64': 4.41.1 - '@rollup/rollup-freebsd-x64': 4.41.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.41.1 - '@rollup/rollup-linux-arm-musleabihf': 4.41.1 - '@rollup/rollup-linux-arm64-gnu': 4.41.1 - '@rollup/rollup-linux-arm64-musl': 4.41.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.41.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.41.1 - '@rollup/rollup-linux-riscv64-gnu': 4.41.1 - '@rollup/rollup-linux-riscv64-musl': 4.41.1 - '@rollup/rollup-linux-s390x-gnu': 4.41.1 - '@rollup/rollup-linux-x64-gnu': 4.41.1 - '@rollup/rollup-linux-x64-musl': 4.41.1 - '@rollup/rollup-win32-arm64-msvc': 4.41.1 - '@rollup/rollup-win32-ia32-msvc': 4.41.1 - '@rollup/rollup-win32-x64-msvc': 4.41.1 + '@rollup/rollup-android-arm-eabi': 4.43.0 + '@rollup/rollup-android-arm64': 4.43.0 + '@rollup/rollup-darwin-arm64': 4.43.0 + '@rollup/rollup-darwin-x64': 4.43.0 + '@rollup/rollup-freebsd-arm64': 4.43.0 + '@rollup/rollup-freebsd-x64': 4.43.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.43.0 + '@rollup/rollup-linux-arm-musleabihf': 4.43.0 + '@rollup/rollup-linux-arm64-gnu': 4.43.0 + '@rollup/rollup-linux-arm64-musl': 4.43.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.43.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.43.0 + '@rollup/rollup-linux-riscv64-gnu': 4.43.0 + '@rollup/rollup-linux-riscv64-musl': 4.43.0 + '@rollup/rollup-linux-s390x-gnu': 4.43.0 + '@rollup/rollup-linux-x64-gnu': 4.43.0 + '@rollup/rollup-linux-x64-musl': 4.43.0 + '@rollup/rollup-win32-arm64-msvc': 4.43.0 + '@rollup/rollup-win32-ia32-msvc': 4.43.0 + '@rollup/rollup-win32-x64-msvc': 4.43.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -3071,6 +3599,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -3087,7 +3619,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 tinypool@1.1.0: {} @@ -3118,18 +3650,18 @@ snapshots: typedoc@0.28.5(typescript@5.8.3): dependencies: - '@gerrit0/mini-shiki': 3.5.0 + '@gerrit0/mini-shiki': 3.6.0 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 typescript: 5.8.3 yaml: 2.8.0 - typescript-eslint@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: @@ -3145,7 +3677,7 @@ snapshots: dependencies: punycode: 2.3.1 - vite-node@3.2.1(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0): + vite-node@3.2.3(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 @@ -3169,10 +3701,10 @@ snapshots: vite@6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0): dependencies: esbuild: 0.25.5 - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - postcss: 8.5.4 - rollup: 4.41.1 + postcss: 8.5.5 + rollup: 4.43.0 tinyglobby: 0.2.14 optionalDependencies: fsevents: 2.3.3 @@ -3180,16 +3712,16 @@ snapshots: tsx: 4.19.2 yaml: 2.8.0 - vitest@3.2.1(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0): + vitest@3.2.3(@types/debug@4.1.12)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 - '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(vite@6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0)) - '@vitest/pretty-format': 3.2.1 - '@vitest/runner': 3.2.1 - '@vitest/snapshot': 3.2.1 - '@vitest/spy': 3.2.1 - '@vitest/utils': 3.2.1 + '@vitest/expect': 3.2.3 + '@vitest/mocker': 3.2.3(vite@6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0)) + '@vitest/pretty-format': 3.2.3 + '@vitest/runner': 3.2.3 + '@vitest/snapshot': 3.2.3 + '@vitest/spy': 3.2.3 + '@vitest/utils': 3.2.3 chai: 5.2.0 debug: 4.4.1 expect-type: 1.2.1 @@ -3203,7 +3735,7 @@ snapshots: tinypool: 1.1.0 tinyrainbow: 2.0.0 vite: 6.3.5(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) - vite-node: 3.2.1(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) + vite-node: 3.2.3(jiti@2.4.2)(tsx@4.19.2)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..400c807 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,31 @@ +ignoredBuiltDependencies: + - esbuild + +onlyBuiltDependencies: + - "@ast-grep/lang-angular" + - "@ast-grep/lang-bash" + - "@ast-grep/lang-c" + - "@ast-grep/lang-cpp" + - "@ast-grep/lang-csharp" + - "@ast-grep/lang-css" + - "@ast-grep/lang-dart" + - "@ast-grep/lang-elixir" + - "@ast-grep/lang-go" + - "@ast-grep/lang-haskell" + - "@ast-grep/lang-html" + - "@ast-grep/lang-java" + - "@ast-grep/lang-javascript" + - "@ast-grep/lang-json" + - "@ast-grep/lang-kotlin" + - "@ast-grep/lang-lua" + - "@ast-grep/lang-php" + - "@ast-grep/lang-python" + - "@ast-grep/lang-ruby" + - "@ast-grep/lang-rust" + - "@ast-grep/lang-scala" + - "@ast-grep/lang-sql" + - "@ast-grep/lang-swift" + - "@ast-grep/lang-toml" + - "@ast-grep/lang-tsx" + - "@ast-grep/lang-typescript" + - "@ast-grep/lang-yaml" diff --git a/src/index.test.ts b/src/index.test.ts deleted file mode 100644 index 7d82afc..0000000 --- a/src/index.test.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { test } from "vitest" -import * as index from "./index.ts" - -test("index", ({ expect }) => { - expect(index).toBeDefined() -}) diff --git a/src/index.ts b/src/index.ts index 0482264..3962071 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,2 @@ -/** - * If you are making a library, this is where you should export everything. - * Having a single entry point at `index.ts` gives you total control over what - * you export to the outside world. - * - * You can make the task easier by adding `index.ts` files in each folder - * specifying exactly what you want to expose and having the `index.ts` in the - * parent folders re-export everything from them. - * - * Reserve all `index.ts` files to the single task of exporting to the outside - * world. Do not declare anything in them. - * - * @module - */ - -export {} +export * from "./lang.ts" +export * from "./langs.ts" diff --git a/src/lang.test.ts b/src/lang.test.ts new file mode 100644 index 0000000..cb8ddb8 --- /dev/null +++ b/src/lang.test.ts @@ -0,0 +1,41 @@ +import { Lang as LangNapi } from "@ast-grep/napi" +import { describe, test } from "vitest" +import { Lang } from "./lang.ts" + +/** Languages supported in `@ast-grep/napi@0.33.1`. */ +const previous = Object.freeze({ + Html: "Html", + JavaScript: "JavaScript", + Tsx: "Tsx", + Css: "Css", + TypeScript: "TypeScript", + Bash: "Bash", + C: "C", + Cpp: "Cpp", + CSharp: "CSharp", + Go: "Go", + Elixir: "Elixir", + Haskell: "Haskell", + Java: "Java", + Json: "Json", + Kotlin: "Kotlin", + Lua: "Lua", + Php: "Php", + Python: "Python", + Ruby: "Ruby", + Rust: "Rust", + Scala: "Scala", + Sql: "Sql", + Swift: "Swift", + Yaml: "Yaml", +}) + +describe("Lang", () => { + test("The new enum is compatible with the old one", ({ expect }) => { + for (const lang of Object.values(previous)) expect(Lang[lang]).equal(lang) + }) + + test("The new enum is compatible with the built-in ones", ({ expect }) => { + for (const lang of Object.values(LangNapi)) expect(Lang[lang]).equal(lang) + }) +}) diff --git a/src/lang.ts b/src/lang.ts new file mode 100644 index 0000000..b711f94 --- /dev/null +++ b/src/lang.ts @@ -0,0 +1,37 @@ +/** + * An enum of all languages supported by `@ast-grep/langs`. + */ +export const Lang = { + Angular: "Angular", + Bash: "Bash", + C: "C", + Cpp: "Cpp", + CSharp: "CSharp", + Css: "Css", + Dart: "Dart", + Elixir: "Elixir", + Go: "Go", + Haskell: "Haskell", + Html: "Html", + Java: "Java", + JavaScript: "JavaScript", + Json: "Json", + Kotlin: "Kotlin", + Lua: "Lua", + Php: "Php", + Python: "Python", + Ruby: "Ruby", + Rust: "Rust", + Scala: "Scala", + Sql: "Sql", + Swift: "Swift", + Toml: "Toml", + Tsx: "Tsx", + TypeScript: "TypeScript", + Yaml: "Yaml", +} as const + +/** + * An enum of all languages supported by `@ast-grep/langs`. + */ +export type Lang = (typeof Lang)[keyof typeof Lang] diff --git a/src/langs.test.ts b/src/langs.test.ts new file mode 100644 index 0000000..f991090 --- /dev/null +++ b/src/langs.test.ts @@ -0,0 +1,33 @@ +import { parse, registerDynamicLanguage } from "@ast-grep/napi" +import { beforeAll, describe, test } from "vitest" +import { Lang } from "./lang.ts" +import { langs } from "./langs.ts" + +describe("langs", () => { + beforeAll(() => { + // @ts-expect-error Type `StaticLangRegistration` is missing the following + // properties from type `LangRegistration`: `libraryPath`, `extensions`. + registerDynamicLanguage(langs) + }) + + // A newly supported language + test(Lang.Dart, ({ expect }) => { + const sg = parse(Lang.Dart, 'var x = "Hello, world!";"') + const kind = sg.root().kind() + expect(kind).equal("program") + }) + + // A previously supported language + test(Lang.Go, ({ expect }) => { + const sg = parse(Lang.Go, 'x := "Hello, world!"') + const kind = sg.root().kind() + expect(kind).equal("source_file") + }) + + // A built-in language + test(Lang.TypeScript, ({ expect }) => { + const sg = parse(Lang.TypeScript, 'const x = "Hello, world!"') + const kind = sg.root().kind() + expect(kind).equal("program") + }) +}) diff --git a/src/langs.ts b/src/langs.ts new file mode 100644 index 0000000..c1d8551 --- /dev/null +++ b/src/langs.ts @@ -0,0 +1,125 @@ +import angular from "@ast-grep/lang-angular" +import bash from "@ast-grep/lang-bash" +import c from "@ast-grep/lang-c" +import cpp from "@ast-grep/lang-cpp" +import csharp from "@ast-grep/lang-csharp" +import css from "@ast-grep/lang-css" +import dart from "@ast-grep/lang-dart" +import elixir from "@ast-grep/lang-elixir" +import go from "@ast-grep/lang-go" +import haskell from "@ast-grep/lang-haskell" +import html from "@ast-grep/lang-html" +import java from "@ast-grep/lang-java" +import javascript from "@ast-grep/lang-javascript" +import json from "@ast-grep/lang-json" +import kotlin from "@ast-grep/lang-kotlin" +import lua from "@ast-grep/lang-lua" +import php from "@ast-grep/lang-php" +import python from "@ast-grep/lang-python" +import ruby from "@ast-grep/lang-ruby" +import rust from "@ast-grep/lang-rust" +import scala from "@ast-grep/lang-scala" +import sql from "@ast-grep/lang-sql" +import swift from "@ast-grep/lang-swift" +import toml from "@ast-grep/lang-toml" +import tsx from "@ast-grep/lang-tsx" +import typescript from "@ast-grep/lang-typescript" +import yaml from "@ast-grep/lang-yaml" +import type { LangRegistration } from "@ast-grep/napi/types/registerDynamicLang.js" +import { Lang } from "./lang.ts" + +type StaticLangRegistration = + | LangRegistration + | typeof angular + | typeof bash + | typeof c + | typeof cpp + | typeof csharp + | typeof css + | typeof dart + | typeof elixir + | typeof go + | typeof haskell + | typeof html + | typeof java + | typeof javascript + | typeof json + | typeof kotlin + | typeof lua + | typeof php + | typeof python + | typeof ruby + | typeof rust + | typeof scala + | typeof sql + | typeof swift + | typeof toml + | typeof tsx + | typeof typescript + | typeof yaml + +interface StaticLangRegistrations { + readonly Angular: typeof angular + readonly Bash: typeof bash + readonly C: typeof c + readonly Cpp: typeof cpp + readonly CSharp: typeof csharp + readonly Css: typeof css + readonly Dart: typeof dart + readonly Elixir: typeof elixir + readonly Go: typeof go + readonly Haskell: typeof haskell + readonly Html: typeof html + readonly Java: typeof java + readonly JavaScript: typeof javascript + readonly Json: typeof json + readonly Kotlin: typeof kotlin + readonly Lua: typeof lua + readonly Php: typeof php + readonly Python: typeof python + readonly Ruby: typeof ruby + readonly Rust: typeof rust + readonly Scala: typeof scala + readonly Sql: typeof sql + readonly Swift: typeof swift + readonly Toml: typeof toml + readonly Tsx: typeof tsx + readonly TypeScript: typeof typescript + readonly Yaml: typeof yaml + + /** To satisfy `DynamicLangRegistrations`. */ + [langName: string]: StaticLangRegistration +} + +/** + * Built-in dynamic languages supported by `@ast-grep/langs`. + */ +export const langs: StaticLangRegistrations = { + [Lang.Angular]: angular, + [Lang.Bash]: bash, + [Lang.C]: c, + [Lang.Cpp]: cpp, + [Lang.CSharp]: csharp, + [Lang.Css]: css, + [Lang.Dart]: dart, + [Lang.Elixir]: elixir, + [Lang.Go]: go, + [Lang.Haskell]: haskell, + [Lang.Html]: html, + [Lang.Java]: java, + [Lang.JavaScript]: javascript, + [Lang.Json]: json, + [Lang.Kotlin]: kotlin, + [Lang.Lua]: lua, + [Lang.Php]: php, + [Lang.Python]: python, + [Lang.Ruby]: ruby, + [Lang.Rust]: rust, + [Lang.Scala]: scala, + [Lang.Sql]: sql, + [Lang.Swift]: swift, + [Lang.Toml]: toml, + [Lang.Tsx]: tsx, + [Lang.TypeScript]: typescript, + [Lang.Yaml]: yaml, +} diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index 0da00ea..0000000 --- a/src/main.ts +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env node - -/** - * If you are making a command-line application, this should be the starting - * point. - * - * You can start the project in dev mode with `pnpm run dev` or in production - * mode with `pnpm run build && pnpm run start`. - * - * @module - */ - -console.log("Hello, world!") diff --git a/src/types/undici-types.d.ts b/src/types/undici-types.d.ts deleted file mode 100644 index fb12213..0000000 --- a/src/types/undici-types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module "undici-types" { - type Request = globalThis.Request -} From 2f39766461cd6d9ea6a97eb1952f5da583001fb2 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Thu, 12 Jun 2025 16:36:28 -0400 Subject: [PATCH 2/6] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20Add=20`readonly`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/langs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/langs.ts b/src/langs.ts index c1d8551..0e2639c 100644 --- a/src/langs.ts +++ b/src/langs.ts @@ -88,7 +88,7 @@ interface StaticLangRegistrations { readonly Yaml: typeof yaml /** To satisfy `DynamicLangRegistrations`. */ - [langName: string]: StaticLangRegistration + readonly [langName: string]: StaticLangRegistration } /** From 8479412aaefc5eb9ab0d1c56e295fa968e411d52 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Thu, 12 Jun 2025 16:37:21 -0400 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=93=9D=20Add=20installation=20and=20u?= =?UTF-8?q?sage=20to=20`README.md`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 9db5da3..d15864a 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,18 @@ [![Node.js CI](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml) [![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fcoderabbitai.github.io%2Fast-grep-langs%2Fcoverage%2Fcoverage-summary.json&query=total.branches.pct&suffix=%25&logo=vitest&label=coverage&color=acd268)](https://coderabbitai.github.io/ast-grep-langs/coverage) [![GitHub Pages](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml) [![Dependabot Updates](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates) ![CodeRabbit Reviews](https://img.shields.io/coderabbit/prs/github/coderabbitai/ast-grep-langs?utm_source=oss&utm_medium=github&utm_campaign=coderabbitai%2Fast-grep-langs&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews) Exports all first-party ast-grep languages + +## Installation + +```sh +pnpm i @coderabbitai/ast-grep-langs +``` + +## Usage + +```ts +import { registerDynamicLanguage } from "@ast-grep/napi" +import { langs } from "@coderabbitai/ast-grep-langs" + +registerDynamicLanguage(langs) +``` From 6e37bf6a68d2a07f91d624d50f23024a4a9f1b63 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Fri, 13 Jun 2025 13:26:47 -0400 Subject: [PATCH 4/6] =?UTF-8?q?=F0=9F=93=9D=20Update=20installation=20inst?= =?UTF-8?q?ructions=20in=20`README.md`=20to=20include=20`@ast-grep/napi`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d15864a..5155ce8 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Exports all first-party ast-grep languages ## Installation ```sh -pnpm i @coderabbitai/ast-grep-langs +pnpm i @coderabbitai/ast-grep-langs @ast-grep/napi ``` ## Usage From dd7a607f41190fa3152047c0c727e17c83199775 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Fri, 13 Jun 2025 13:27:04 -0400 Subject: [PATCH 5/6] =?UTF-8?q?=F0=9F=93=9D=20Add=20download=20badges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5155ce8..6c09e14 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# `@coderabbitai/ast-grep-langs` +# [`@coderabbitai/ast-grep-langs`](https://github.com/coderabbitai/ast-grep-langs) -[![Node.js CI](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml) [![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fcoderabbitai.github.io%2Fast-grep-langs%2Fcoverage%2Fcoverage-summary.json&query=total.branches.pct&suffix=%25&logo=vitest&label=coverage&color=acd268)](https://coderabbitai.github.io/ast-grep-langs/coverage) [![GitHub Pages](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml) [![Dependabot Updates](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates) ![CodeRabbit Reviews](https://img.shields.io/coderabbit/prs/github/coderabbitai/ast-grep-langs?utm_source=oss&utm_medium=github&utm_campaign=coderabbitai%2Fast-grep-langs&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews) +[![Node.js CI](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/node.js.yaml) [![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fcoderabbitai.github.io%2Fast-grep-langs%2Fcoverage%2Fcoverage-summary.json&query=total.branches.pct&suffix=%25&logo=vitest&label=coverage&color=acd268)](https://coderabbitai.github.io/ast-grep-langs/coverage) [![GitHub Pages](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/github-pages.yaml) [![Dependabot Updates](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/coderabbitai/ast-grep-langs/actions/workflows/dependabot/dependabot-updates) ![CodeRabbit Reviews](https://img.shields.io/coderabbit/prs/github/coderabbitai/ast-grep-langs?utm_source=oss&utm_medium=github&utm_campaign=coderabbitai%2Fast-grep-langs&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews) [![GitHub Downloads](https://img.shields.io/github/downloads/coderabbitai/ast-grep-langs/total?logo=github&color=0969da)](https://github.com/coderabbitai/ast-grep-langs/releases) [![NPM Downloads](https://img.shields.io/npm/dt/%40coderabbitai/ast-grep-langs?logo=npm&color=CB3837)](https://www.npmjs.com/package/@coderabbitai/ast-grep-langs) Exports all first-party ast-grep languages From e5ab28c1942b450e813c5355e7d0e9a21465a7d1 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Fri, 13 Jun 2025 13:31:47 -0400 Subject: [PATCH 6/6] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Fix=20typo=20in=20Dart?= =?UTF-8?q?=20test=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/langs.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/langs.test.ts b/src/langs.test.ts index f991090..60d1423 100644 --- a/src/langs.test.ts +++ b/src/langs.test.ts @@ -12,7 +12,7 @@ describe("langs", () => { // A newly supported language test(Lang.Dart, ({ expect }) => { - const sg = parse(Lang.Dart, 'var x = "Hello, world!";"') + const sg = parse(Lang.Dart, 'var x = "Hello, world!";') const kind = sg.root().kind() expect(kind).equal("program") })