diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index ba128b1..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [yoavbls, kevinramharak] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 5930898..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "" -labels: bug -assignees: "" ---- - -### **Describe the bug** - -A clear and concise description of what the bug is. - -### **Expected behavior** - -A clear and concise description of what you expected to happen. - -### **Original error** - -If this bug is related to an error that is not formatting well, please -attach the original error in a code block: - -``` -Type 'number' is not assignable to type 'string'.ts(2322) -``` - -### **Logs** - -Add the logs to help debugging what went wrong. See [these instructions](https://github.com/yoavbls/pretty-ts-errors/blob/main/docs/vscode-logs.md) on how to find and export the logs. - -Either add it as an external file or put them in between these `
` tags below:
-
-
-Logs -

-
-
-
- -### **Screenshots** - -If applicable, add screenshots to help explain your problem. diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml deleted file mode 100644 index 013ea1f..0000000 --- a/.github/workflows/pr-ci.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: PR CI - -on: - workflow_dispatch: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - -permissions: - contents: read - -concurrency: - group: pr-ci-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - validate: - name: Install, Build, and Test - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - - - name: Install dependencies - run: npm install - - - name: Install VSCE CLI - run: npm install -g @vscode/vsce - - - name: Check formatting - run: npm run format:check - - - name: Build all workspaces - run: npm run build - - - name: Run formatter tests - run: npm -w @pretty-ts-errors/formatter run test -- --reporter=verbose - - - name: Run VS Code formatter tests - run: npm -w @pretty-ts-errors/vscode-formatter run test -- --reporter=verbose - - - name: Run VS Code extension tests - run: xvfb-run -a npm --workspace apps/vscode-extension run test diff --git a/.gitignore b/.gitignore index bebf105..f1eab89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,18 @@ out dist node_modules +.pnpm +.nx .vscode-test/ *.vsix -.turbo .vercel .idea **/.DS_Store tsconfig.tsbuildinfo coverage +artifacts/vsix +tmp +.cache +.cache/ +**/.cache/ +*.tsbuildinfo \ No newline at end of file diff --git a/.nxignore b/.nxignore new file mode 100644 index 0000000..3aa5d21 --- /dev/null +++ b/.nxignore @@ -0,0 +1,2 @@ +tmp/** +examples/** diff --git a/.vscode/launch.json b/.vscode/launch.json index 5d133de..b8772da 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,10 +13,9 @@ "--extensionDevelopmentPath=${workspaceFolder}/apps/vscode-extension" ], "outFiles": [ - "${workspaceFolder}/apps/vscode-extension/dist/**/*.js", - "${workspaceFolder}/apps/vscode-extension/out/**/*.js" + "${workspaceFolder}/apps/vscode-extension/dist/**/*.js" ], - "preLaunchTask": "watch - apps/vscode-extension" + "preLaunchTask": "watch - pretty-ts-errors" }, { "name": "Run Extension (all extensions disabled)", @@ -27,10 +26,9 @@ "--extensionDevelopmentPath=${workspaceFolder}/apps/vscode-extension" ], "outFiles": [ - "${workspaceFolder}/apps/vscode-extension/dist/**/*.js", - "${workspaceFolder}/apps/vscode-extension/out/**/*.js" + "${workspaceFolder}/apps/vscode-extension/dist/**/*.js" ], - "preLaunchTask": "watch - apps/vscode-extension" + "preLaunchTask": "watch - pretty-ts-errors" }, { "name": "Extension Tests", diff --git a/.vscode/settings.json b/.vscode/settings.json index 5a88a8e..46ab493 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,7 +8,7 @@ "out": true, // set this to false to include "out" folder in search results "dist": true // set this to false to include "dist" folder in search results }, - // Turn off tsc task auto detection since we have the necessary tasks as npm scripts + // Turn off tsc task auto detection since the workspace uses explicit Nx tasks. "typescript.tsc.autoDetect": "off", "chat.tools.terminal.autoApprove": { "npx vitest": true diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 38a2281..ad88a18 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,31 +4,20 @@ "version": "2.0.0", "tasks": [ { - "label": "watch - apps/vscode-extension", + "label": "watch - pretty-ts-errors", "type": "shell", - "command": "npm run watch --silent", + "command": "pnpm exec nx run pretty-ts-errors:dev", "options": { - "cwd": "${workspaceFolder}/apps/vscode-extension" + "cwd": "${workspaceFolder}" }, "problemMatcher": { "owner": "esbuild", "fileLocation": "autoDetect", - "pattern": [ - { - "regexp": "^✘ \\[ERROR\\] (.*)$", - "message": 1 - }, - { - "regexp": "^\\s*(.*):(\\d+):(\\d+):$", - "file": 1, - "line": 2, - "column": 3 - } - ], + "pattern": [], "background": { "activeOnStart": true, - "beginsPattern": "^\\[watch\\] build started$", - "endsPattern": "^\\[watch\\] build finished$" + "beginsPattern": "^> nx run pretty-ts-errors:dev$", + "endsPattern": "^\\[ watch \\] build succeeded, watching for changes\\.\\.\\.$" } }, "isBackground": true, @@ -42,9 +31,12 @@ } }, { - "type": "npm", - "script": "watch-tests", - "path": "apps/vscode-extension", + "label": "watch-tests - pretty-ts-errors", + "type": "shell", + "command": "pnpm exec nx run pretty-ts-errors:watch-tests", + "options": { + "cwd": "${workspaceFolder}" + }, "problemMatcher": "$tsc-watch", "isBackground": true, "presentation": { @@ -55,7 +47,10 @@ }, { "label": "tasks: watch-tests", - "dependsOn": ["watch - apps/vscode-extension", "npm: watch-tests"], + "dependsOn": [ + "watch - pretty-ts-errors", + "watch-tests - pretty-ts-errors" + ], "problemMatcher": [] } ] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 3984d29..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,134 +0,0 @@ -# Contributing to Pretty TypeScript Errors - -First off, thanks for taking the time to contribute! - -All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. - -And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: - -- Vote on the [open issues](https://github.com/yoavbls/pretty-ts-errors/discussions/43) at `microsoft/vscode` to allow for new and better features -- Star the project -- Share it on social media -- Mention the project at local meetups and tell your friends/colleagues -- Check the [`help wanted`](https://github.com/yoavbls/pretty-ts-errors/issues?q=state%3Aopen%20label%3A%22help%20wanted%22) label to see if you can help out - -## Table of contents - -- [I Have a Question](#i-have-a-question) -- [Reporting Bugs](#reporting-bugs) -- [Requesting Enhancements & Features](#enhancements-and-features) -- [Set up Local Dev Environment](#set-up-local-dev-environment) -- [Contributing to the Source Code](#contributing-to-the-source-code) -- [Attribution](#attribution) - -## I Have a Question - -Search in the [issues](https://github.com/yoavbls/pretty-ts-errors/issues) and [discussions](https://github.com/yoavbls/pretty-ts-errors/discussions) before you create a new one. If your question is not answered feel free to create a [new discussion](https://github.com/yoavbls/pretty-ts-errors/discussions/new/choose). If it concerns a bug consider writing [a bug report](https://github.com/yoavbls/pretty-ts-errors/issues/new?template=bug_report.md). - -## Reporting Bugs - -Search the [open issues](https://github.com/yoavbls/pretty-ts-errors/issues) before adding your own bug report. If none exists create a [new isse](https://github.com/yoavbls/pretty-ts-errors/issues/new?template=bug_report.md) by using the `Bug Report` template. - -Try and add enough information to allow others to reproduce the error, if possible provide code samples or a link to a repository. If a bug cannot be reproduced, it will decrease the odds of it being fixed. - -If the bug contains visual elements (like the hover feature), also provide a screenshot to help understand what goes wrong. - -## Requesting Enhancements & Features - -Search in the [issues](https://github.com/yoavbls/pretty-ts-errors/issues) and [discussions](https://github.com/yoavbls/pretty-ts-errors/discussions) and feel free to add your own comments to existing requests. - -If none exists create a [new discussion](https://github.com/yoavbls/pretty-ts-errors/discussions/new/choose) to dicuss the requested feature or enhancement. - -3 of the most requested enhancements and features are grouped in tracking issues: - -- [Tracking: Performance Issues](https://github.com/yoavbls/pretty-ts-errors/issues/139) -- [Tracking: Internationalization and localization](https://github.com/yoavbls/pretty-ts-errors/issues/144) -- [Tracking: IDE support / LSP implementation](https://github.com/yoavbls/pretty-ts-errors/issues/145) - -## Set up Local Dev Environment - -To setup your local environment clone the project and run `npm i` to install all dependencies like: - -```bash -git clone https://github.com/yoavbls/pretty-ts-errors.git -cd pretty-ts-errors -npm i -``` - -### Mono Repo & Turbo - -`pretty-ts-errors` uses a mono-repo setup to manage the different packages under a single git repository. To run parallel tasks in all packages [`turbo`](https://turborepo.dev/) is used. - -See the root `package.json` for the tasks that can be run. Check the package specific `package.json` to see what tasks can be run for that package. - -When developing it is the easiest to run the `dev` command in the root of the package: - -```bash -npm run dev -``` - -This will run the `dev` task in parallel for package of the project, thus immediatly propegating changes troughout the repo. For more info on the project architecture, read [`ARCHITECTURE.md`](./docs/ARCHITECTURE.md). For more info on debugging and testing see [this section](#debugging--testing). - -### Issues with Local Dev Setup - -If you have issues with setting up your local dev environment, feel free to create a [new discussion](https://github.com/yoavbls/pretty-ts-errors/discussions/new/choose) to ask for help. - -## Contributing to the Source Code - -If you are looking to contribute to the source code check the [issues](https://github.com/yoavbls/pretty-ts-errors/issues) for what to work on. The label [`good first issue`](https://github.com/yoavbls/pretty-ts-errors/issues?q=state:open%20label:%22good%20first%20issue%22) is a good place to start, and consider checking the [`help wanted`](https://github.com/yoavbls/pretty-ts-errors/issues?q=state%3Aopen%20label%3A%22help%20wanted%22) to see if you can contribute. You can also tinker with the code, but it is preferred to have an existing issue to link to before you open a PR. - -Keep in mind that there is a [Stability & Performance](https://code.visualstudio.com/api/advanced-topics/extension-host#stability-and-performance) impact when running extensions in VS Code, always keep in mind that the extension (code) should contribute to a users workflow, not diminish it. - -### Architecture - -See the [`ARCHITECTURE.md`](./docs/ARCHITECTURE.md) for more information about the project architecture. - -### Styleguide - -There is no specific styleguide to adhere to, besides the `eslint` and `prettier` commands that will lint and format the project. Try to keep the style similar to what already exists to keep the source code easier to read and maintain. Fundamental changes can always be discussed in PR's. - -### Debugging & Testing - -#### Debugging - -See the [`.vscode/launch.json`](.vscode/launch.json) for the available debug configurations. You can use the [VS Code debugger](https://code.visualstudio.com/docs/debugtest/debugging) (default `F5` key) to start a debugging sessions. It is recommended to use `Run Extension (all extensions disabled)` to improve startup time when iterating but only loading the default extesions. Use the `Run Extension` if you want to debug the extension with all your installed extensions enabled. - -> !NOTE -> Most Themes and Programming Languages require non-default extensions and will not load when running with `Run Extension (all extensions disabled)` - -When running either of these debug tasks the `watch` task of the `apps/vscode-extension` directory will be run in the background, no additional actions are required to debug the extension. - -There is a scaffolding setup for automated tests for the VS Code extension, but it is unused yet. - -The [`@pretty-ts-errors/formatter`](./packages/formatter/) does have some unit tests which uses [`vitest`](https://vitest.dev/) as a testing framework. - -When running the extension with the debugger there is a [`selectedTextHoverProvider`](./apps/vscode-extension/src/provider/selectedTextHoverProvider.ts) that allows for selecting text in the `test` directories and treat them as a typescript error message: -![example of the selected text hover provider](./docs/selected-text-hover-provider-example.png) - -#### Installing the packaged extension manually - -By running the `npm run build` command, the extension will be build in production mode and packaged as a `apps/vscode-extensions/pretty-ts-errors-{version}.vsix` file. These files can [be installed manually](https://code.visualstudio.com/docs/configure/extensions/extension-marketplace#_install-from-a-vsix) to install the build without having to use the marketplace. - -> !NOTE -> When running a manually installed `.vsix` file, the [`ExtensionMode`](https://code.visualstudio.com/api/references/vscode-api#ExtensionMode) will be set to `Production`. - -#### Testing - -To see the currently configured command to run tests, check the [`.github/workflows/pr-ci.yml`](./.github/workflows/pr-ci.yml). - -The packages in [`packages/`](./packages/) will use test runners to test package specific functionality. - -The [`apps/vscode-extension/`](./apps/vscode-extension/) is scaffolded to use the [VS Code testing utilities](https://code.visualstudio.com/api/working-with-extensions/testing-extension). - -### Documentation & Resources - -The documentation regarding `pretty-ts-errors` is found in the [`README.md`](./README.md), `CONTRIBUTING.md` or the [`docs`](./docs) directory. - -Some comments in the code can be found where specific behaviour or caveats are documented, like the caching mechanism or performance critical sections. - -The [Visual Studio Code Extension API documentation](https://code.visualstudio.com/api) is a good place to read about the extension API. -When external libraries are used, always check and read their respective documentation to ensure they are used properly. - -## Attribution - -This guide is based on the [`contributing.md`](https://contributing.md/example/). [Make your own](https://contributing.md/)! diff --git a/CONVENTIONS.md b/CONVENTIONS.md new file mode 100644 index 0000000..fb2d81b --- /dev/null +++ b/CONVENTIONS.md @@ -0,0 +1,20 @@ +# Conventions + +Diese Datei ist die workspace-weite TOC fuer verbindliche, dauerhaft geltende +Konventionen im Repository `pretty-ts-errors`. + +## Nutzung + +- Die Root-Datei `CONVENTIONS.md` bleibt bewusst kurz und fungiert nur als + Einstiegspunkt. +- Detailkonventionen liegen unter `docs/conventions/`. +- Jede Konvention in `docs/conventions/` beschreibt einen stabilen, + wiederverwendbaren Architektur- oder Implementierungsstandard und nicht nur + einen temporaeren Handoff-Stand. + +## Table Of Contents + +1. [`docs/conventions/diagnostic-rendering-surfaces.md`](docs/conventions/diagnostic-rendering-surfaces.md) + Verbindliche Architekturkonvention fuer Sidebar, nativen Hover, + Trust-Boundaries, Syntax-Highlighting, Typ-Formatierung und die Trennung von + host-owned Shell und generischem Diagnostic-Content. diff --git a/README.md b/README.md index 5bc2e9a..76b2e9e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ - + - - - Logo + + + Logo @@ -10,10 +10,10 @@ Make TypeScript errors prettier and human-readable in VSCode. -[![GitHub stars](https://img.shields.io/github/stars/yoavbls/pretty-ts-errors.svg?style=social&label=Star)](https://GitHub.com/yoavbls/pretty-ts-errors/stargazers/) -[![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7?logo=visualstudiocode&logoColor=white)](https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors) [![GitHub license](https://badgen.net/github/license/yoavbls/pretty-ts-errors)](https://github.com/yoavbls/pretty-ts-errors/blob/main/LICENSE) [![Visual Studio Code](https://img.shields.io/visual-studio-marketplace/i/yoavbls.pretty-ts-errors)](https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors) -Webstorm logo -[![Cursor](https://img.shields.io/badge/Cursor-000000?logo=cursor)](https://open-vsx.org/extension/yoavbls/pretty-ts-errors) +[![GitHub stars](https://img.shields.io/github/stars/CyberT33N/pretty-ts-errors.svg?style=social&label=Star)](https://GitHub.com/CyberT33N/pretty-ts-errors/stargazers/) +[![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7?logo=visualstudiocode&logoColor=white)](https://marketplace.visualstudio.com/items?itemName=CyberT33N.pretty-ts-errors) [![GitHub license](https://badgen.net/github/license/CyberT33N/pretty-ts-errors)](https://github.com/CyberT33N/pretty-ts-errors/blob/main/LICENSE) [![Visual Studio Code](https://img.shields.io/visual-studio-marketplace/i/CyberT33N.pretty-ts-errors)](https://marketplace.visualstudio.com/items?itemName=CyberT33N.pretty-ts-errors) +Webstorm logo +[![Cursor](https://img.shields.io/badge/Cursor-000000?logo=cursor)](https://open-vsx.org/extension/CyberT33N/pretty-ts-errors) TypeScript errors become messier as the complexity of types increases. At some point, TypeScript will throw on you a shitty heap of parentheses and `"..."`. This extension will help you understand what's going on. For example, in this relatively simple error: @@ -23,7 +23,7 @@ This extension will help you understand what's going on. For example, in this re ## Watch this - Watch theo's video + Watch theo's video and others from: @@ -37,7 +37,7 @@ and [more](https://www.youtube.com/playlist?list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c - Syntax highlighting with your theme colors for types in error messages, supporting both light and dark themes - A button that leads you to the relevant type declaration next to the type in the error message - A button that navigates you to the error at [typescript.tv](http://typescript.tv), where you can find a detailed explanation, sometimes with a video -- A button that navigates you to [ts-error-translator](https://ts-error-translator.vercel.app/), where you can read the error in plain English +- A local plain-English translation for supported TypeScript errors directly in the sidebar ## Supports @@ -50,10 +50,224 @@ and [more](https://www.youtube.com/playlist?list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c ## Installation ``` -code --install-extension yoavbls.pretty-ts-errors +code --install-extension CyberT33N.pretty-ts-errors ``` -Or simply by searching for `pretty-ts-errors` in the [VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors) +Or simply by searching for `pretty-ts-errors` in the [VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=CyberT33N.pretty-ts-errors) + +## Development with Nx + +This workspace is managed with `Nx` and `pnpm`. + +### Prerequisites + +```bash +pnpm install +pnpm exec nx show projects +``` + +Current Nx projects in this workspace: + +- `pretty-ts-errors` +- `@pretty-ts-errors/error-translator` +- `@pretty-ts-errors/vscode-formatter` +- `@pretty-ts-errors/formatter` +- `@pretty-ts-errors/utils` + +### Build the application + +Build the VS Code extension together with its dependent libraries: + +```bash +pnpm exec nx build pretty-ts-errors +``` + +Build the production bundle: + +```bash +pnpm exec nx build pretty-ts-errors --configuration=production +``` + +Package the production build as a `.vsix`: + +```bash +pnpm exec nx package pretty-ts-errors +``` + +### Run the application in watch mode + +```bash +pnpm exec nx dev pretty-ts-errors +``` + +Preview the standalone webview during development: + +```bash +pnpm exec nx webview pretty-ts-errors +``` + +### Typecheck, lint, and test the application + +```bash +pnpm exec nx typecheck pretty-ts-errors +pnpm exec nx lint pretty-ts-errors +pnpm exec nx test pretty-ts-errors +``` + +Compile the extension test suite only: + +```bash +pnpm exec nx run pretty-ts-errors:compile-tests +``` + +Watch the extension test TypeScript compilation: + +```bash +pnpm exec nx run pretty-ts-errors:watch-tests +``` + +### Error translator package + +Validate the checked-in TypeScript diagnostic contract data: + +```bash +pnpm exec nx run @pretty-ts-errors/error-translator:validate-contract-data +``` + +Refresh the full translator contract data after a deliberate TypeScript upgrade: + +```bash +pnpm exec nx run @pretty-ts-errors/error-translator:refresh-contract-data +``` + +Refresh only the diagnostic matcher database: + +```bash +pnpm exec nx run @pretty-ts-errors/error-translator:refresh-diagnostics-db +``` + +Rebuild only the bundled translation data: + +```bash +pnpm exec nx run @pretty-ts-errors/error-translator:bundle-data +``` + +Build, lint, and test the translator package: + +```bash +pnpm exec nx build @pretty-ts-errors/error-translator +pnpm exec nx lint @pretty-ts-errors/error-translator +pnpm exec nx test @pretty-ts-errors/error-translator +``` + +### Shared packages + +Build the shared packages individually: + +```bash +pnpm exec nx build @pretty-ts-errors/utils +pnpm exec nx build @pretty-ts-errors/formatter +pnpm exec nx build @pretty-ts-errors/vscode-formatter +pnpm exec nx build @pretty-ts-errors/error-translator +``` + +Run the package watch builds: + +```bash +pnpm exec nx dev @pretty-ts-errors/utils +pnpm exec nx dev @pretty-ts-errors/formatter +pnpm exec nx dev @pretty-ts-errors/vscode-formatter +``` + +Typecheck the shared packages: + +```bash +pnpm exec nx typecheck @pretty-ts-errors/utils +pnpm exec nx typecheck @pretty-ts-errors/formatter +pnpm exec nx typecheck @pretty-ts-errors/vscode-formatter +pnpm exec nx typecheck @pretty-ts-errors/error-translator +pnpm exec nx typecheck pretty-ts-errors +``` + +Lint the shared packages: + +```bash +pnpm exec nx lint @pretty-ts-errors/utils +pnpm exec nx lint @pretty-ts-errors/formatter +pnpm exec nx lint @pretty-ts-errors/vscode-formatter +pnpm exec nx lint @pretty-ts-errors/error-translator +pnpm exec nx lint pretty-ts-errors +``` + +Run the library test suites: + +```bash +pnpm exec nx test @pretty-ts-errors/formatter +pnpm exec nx test @pretty-ts-errors/vscode-formatter +pnpm exec nx test @pretty-ts-errors/error-translator +``` + +Watch the library tests: + +```bash +pnpm exec nx test @pretty-ts-errors/formatter --watch +pnpm exec nx test @pretty-ts-errors/vscode-formatter --watch +``` + +Run the library coverage targets: + +```bash +pnpm exec nx test @pretty-ts-errors/formatter --coverage +pnpm exec nx test @pretty-ts-errors/vscode-formatter --coverage +``` + +Preview and publish the public libraries: + +```bash +pnpm exec nx release --dry-run +pnpm exec nx release publish +``` + +### Workspace commands + +Format the whole workspace: + +```bash +pnpm exec nx format:write --all +``` + +Check formatting without writing changes: + +```bash +pnpm exec nx format:check --all +``` + +Synchronize Nx project references: + +```bash +pnpm exec nx sync +pnpm exec nx sync:check +``` + +### Useful run-many examples + +Build all packages and the application in one command: + +```bash +pnpm exec nx run-many -t build --projects=@pretty-ts-errors/utils,@pretty-ts-errors/formatter,@pretty-ts-errors/error-translator,@pretty-ts-errors/vscode-formatter,pretty-ts-errors +``` + +Run all currently defined test targets in one command: + +```bash +pnpm exec nx run-many -t test --projects=@pretty-ts-errors/formatter,@pretty-ts-errors/error-translator,@pretty-ts-errors/vscode-formatter,pretty-ts-errors +``` + +Run all current lint targets in one command: + +```bash +pnpm exec nx run-many -t lint --projects=@pretty-ts-errors/utils,@pretty-ts-errors/formatter,@pretty-ts-errors/error-translator,@pretty-ts-errors/vscode-formatter,pretty-ts-errors +``` #### How to hide the original errors and make the types copyable @@ -71,28 +285,28 @@ Follow the instructions [there](./docs/hide-original-errors.md). unfortunately, - Winning the Productivity Booster category at JSNation 2023 + Winning the Productivity Booster category at JSNation 2023 - - - Tanner's tweet + + + Tanner's tweet - - - Theo's tweet + + + Theo's tweet - - - Johnson's tweet + + + Johnson's tweet @@ -142,5 +356,5 @@ on things that I can't be doing myself like adding support to the extension for ## Contribution -Help by upvoting or commenting on issues we need to be resolved [here](https://github.com/yoavbls/pretty-ts-errors/discussions/43) +Help by upvoting or commenting on issues we need to be resolved [here](https://github.com/CyberT33N/pretty-ts-errors/discussions/43) Any other contribution is welcome. Feel free to open any issue / PR you think. diff --git a/apps/vscode-extension/.vscodeignore b/apps/vscode-extension/.vscodeignore new file mode 100644 index 0000000..784f179 --- /dev/null +++ b/apps/vscode-extension/.vscodeignore @@ -0,0 +1,11 @@ +src/** +out/** +coverage/** +test/** +node_modules/** +.pnpm/** +scripts/** +project.json +tsconfig.json +*.tsbuildinfo +vitest.config.* diff --git a/apps/vscode-extension/package.json b/apps/vscode-extension/package.json index 20afed8..699e8da 100644 --- a/apps/vscode-extension/package.json +++ b/apps/vscode-extension/package.json @@ -1,18 +1,19 @@ { "name": "pretty-ts-errors", - "displayName": "Pretty TypeScript Errors", - "publisher": "YoavBls", + "displayName": "Pretty TypeScript Errors [Secured]", + "type": "module", + "publisher": "CyberT33N", "description": "Make TypeScript errors prettier and more human-readable in VSCode", - "version": "0.8.7", + "version": "1.5.0", "icon": "assets/icon.png", "repository": { "type": "git", - "url": "https://github.com/yoavbls/pretty-ts-errors", + "url": "https://github.com/CyberT33N/pretty-ts-errors", "directory": "apps/vscode-extension" }, - "homepage": "https://github.com/yoavbls/pretty-ts-errors", + "homepage": "https://github.com/CyberT33N/pretty-ts-errors", "engines": { - "vscode": "^1.77.0" + "vscode": "^1.105.1" }, "extensionKind": [ "ui", @@ -44,20 +45,12 @@ "onLanguage:glimmer-ts" ], "main": "./dist/extension.js", - "browser": "./dist/extension.js", - "files": [ - "dist/**/*", - "assets/**/*", - "syntaxes/**/*", - "webview/**/*", - "LICENSE" - ], "contributes": { "viewsContainers": { "activitybar": [ { "id": "prettyTsErrors", - "title": "Pretty TypeScript Errors", + "title": "Pretty TypeScript Errors [Secured]", "icon": "./assets/ribbon.svg" } ] @@ -76,26 +69,26 @@ { "command": "prettyTsErrors.revealSelection", "title": "Reveal the given selection", - "category": "Pretty TS Errors", + "category": "Pretty TypeScript Errors [Secured]", "enablement": "!isCommandPanel" }, { "command": "prettyTsErrors.showErrorInSidebar", "title": "Show Error in Sidebar", - "category": "Pretty TS Errors", + "category": "Pretty TypeScript Errors [Secured]", "icon": "./assets/ribbon.svg", "enablement": "!isCommandPanel" }, { "command": "prettyTsErrors.pinError", "title": "Pin Error", - "category": "Pretty TS Errors", + "category": "Pretty TypeScript Errors [Secured]", "enablement": "!isCommandPanel" }, { "command": "prettyTsErrors.unpinError", "title": "Unpin Error", - "category": "Pretty TS Errors", + "category": "Pretty TypeScript Errors [Secured]", "enablement": "!isCommandPanel" } ], @@ -124,42 +117,25 @@ } ] }, - "scripts": { - "vscode:prepublish": "cp ../../README.md README.md && npm run package", - "compile": "node scripts/build", - "watch": "npm run compile -- --watch", - "dev": "npm-run-all --parallel _dev:*", - "_dev:ext": "npm run watch", - "_dev:formatter": "npm run -w @pretty-ts-errors/formatter dev", - "_dev:vscode-formatter": "npm run -w @pretty-ts-errors/vscode-formatter dev", - "build": "vsce package", - "package": "node scripts/build -- --production", - "compile-tests": "tsc -p . --outDir out", - "watch-tests": "tsc -p . -w --outDir out", - "pretest": "npm run compile-tests && npm run compile && npm run lint", - "lint": "tsc -p . --noEmit", - "test": "node ./out/test/runTest.js", - "webview": "npx http-server ./webview -o -a localhost -p 8080" - }, "devDependencies": { - "@shikijs/types": "^3.13.0", - "@types/mocha": "^10.0.10", - "@types/node": "^16.11.68", - "@types/vscode": "^1.77.0", - "@types/vscode-webview": "^1.57.5", - "@vscode/codicons": "^0.0.41", - "@vscode/test-electron": "^2.5.2", - "esbuild": "^0.28.1", - "glob": "^13.0.6", - "mocha": "12.0.0-beta-10", - "npm-run-all": "^4.1.5" + "@shikijs/types": "catalog:", + "@types/mocha": "catalog:", + "@types/node": "catalog:", + "@types/vscode": "catalog:", + "@types/vscode-webview": "catalog:", + "@vscode/codicons": "catalog:", + "@vscode/vsce": "catalog:", + "@vscode/test-electron": "catalog:", + "esbuild": "catalog:", + "glob": "catalog:", + "mocha": "catalog:", + "yaml": "catalog:" }, "dependencies": { - "@pretty-ts-errors/formatter": "*", - "@pretty-ts-errors/utils": "*", - "@pretty-ts-errors/vscode-formatter": "*", - "shiki": "^3.13.0", - "vscode-languageclient": "^9.0.1", - "vscode-shiki-bridge": "^0.5.2" + "@pretty-ts-errors/error-translator": "workspace:*", + "@pretty-ts-errors/formatter": "workspace:*", + "@pretty-ts-errors/utils": "workspace:*", + "shiki": "catalog:", + "vscode-languageclient": "catalog:" } } diff --git a/apps/vscode-extension/project.json b/apps/vscode-extension/project.json new file mode 100644 index 0000000..73e6621 --- /dev/null +++ b/apps/vscode-extension/project.json @@ -0,0 +1,122 @@ +{ + "name": "pretty-ts-errors", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "apps/vscode-extension/src", + "projectType": "application", + "tags": ["scope:apps", "type:application", "runtime:embedded"], + "targets": { + "build": { + "executor": "@nx/esbuild:esbuild", + "outputs": ["{workspaceRoot}/apps/vscode-extension/dist"], + "options": { + "main": "apps/vscode-extension/src/extension.ts", + "outputPath": "apps/vscode-extension/dist", + "tsConfig": "apps/vscode-extension/tsconfig.app.json", + "bundle": true, + "declaration": false, + "platform": "node", + "format": ["esm"], + "target": "esnext", + "external": ["vscode"], + "sourcemap": true, + "minify": false, + "skipTypeCheck": false, + "thirdParty": true, + "esbuildOptions": { + "inject": ["apps/vscode-extension/scripts/process-shim.js"], + "mainFields": ["module", "main"], + "banner": { + "js": "import { createRequire as __prettyTsErrorsCreateRequire } from 'node:module'; const require = __prettyTsErrorsCreateRequire(import.meta.url);" + } + } + }, + "configurations": { + "production": { + "sourcemap": false, + "minify": true, + "esbuildOptions": { + "inject": ["apps/vscode-extension/scripts/process-shim.js"], + "mainFields": ["module", "main"], + "banner": { + "js": "import { createRequire as __prettyTsErrorsCreateRequire } from 'node:module'; const require = __prettyTsErrorsCreateRequire(import.meta.url);" + }, + "define": { + "process.env.NODE_ENV": "\"production\"" + } + } + } + } + }, + "dev": { + "executor": "@nx/esbuild:esbuild", + "cache": false, + "continuous": true, + "options": { + "main": "apps/vscode-extension/src/extension.ts", + "outputPath": "apps/vscode-extension/dist", + "tsConfig": "apps/vscode-extension/tsconfig.app.json", + "bundle": true, + "declaration": false, + "platform": "node", + "format": ["esm"], + "target": "esnext", + "external": ["vscode"], + "sourcemap": true, + "minify": false, + "watch": true, + "skipTypeCheck": false, + "thirdParty": true, + "esbuildOptions": { + "inject": ["apps/vscode-extension/scripts/process-shim.js"], + "mainFields": ["module", "main"], + "banner": { + "js": "import { createRequire as __prettyTsErrorsCreateRequire } from 'node:module'; const require = __prettyTsErrorsCreateRequire(import.meta.url);" + }, + "define": { + "process.env.NODE_ENV": "\"development\"" + } + } + } + }, + "test": { + "executor": "nx:run-commands", + "cache": false, + "options": { + "cwd": "apps/vscode-extension", + "command": "pnpm exec tsc -p tsconfig.test.json && node ./out/test/runTest.js" + } + }, + "compile-tests": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/vscode-extension", + "command": "pnpm exec tsc -p tsconfig.test.json" + } + }, + "watch-tests": { + "executor": "nx:run-commands", + "cache": false, + "continuous": true, + "options": { + "cwd": "apps/vscode-extension", + "command": "pnpm exec tsc -p tsconfig.test.json -w" + } + }, + "package": { + "executor": "nx:run-commands", + "options": { + "command": "pnpm exec nx run pretty-ts-errors:typecheck && pnpm exec nx run pretty-ts-errors:build:production && node apps/vscode-extension/scripts/package-vsix.mjs" + } + }, + "webview": { + "executor": "@nx/web:file-server", + "cache": false, + "continuous": true, + "options": { + "host": "localhost", + "port": 8080, + "staticFilePath": "apps/vscode-extension/webview" + } + } + } +} diff --git a/apps/vscode-extension/scripts/build.js b/apps/vscode-extension/scripts/build.js deleted file mode 100644 index 26050bb..0000000 --- a/apps/vscode-extension/scripts/build.js +++ /dev/null @@ -1,91 +0,0 @@ -const process = require("node:process"); -const console = require("node:console"); -const fs = require("node:fs"); -const path = require("node:path"); -const production = process.argv.includes("--production"); -const watch = process.argv.includes("--watch"); - -/** - * @see https://code.visualstudio.com/api/working-with-extensions/bundling-extension#using-esbuild - */ -async function main() { - const ctx = await require("esbuild").context({ - entryPoints: { - extension: "./src/extension.ts", - }, - bundle: true, - outdir: "./dist", - external: ["vscode"], - format: "cjs", - inject: ["./scripts/process-shim.js"], - tsconfig: "./tsconfig.json", - define: production ? { "process.env.NODE_ENV": '"production"' } : undefined, - minify: production, - sourcemap: !production, - plugins: [workspacePackagesPlugin, esbuildProblemMatcherPlugin], - }); - if (watch) { - await ctx.watch(); - } else { - fs.rmSync("./dist", { recursive: true, force: true }); - await ctx.rebuild(); - await ctx.dispose(); - } -} - -/** - * @type {import('esbuild').Plugin} - */ -const esbuildProblemMatcherPlugin = { - name: "esbuild-problem-matcher", - setup(build) { - build.onStart(() => { - console.log("[watch] build started"); - }); - build.onEnd((result) => { - result.errors.forEach(({ text, location }) => { - console.error(`✘ [ERROR] ${text}`); - console.error( - ` ${location.file}:${location.line}:${location.column}:` - ); - }); - console.log("[watch] build finished"); - }); - }, -}; - -/** - * Resolve internal workspace packages to their source files so we bundle them in watch/debug. - * This makes changes in packages/* reflected immediately without separate watchers. - * @type {import('esbuild').Plugin} - */ -const workspacePackagesPlugin = { - name: "workspace-packages", - setup(build) { - const pkgRoot = path.resolve(__dirname, "../../../packages"); - /** @type {Record} */ - const alias = { - "@pretty-ts-errors/utils": path.join(pkgRoot, "utils/src/index.ts"), - "@pretty-ts-errors/formatter": path.join( - pkgRoot, - "formatter/src/index.ts" - ), - "@pretty-ts-errors/vscode-formatter": path.join( - pkgRoot, - "vscode-formatter/src/index.ts" - ), - }; - build.onResolve( - { filter: /^@pretty-ts-errors\/(utils|formatter|vscode-formatter)$/ }, - (args) => { - const target = alias[args.path]; - return target ? { path: target } : undefined; - } - ); - }, -}; - -main().catch((e) => { - console.error(e); - process.exit(1); -}); diff --git a/apps/vscode-extension/scripts/package-vsix.mjs b/apps/vscode-extension/scripts/package-vsix.mjs new file mode 100644 index 0000000..11fb07a --- /dev/null +++ b/apps/vscode-extension/scripts/package-vsix.mjs @@ -0,0 +1,172 @@ +import { spawnSync } from "node:child_process"; +import { constants as fsConstants } from "node:fs"; +import { access, cp, mkdtemp, mkdir, readFile, rm, symlink, writeFile } from "node:fs/promises"; +import { createRequire } from "node:module"; +import os from "node:os"; +import path from "node:path"; +import process from "node:process"; +import { fileURLToPath } from "node:url"; +import { parse as parseYaml } from "yaml"; + +const require = createRequire(import.meta.url); + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const appRoot = path.resolve(scriptDir, ".."); +const workspaceRoot = path.resolve(appRoot, "../.."); +const distDir = path.join(appRoot, "dist"); +const manifestPath = path.join(appRoot, "package.json"); +const workspacePolicyPath = path.join(workspaceRoot, "pnpm-workspace.yaml"); +const artifactsDir = path.join(workspaceRoot, "artifacts", "vsix"); + +async function pathExists(targetPath) { + try { + await access(targetPath, fsConstants.F_OK); + return true; + } catch { + return false; + } +} + +function materializeCatalogSpecifiers(dependencyMap, catalog) { + if (dependencyMap === undefined) { + return undefined; + } + + const materialized = {}; + + for (const [packageName, specifier] of Object.entries(dependencyMap)) { + if (specifier === "catalog:") { + const catalogVersion = catalog[packageName]; + if (typeof catalogVersion !== "string" && typeof catalogVersion !== "number") { + throw new Error( + `Missing exact catalog version for ${packageName} in pnpm-workspace.yaml` + ); + } + materialized[packageName] = String(catalogVersion); + continue; + } + + if (specifier.startsWith("workspace:")) { + continue; + } + + materialized[packageName] = specifier; + } + + return Object.keys(materialized).length > 0 ? materialized : undefined; +} + +async function copyIfPresent(sourcePath, destinationPath) { + if (await pathExists(sourcePath)) { + await cp(sourcePath, destinationPath, { recursive: true, force: true }); + } +} + +async function main() { + if (!(await pathExists(distDir))) { + throw new Error("Extension bundle is missing. Run the production build before packaging."); + } + + const manifest = JSON.parse(await readFile(manifestPath, "utf8")); + const workspacePolicy = parseYaml(await readFile(workspacePolicyPath, "utf8")); + const catalog = workspacePolicy.catalog ?? {}; + + const stagedManifest = structuredClone(manifest); + stagedManifest.dependencies = materializeCatalogSpecifiers( + manifest.dependencies, + catalog + ); + delete stagedManifest.devDependencies; + delete stagedManifest.browser; + + const stageDir = await mkdtemp( + path.join(os.tmpdir(), "pretty-ts-errors-vsix-stage-") + ); + + try { + await mkdir(artifactsDir, { recursive: true }); + + await cp(distDir, path.join(stageDir, "dist"), { + recursive: true, + force: true, + }); + + await copyIfPresent( + path.join(appRoot, "assets"), + path.join(stageDir, "assets") + ); + await copyIfPresent( + path.join(appRoot, "syntaxes"), + path.join(stageDir, "syntaxes") + ); + await copyIfPresent( + path.join(appRoot, "webview"), + path.join(stageDir, "webview") + ); + await copyIfPresent( + path.join(appRoot, ".vscodeignore"), + path.join(stageDir, ".vscodeignore") + ); + await copyIfPresent( + path.join(workspaceRoot, "README.md"), + path.join(stageDir, "README.md") + ); + await copyIfPresent( + path.join(workspaceRoot, "LICENSE"), + path.join(stageDir, "LICENSE") + ); + await copyIfPresent( + path.join(workspaceRoot, "CHANGELOG.md"), + path.join(stageDir, "CHANGELOG.md") + ); + + await writeFile( + path.join(stageDir, "package.json"), + `${JSON.stringify(stagedManifest, null, 2)}\n`, + "utf8" + ); + + const vscePackageRoot = path.dirname( + require.resolve("@vscode/vsce/package.json") + ); + const vsceDependencyRoot = path.resolve(vscePackageRoot, "..", ".."); + const vsceCliPath = require.resolve("@vscode/vsce/vsce"); + + await symlink( + vsceDependencyRoot, + path.join(stageDir, "node_modules"), + process.platform === "win32" ? "junction" : "dir" + ); + + const outputFile = path.join( + artifactsDir, + `${manifest.name}-${manifest.version}.vsix` + ); + + const result = spawnSync( + process.execPath, + [vsceCliPath, "package", "--no-dependencies", "--out", outputFile], + { + cwd: stageDir, + env: { + ...process.env, + NODE_PATH: vsceDependencyRoot, + }, + stdio: "inherit", + } + ); + + if (result.status !== 0) { + throw new Error( + `VSIX packaging failed with exit code ${result.status ?? "unknown"}` + ); + } + } finally { + await rm(stageDir, { recursive: true, force: true }); + } +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/apps/vscode-extension/src/commands/pinError.ts b/apps/vscode-extension/src/commands/pinError.ts index b621ab7..6808c2d 100644 --- a/apps/vscode-extension/src/commands/pinError.ts +++ b/apps/vscode-extension/src/commands/pinError.ts @@ -1,7 +1,8 @@ import { commands, type ExtensionContext } from "vscode"; import { execute } from "./execute"; -import { tryEnsureRange } from "./validate"; +import { tryEnsureRange, tryEnsureUri } from "./validate"; import { getViewProvider } from "../provider/webviewViewProvider"; +import { logger } from "../logger"; const COMMAND_ID = "prettyTsErrors.pinError"; @@ -9,23 +10,59 @@ export function registerPinError(context: ExtensionContext) { context.subscriptions.push( commands.registerCommand( COMMAND_ID, - async (maybeRangeLike: unknown, maybeMessage?: unknown) => + async ( + maybeUriOrRangeLike: unknown, + maybeRangeOrMessage?: unknown, + maybeMessage?: unknown, + ) => execute(COMMAND_ID, async () => { - const { isValidRange, range } = tryEnsureRange(maybeRangeLike); - if (!isValidRange) { + const uriResult = tryEnsureUri(maybeUriOrRangeLike); + const explicitRangeResult = tryEnsureRange(maybeRangeOrMessage); + const fallbackRangeResult = tryEnsureRange(maybeUriOrRangeLike); + const explicitMessage = + typeof maybeMessage === "string" ? maybeMessage : undefined; + const fallbackMessage = + typeof maybeRangeOrMessage === "string" + ? maybeRangeOrMessage + : undefined; + + const viewProvider = getViewProvider(); + + if (uriResult.isValidUri && explicitRangeResult.isValidRange) { + logger.debug( + `pinning diagnostic for ${uriResult.uri.toString(true)} at ${explicitRangeResult.range.start.line}:${explicitRangeResult.range.start.character}` + ); + await viewProvider?.pinDiagnostic( + uriResult.uri, + explicitRangeResult.range, + explicitMessage, + ); + } else if (fallbackRangeResult.isValidRange) { + logger.warn( + "pinError was invoked without a document uri; falling back to the active editor." + ); + await viewProvider?.pinDiagnostic( + undefined, + fallbackRangeResult.range, + fallbackMessage, + ); + } else { throw new Error("cannot pin error with an invalid range", { - cause: maybeRangeLike, + cause: maybeUriOrRangeLike, }); } - const message = - typeof maybeMessage === "string" ? maybeMessage : undefined; - const viewProvider = getViewProvider(); - await viewProvider?.pinDiagnostic(range, message); + try { + await commands.executeCommand("workbench.view.extension.prettyTsErrors"); + } catch (error) { + logger.warn("failed to open the prettyTsErrors view container", error); + } try { await commands.executeCommand("prettyTsErrors.sidePanel.focus"); - } catch {} + } catch (error) { + logger.warn("failed to focus the prettyTsErrors side panel", error); + } }) ) ); diff --git a/apps/vscode-extension/src/commands/showErrorInSidebar.ts b/apps/vscode-extension/src/commands/showErrorInSidebar.ts index 360dd1c..7b17b0a 100644 --- a/apps/vscode-extension/src/commands/showErrorInSidebar.ts +++ b/apps/vscode-extension/src/commands/showErrorInSidebar.ts @@ -1,7 +1,8 @@ import { commands, type ExtensionContext } from "vscode"; import { execute } from "./execute"; -import { tryEnsureRange } from "./validate"; +import { tryEnsureRange, tryEnsureUri } from "./validate"; import { getViewProvider } from "../provider/webviewViewProvider"; +import { logger } from "../logger"; const COMMAND_ID = "prettyTsErrors.showErrorInSidebar"; @@ -9,21 +10,60 @@ export function registerShowErrorInSidebar(context: ExtensionContext) { context.subscriptions.push( commands.registerCommand( COMMAND_ID, - async (maybeRangeLike?: unknown, maybeMessage?: unknown) => + async ( + maybeUriOrRangeLike?: unknown, + maybeRangeOrMessage?: unknown, + maybeMessage?: unknown, + ) => execute(COMMAND_ID, async () => { - if (maybeRangeLike !== undefined) { - const { isValidRange, range } = tryEnsureRange(maybeRangeLike); - const message = - typeof maybeMessage === "string" ? maybeMessage : undefined; - const viewProvider = getViewProvider(); - if (isValidRange && viewProvider) { - await viewProvider.lockToDiagnostic(range, message); - } + const uriResult = tryEnsureUri(maybeUriOrRangeLike); + const explicitRangeResult = tryEnsureRange(maybeRangeOrMessage); + const fallbackRangeResult = tryEnsureRange(maybeUriOrRangeLike); + + const explicitMessage = + typeof maybeMessage === "string" ? maybeMessage : undefined; + const fallbackMessage = + typeof maybeRangeOrMessage === "string" + ? maybeRangeOrMessage + : undefined; + + const viewProvider = getViewProvider(); + + if (uriResult.isValidUri && explicitRangeResult.isValidRange) { + logger.debug( + `showing diagnostic in sidebar for ${uriResult.uri.toString(true)} at ${explicitRangeResult.range.start.line}:${explicitRangeResult.range.start.character}` + ); + await viewProvider?.lockToDiagnostic( + uriResult.uri, + explicitRangeResult.range, + explicitMessage, + ); + } else if (fallbackRangeResult.isValidRange) { + logger.warn( + "showErrorInSidebar was invoked without a document uri; falling back to the active editor." + ); + await viewProvider?.lockToDiagnostic( + undefined, + fallbackRangeResult.range, + fallbackMessage, + ); + } else { + logger.warn( + "showErrorInSidebar received no valid diagnostic target arguments." + ); + } + + try { + await commands.executeCommand("workbench.view.extension.prettyTsErrors"); + } catch (error) { + logger.warn("failed to open the prettyTsErrors view container", error); } try { await commands.executeCommand("prettyTsErrors.sidePanel.focus"); - } catch {} + } catch (error) { + logger.warn("failed to focus the prettyTsErrors side panel", error); + } }) ) ); diff --git a/apps/vscode-extension/src/commands/validate.ts b/apps/vscode-extension/src/commands/validate.ts index df8c468..9042166 100644 --- a/apps/vscode-extension/src/commands/validate.ts +++ b/apps/vscode-extension/src/commands/validate.ts @@ -52,7 +52,10 @@ export function tryEnsureRange( return { isValidRange: false }; } -type RangeLike = { start: PositionLike; end: PositionLike }; +interface RangeLike { + start: PositionLike; + end: PositionLike; +} function isRangeLike(value: unknown): value is RangeLike { return ( @@ -65,7 +68,10 @@ function isRangeLike(value: unknown): value is RangeLike { ); } -type PositionLike = { line: number; character: number }; +interface PositionLike { + line: number; + character: number; +} function isPositionLike(value: unknown): value is PositionLike { return ( diff --git a/apps/vscode-extension/src/diagnosticRichContent.ts b/apps/vscode-extension/src/diagnosticRichContent.ts new file mode 100644 index 0000000..76bab3c --- /dev/null +++ b/apps/vscode-extension/src/diagnosticRichContent.ts @@ -0,0 +1,317 @@ +import { translateDiagnosticMessage } from "@pretty-ts-errors/error-translator"; + +export interface DiagnosticTextNode { + kind: "text"; + text: string; +} + +export interface DiagnosticInlineCodeNode { + kind: "inlineCode"; + text: string; +} + +export interface DiagnosticLinkNode { + kind: "link"; + href: string; + label: string; +} + +export type DiagnosticInlineNode = + | DiagnosticTextNode + | DiagnosticInlineCodeNode + | DiagnosticLinkNode; + +export interface DiagnosticParagraphNode { + kind: "paragraph"; + lines: DiagnosticInlineNode[][]; +} + +export interface DiagnosticCodeBlockNode { + kind: "codeBlock"; + code: string; + language: string | null; +} + +export interface DiagnosticTypeBlockNode { + kind: "typeBlock"; + code: string; + language: string | null; +} + +export interface DiagnosticListNode { + kind: "list"; + items: DiagnosticInlineNode[][]; +} + +export interface DiagnosticPropertyListNode { + kind: "propertyList"; + items: string[]; +} + +export type DiagnosticBlockNode = + | DiagnosticParagraphNode + | DiagnosticCodeBlockNode + | DiagnosticTypeBlockNode + | DiagnosticListNode + | DiagnosticPropertyListNode; + +export interface DiagnosticTranslationContentModel { + blocks: DiagnosticBlockNode[]; + code: number; + rawError: string; +} + +export interface DiagnosticRichContentModel { + body: DiagnosticBlockNode[]; + title: string; + translations: DiagnosticTranslationContentModel[]; +} + +const fencedCodeBlockPattern = + /((?:`{3,})[^\n]*\n[\s\S]*?\n(?:`{3,}))/gu; +const inlineTokenPattern = + /\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)|(`+)([\s\S]*?)\3/gu; +const propertyLikeItemPattern = /^[#\w.$:[\]"'-]+$/u; + +function normalizeLineEndings(value: string): string { + return value.replace(/\r\n?/gu, "\n"); +} + +function isTypeBlockLanguage(language: string | null): boolean { + return language === "type" || language === "ts" || language === "typescript"; +} + +function createInlineCodeFence(code: string): string { + const longestBacktickRun = Math.max( + 0, + ...Array.from(code.matchAll(/`+/gu), (match) => match[0].length), + ); + const fence = "`".repeat(longestBacktickRun + 1); + const needsPadding = code.startsWith("`") || code.endsWith("`"); + const content = needsPadding ? ` ${code} ` : code; + return `${fence}${content}${fence}`; +} + +function createFencedCodeBlock(code: string, language: string | null): string { + const fence = code.includes("```") ? "````" : "```"; + const infoString = language ?? ""; + return `${fence}${infoString}\n${code}\n${fence}`; +} + +function normalizeInlineCodeText(text: string): string { + if ( + text.length >= 2 && + text.startsWith(" ") && + text.endsWith(" ") && + /[^\s]/u.test(text) + ) { + return text.slice(1, -1); + } + + return text; +} + +function parseInlineNodes(text: string): DiagnosticInlineNode[] { + const nodes: DiagnosticInlineNode[] = []; + let lastIndex = 0; + + for (const match of text.matchAll(inlineTokenPattern)) { + const matchIndex = match.index ?? 0; + if (matchIndex > lastIndex) { + nodes.push({ + kind: "text", + text: text.slice(lastIndex, matchIndex), + }); + } + + const linkLabel = match[1]; + const linkHref = match[2]; + const codeText = match[4]; + if (typeof linkLabel === "string" && typeof linkHref === "string") { + nodes.push({ + kind: "link", + href: linkHref, + label: linkLabel, + }); + } else if (typeof codeText === "string") { + nodes.push({ + kind: "inlineCode", + text: normalizeInlineCodeText(codeText), + }); + } + + lastIndex = matchIndex + match[0].length; + } + + const suffix = text.slice(lastIndex); + if (suffix.length > 0) { + nodes.push({ + kind: "text", + text: suffix, + }); + } + + if (nodes.length === 0) { + return [ + { + kind: "text", + text, + }, + ]; + } + + return nodes; +} + +function parseListItems(lines: string[]): string[] { + return lines.map((line) => line.replace(/^[-*]\s+/u, "")); +} + +function isBulletList(lines: string[]): boolean { + return ( + lines.length > 0 && + lines.every((line) => line.trim().length > 0 && /^[-*]\s+/u.test(line)) + ); +} + +function isPropertyList(items: string[]): boolean { + return items.every((item) => propertyLikeItemPattern.test(item)); +} + +function parseMarkdownParagraph(paragraph: string): DiagnosticBlockNode { + const lines = paragraph + .split("\n") + .map((line) => line.replace(/\s+$/u, "")) + .filter((line) => line.length > 0); + + if (isBulletList(lines)) { + const items = parseListItems(lines); + if (isPropertyList(items)) { + return { + kind: "propertyList", + items, + }; + } + + return { + kind: "list", + items: items.map((item) => parseInlineNodes(item)), + }; + } + + return { + kind: "paragraph", + lines: lines.map((line) => parseInlineNodes(line)), + }; +} + +export function parseMarkdownToDiagnosticBlocks( + markdown: string, +): DiagnosticBlockNode[] { + const normalized = normalizeLineEndings(markdown).trim(); + if (normalized.length === 0) { + return []; + } + + const blocks: DiagnosticBlockNode[] = []; + const tokens = normalized.split(fencedCodeBlockPattern).filter(Boolean); + + tokens.forEach((token) => { + const fenceMatch = + /^(?`{3,})(?[^\n]*)\n(?[\s\S]*?)\n\k$/u.exec( + token, + ); + if (fenceMatch?.groups) { + const languageValue = (fenceMatch.groups["language"] ?? "").trim(); + const language = languageValue.length > 0 ? languageValue : null; + const code = fenceMatch.groups["code"] ?? ""; + + blocks.push( + isTypeBlockLanguage(language) + ? { + kind: "typeBlock", + code, + language, + } + : { + kind: "codeBlock", + code, + language, + }, + ); + return; + } + + const paragraphs = token + .split(/\n{2,}/u) + .map((paragraph) => paragraph.trim()) + .filter((paragraph) => paragraph.length > 0); + + paragraphs.forEach((paragraph) => { + blocks.push(parseMarkdownParagraph(paragraph)); + }); + }); + + return blocks; +} + +function renderInlineNodesToMarkdown(nodes: DiagnosticInlineNode[]): string { + return nodes + .map((node) => { + switch (node.kind) { + case "text": + return node.text; + case "inlineCode": + return createInlineCodeFence(node.text); + case "link": + return `[${node.label}](${node.href})`; + } + }) + .join(""); +} + +export function renderDiagnosticBlocksToMarkdown( + blocks: DiagnosticBlockNode[], +): string { + return blocks + .map((block) => { + switch (block.kind) { + case "paragraph": + return block.lines + .map((line) => renderInlineNodesToMarkdown(line)) + .join("\n"); + case "codeBlock": + case "typeBlock": + return createFencedCodeBlock(block.code, block.language); + case "list": + return block.items + .map((item) => `- ${renderInlineNodesToMarkdown(item)}`) + .join("\n"); + case "propertyList": + return block.items.map((item) => `- ${item}`).join("\n"); + } + }) + .join("\n\n"); +} + +function buildTitle(code: string | number | undefined): string { + return typeof code === "number" ? `Error (TS${code})` : "Error"; +} + +export function createDiagnosticRichContentModel( + code: string | number | undefined, + message: string, + bodyMarkdown: string, +): DiagnosticRichContentModel { + return { + body: parseMarkdownToDiagnosticBlocks(bodyMarkdown), + title: buildTitle(code), + translations: translateDiagnosticMessage(message).map((translation) => { + return { + blocks: parseMarkdownToDiagnosticBlocks(translation.body), + code: translation.code, + rawError: translation.rawError, + }; + }), + }; +} diff --git a/apps/vscode-extension/src/diagnostics.ts b/apps/vscode-extension/src/diagnostics.ts index 023b957..d92902c 100644 --- a/apps/vscode-extension/src/diagnostics.ts +++ b/apps/vscode-extension/src/diagnostics.ts @@ -1,79 +1,99 @@ import { has } from "@pretty-ts-errors/utils"; -import { prettifyDiagnosticForHover } from "@pretty-ts-errors/vscode-formatter"; import { ExtensionContext, languages, MarkdownString, - window, Uri, type Diagnostic, } from "vscode"; -import { - createConverter, - type Converter, -} from "vscode-languageclient/lib/common/codeConverter"; +import { SUPPORTED_DIAGNOSTIC_SOURCES } from "./supportedDiagnosticSources"; +import { SUPPORTED_LANGUAGE_IDS } from "./supportedLanguageIds"; +import { createDiagnosticRichContentModel } from "./diagnosticRichContent"; import { hoverProvider } from "./provider/hoverProvider"; import { formattedDiagnosticsStore, type FormattedDiagnostic, } from "./formattedDiagnosticsStore"; import { logger } from "./logger"; -import { enabledCommands } from "./commands/enabledCommands"; - -/** - * The list of diagnostic sources that pretty-ts-errors supports - */ -const supportedDiagnosticSources = [ - "ts", - "ts-plugin", - "deno-ts", - "js", - "glint", -]; +import { toLspDiagnostic } from "./lspDiagnostic"; +import { + buildPrettyDiagnosticMessageMarkdown, + createHoverContents, +} from "./hoverContent"; export function registerOnDidChangeDiagnostics(context: ExtensionContext) { - const converter = createConverter(); + logger.debug("registering diagnostic change listener"); + void syncCurrentDiagnostics(); + context.subscriptions.push( languages.onDidChangeDiagnostics(async (e) => { await logger.measure("onDidChangeDiagnostics", async () => { for (const uri of e.uris) { - await logger.measure( - `diagnostics for: ${uri.toString(true)}`, - async () => { - const diagnostics = languages.getDiagnostics(uri); - const supportedDiagnostics = diagnostics.filter( - (diagnostic) => - diagnostic.source && - has(supportedDiagnosticSources, diagnostic.source) - ); - - const items: FormattedDiagnostic[] = await Promise.all( - supportedDiagnostics.map((diagnostic) => - getFormattedDiagnostic(diagnostic, converter) - ) - ); - - if (items.length === 0) { - logger.trace( - `no diagnostics for ${uri.toString(true)}, removing from store` - ); - formattedDiagnosticsStore.delete(uri.fsPath); - } else { - logger.trace( - `storing ${items.length} formatted diagnostics for ${uri.toString(true)}` - ); - formattedDiagnosticsStore.set(uri.fsPath, items); - } - - if (items.length > 0) { - ensureHoverProviderIsRegistered(uri, context); - } - } - ); + await updateDiagnosticsForUri(uri); } }); }) ); + + registerHoverProviders(context); +} + +function registerHoverProviders(context: ExtensionContext) { + logger.debug( + `registering hover providers for ${SUPPORTED_LANGUAGE_IDS.length} supported language ids` + ); + + for (const languageId of SUPPORTED_LANGUAGE_IDS) { + logger.trace(`registering hover provider for language id: ${languageId}`); + context.subscriptions.push( + languages.registerHoverProvider( + { + language: languageId, + }, + hoverProvider + ) + ); + } +} + +async function syncCurrentDiagnostics() { + const diagnosticsByUri = languages.getDiagnostics(); + logger.debug( + `syncing current diagnostics for ${diagnosticsByUri.length} known document(s)` + ); + + for (const [uri] of diagnosticsByUri) { + await updateDiagnosticsForUri(uri); + } +} + +async function updateDiagnosticsForUri(uri: Uri) { + await logger.measure(`diagnostics for: ${uri.toString(true)}`, async () => { + const diagnostics = languages.getDiagnostics(uri); + const supportedDiagnostics = diagnostics.filter( + (diagnostic) => + diagnostic.source && + has(SUPPORTED_DIAGNOSTIC_SOURCES, diagnostic.source) + ); + + logger.trace( + `found ${diagnostics.length} total diagnostics and ${supportedDiagnostics.length} supported diagnostics for ${uri.toString(true)}` + ); + + const items: FormattedDiagnostic[] = await Promise.all( + supportedDiagnostics.map((diagnostic) => getFormattedDiagnostic(uri, diagnostic)) + ); + + if (items.length === 0) { + logger.trace(`no diagnostics for ${uri.toString(true)}, removing from store`); + formattedDiagnosticsStore.delete(uri.fsPath); + } else { + logger.trace( + `storing ${items.length} formatted diagnostics for ${uri.toString(true)}` + ); + formattedDiagnosticsStore.set(uri.fsPath, items); + } + }); } /** @@ -84,72 +104,63 @@ export function registerOnDidChangeDiagnostics(context: ExtensionContext) { const CACHE_SIZE_MAX = 100; /** - * A local cache that maps TS diagnostics as `string` to their formatted `MarkdownString` counter part. - * @see https://github.com/yoavbls/pretty-ts-errors/pull/62 + * A local cache keyed by diagnostic identity so noisy re-emits do not rebuild hover markdown. + * @see https://github.com/CyberT33N/pretty-ts-errors/pull/62 * * One reason this cache is critical is because the TypeScript Language Features extension is very noisy and will constantly push all diagnostics for a file, * even if there were no actual changes. - * @see https://github.com/yoavbls/pretty-ts-errors/issues/139#issuecomment-3401279357 + * @see https://github.com/CyberT33N/pretty-ts-errors/issues/139#issuecomment-3401279357 * * TODO: create a proper LRU cache, to prevent exceeding the cache size being a bottleneck - * @see https://github.com/yoavbls/pretty-ts-errors/issues/104 + * @see https://github.com/CyberT33N/pretty-ts-errors/issues/104 */ -const cache = new Map(); +const cache = new Map(); async function getFormattedDiagnostic( - diagnostic: Diagnostic, - converter: Converter + uri: Uri, + diagnostic: Diagnostic ): Promise { - // formatDiagnosticForHover converts message based on LSP Diagnostic type, not VSCode Diagnostic type, so it can be used in other IDEs. - // Here we convert VSCode Diagnostic to LSP Diagnostic to make formatDiagnosticForHover recognize it. - const lspDiagnostic = converter.asDiagnostic(diagnostic); + // The formatter consumes LSP diagnostics, so keep the VS Code -> LSP conversion as a local first-party boundary. + const lspDiagnostic = toLspDiagnostic(diagnostic); + const cacheKey = JSON.stringify({ + code: lspDiagnostic.code ?? null, + message: diagnostic.message, + range: lspDiagnostic.range, + uri: uri.toString(), + }); - let formattedMessage = cache.get(diagnostic.message); - if (!formattedMessage) { - const formattedDiagnostic = await prettifyDiagnosticForHover(lspDiagnostic); - const markdownString = new MarkdownString(formattedDiagnostic); - - markdownString.isTrusted = { enabledCommands }; - markdownString.supportHtml = true; - - formattedMessage = markdownString; + let formattedMessages = cache.get(cacheKey); + const bodyMarkdown = await buildPrettyDiagnosticMessageMarkdown(diagnostic.message); + const layout = createDiagnosticRichContentModel( + lspDiagnostic.code, + diagnostic.message, + bodyMarkdown, + ); + if (formattedMessages === undefined) { + logger.trace(`cache miss for diagnostic ${cacheKey}`); + formattedMessages = await createHoverContents(lspDiagnostic, { + bodyMarkdown, + documentUri: uri.toString(), + layout, + }); if (cache.size > CACHE_SIZE_MAX) { const firstCacheKey = cache.keys().next().value!; cache.delete(firstCacheKey); } - cache.set(diagnostic.message, formattedMessage); + cache.set(cacheKey, formattedMessages); + } else { + logger.trace(`cache hit for diagnostic ${cacheKey}`); } + const contents = formattedMessages; + return { + bodyMarkdown, + documentUri: uri, + layout, range: diagnostic.range, - contents: [formattedMessage], + contents, lspDiagnostic, }; } -/** - * A set to prevent registering duplicate hover providers. - */ -const registeredLanguages = new Set(); - -/** - * Ensure a hover provider is registered for any visible editors where pretty-ts-errors has a formatted diagnostic - */ -function ensureHoverProviderIsRegistered(uri: Uri, context: ExtensionContext) { - const editor = window.visibleTextEditors.find( - (editor) => editor.document.uri.toString() === uri.toString() - ); - const languageId = editor?.document.languageId; - if (languageId && !registeredLanguages.has(languageId)) { - logger.debug(`registering hover provider for language id: ${languageId}`); - registeredLanguages.add(languageId); - context.subscriptions.push( - languages.registerHoverProvider( - { - language: languageId, - }, - hoverProvider - ) - ); - } -} diff --git a/apps/vscode-extension/src/formattedDiagnosticsStore.ts b/apps/vscode-extension/src/formattedDiagnosticsStore.ts index fae5aa3..3198f0a 100644 --- a/apps/vscode-extension/src/formattedDiagnosticsStore.ts +++ b/apps/vscode-extension/src/formattedDiagnosticsStore.ts @@ -1,13 +1,17 @@ import { MarkdownString, Range, Uri } from "vscode"; -import type { Diagnostic } from "vscode-languageserver-types"; +import type { DiagnosticRichContentModel } from "./diagnosticRichContent"; +import type { PrettyTsLspDiagnostic } from "./lspDiagnostic"; type StoreKey = Uri["fsPath"]; export interface FormattedDiagnostic { + bodyMarkdown: string; + documentUri: Uri; + layout: DiagnosticRichContentModel; range: Range; contents: MarkdownString[]; /** Original LSP diagnostic for on-demand sidebar formatting */ - lspDiagnostic: Diagnostic; + lspDiagnostic: PrettyTsLspDiagnostic; } /** diff --git a/apps/vscode-extension/src/hoverContent.ts b/apps/vscode-extension/src/hoverContent.ts new file mode 100644 index 0000000..7719c76 --- /dev/null +++ b/apps/vscode-extension/src/hoverContent.ts @@ -0,0 +1,190 @@ +import { + createErrorMessagePrettifier, + type CodeBlockFn, +} from "@pretty-ts-errors/formatter"; +import { MarkdownString } from "vscode"; +import { enabledCommands } from "./commands/enabledCommands"; +import { + createDiagnosticRichContentModel, + renderDiagnosticBlocksToMarkdown, + type DiagnosticRichContentModel, +} from "./diagnosticRichContent"; +import type { PrettyTsLspDiagnostic } from "./lspDiagnostic"; + +function encodeCommandArgs(args: unknown[]): string { + return encodeURIComponent(JSON.stringify(args)); +} + +function buildCommandUri(command: string, args: unknown[]): string { + return `command:${command}?${encodeCommandArgs(args)}`; +} + +function toCommandRange(range: PrettyTsLspDiagnostic["range"]) { + return { + start: { + line: range.start.line, + character: range.start.character, + }, + end: { + line: range.end.line, + character: range.end.character, + }, + }; +} + +function buildRevealLink(diagnostic: PrettyTsLspDiagnostic): string | null { + const related = diagnostic.relatedInformation?.[0]; + if ( + related === undefined || + !related.message.includes("is declared here") + ) { + return null; + } + + const args = [ + related.location.uri, + related.location.range, + ]; + + return `[Go to Symbol](${buildCommandUri( + "prettyTsErrors.revealSelection", + args, + )})`; +} + +const markdownCodeBlock: CodeBlockFn = (code, language, multiLine) => { + const trimmedCode = code.trim(); + if (multiLine) { + return `\n${createFencedCodeBlock(trimmedCode, language)}\n`; + } + + return createInlineCodeBlock(trimmedCode); +}; + +const prettifyDiagnosticBody = createErrorMessagePrettifier(markdownCodeBlock); + +function createInlineCodeBlock(code: string): string { + const fence = code.includes("``") ? "```" : code.includes("`") ? "``" : "`"; + return `${fence}${code}${fence}`; +} + +function createFencedCodeBlock(code: string, language?: string): string { + const fence = code.includes("```") ? "````" : "```"; + const infoString = language === undefined ? "" : language; + return `${fence}${infoString}\n${code}\n${fence}`; +} + +function normalizeFormatterOutput(markdown: string): string { + return markdown.replace(/
    ((?:
  • [\s\S]*?<\/li>)+)<\/ul>/gu, (_match, items) => { + const listItems = Array.from( + items.matchAll(/
  • ([\s\S]*?)<\/li>/gu), + ([, content]) => `- ${content}`, + ); + return `\n${listItems.join("\n")}\n`; + }); +} + +export async function buildPrettyDiagnosticMessageMarkdown( + message: string, +): Promise { + return normalizeFormatterOutput(await prettifyDiagnosticBody(message)); +} + +async function createBodyMarkdown( + diagnostic: PrettyTsLspDiagnostic, + layout?: DiagnosticRichContentModel, + bodyMarkdown?: string, + debugHeader?: string, +): Promise { + const markdown = new MarkdownString(); + const content = + layout ?? + createDiagnosticRichContentModel( + diagnostic.code, + diagnostic.message, + bodyMarkdown ?? (await buildPrettyDiagnosticMessageMarkdown(diagnostic.message)), + ); + + if (debugHeader !== undefined) { + markdown.appendMarkdown(`${debugHeader}\n\n`); + } + + markdown.appendMarkdown(`**${content.title}**\n\n`); + markdown.appendMarkdown(renderDiagnosticBlocksToMarkdown(content.body)); + + if (content.translations.length > 0) { + markdown.appendMarkdown("\n\n**Local explanation**"); + content.translations.forEach((translation) => { + markdown.appendMarkdown(`\n\n**TS${translation.code}**\n\n`); + if ( + content.translations.length > 1 || + translation.rawError !== diagnostic.message + ) { + markdown.appendCodeblock(translation.rawError, "txt"); + } + markdown.appendMarkdown( + `\n${renderDiagnosticBlocksToMarkdown(translation.blocks)}\n`, + ); + }); + } + + markdown.supportHtml = false; + return markdown; +} + +function createActionsMarkdown( + diagnostic: PrettyTsLspDiagnostic, + documentUri?: string, +): MarkdownString { + const range = toCommandRange(diagnostic.range); + const links = [ + `[Show in Sidebar](${buildCommandUri( + "prettyTsErrors.showErrorInSidebar", + documentUri === undefined + ? [range, diagnostic.message] + : [documentUri, range, diagnostic.message], + )})`, + `[Pin](${buildCommandUri("prettyTsErrors.pinError", [ + ...(documentUri === undefined ? [] : [documentUri]), + range, + diagnostic.message, + ])})`, + `[Copy](${buildCommandUri("prettyTsErrors.copyError", [diagnostic.message])})`, + ]; + + const revealLink = buildRevealLink(diagnostic); + if (revealLink !== null) { + links.push(revealLink); + } + + if (typeof diagnostic.code === "number") { + links.push( + `[TS${diagnostic.code} Docs](https://typescript.tv/errors/ts${diagnostic.code})`, + ); + } + + const markdown = new MarkdownString(links.join(" | ")); + markdown.isTrusted = { enabledCommands }; + markdown.supportHtml = false; + return markdown; +} + +export async function createHoverContents( + diagnostic: PrettyTsLspDiagnostic, + options?: { + bodyMarkdown?: string; + debugHeader?: string; + documentUri?: string; + layout?: DiagnosticRichContentModel; + }, +): Promise { + return [ + await createBodyMarkdown( + diagnostic, + options?.layout, + options?.bodyMarkdown, + options?.debugHeader, + ), + createActionsMarkdown(diagnostic, options?.documentUri), + ]; +} diff --git a/apps/vscode-extension/src/logger.ts b/apps/vscode-extension/src/logger.ts index a8acbb0..e98e0a5 100644 --- a/apps/vscode-extension/src/logger.ts +++ b/apps/vscode-extension/src/logger.ts @@ -12,7 +12,7 @@ function getLogger(): LogOutputChannel { if (instance !== null) { return instance; } - instance = window.createOutputChannel("Pretty TypeScript Errors", { + instance = window.createOutputChannel("Pretty TypeScript Errors [Secured]", { log: true, }); return instance; diff --git a/apps/vscode-extension/src/lspDiagnostic.ts b/apps/vscode-extension/src/lspDiagnostic.ts new file mode 100644 index 0000000..2907ee1 --- /dev/null +++ b/apps/vscode-extension/src/lspDiagnostic.ts @@ -0,0 +1,121 @@ +import { + DiagnosticSeverity, + DiagnosticTag, + Location, + type Diagnostic, + type DiagnosticRelatedInformation, + type Position, + type Range, +} from "vscode-languageclient"; +import { + Diagnostic as VsCodeDiagnostic, + DiagnosticRelatedInformation as VsCodeDiagnosticRelatedInformation, + DiagnosticSeverity as VsCodeDiagnosticSeverity, + DiagnosticTag as VsCodeDiagnosticTag, + type Position as VsCodePosition, + type Range as VsCodeRange, +} from "vscode"; + +function toLspPosition(position: VsCodePosition): Position { + return { + line: position.line, + character: position.character, + }; +} + +function toLspRange(range: VsCodeRange): Range { + return { + start: toLspPosition(range.start), + end: toLspPosition(range.end), + }; +} + +function toLspSeverity( + severity: VsCodeDiagnosticSeverity | undefined +): DiagnosticSeverity | undefined { + switch (severity) { + case VsCodeDiagnosticSeverity.Error: + return DiagnosticSeverity.Error; + case VsCodeDiagnosticSeverity.Warning: + return DiagnosticSeverity.Warning; + case VsCodeDiagnosticSeverity.Information: + return DiagnosticSeverity.Information; + case VsCodeDiagnosticSeverity.Hint: + return DiagnosticSeverity.Hint; + default: + return undefined; + } +} + +function toLspTag(tag: VsCodeDiagnosticTag): DiagnosticTag | undefined { + switch (tag) { + case VsCodeDiagnosticTag.Deprecated: + return DiagnosticTag.Deprecated; + case VsCodeDiagnosticTag.Unnecessary: + return DiagnosticTag.Unnecessary; + default: + return undefined; + } +} + +function toLspRelatedInformation( + relatedInformation: VsCodeDiagnosticRelatedInformation +): DiagnosticRelatedInformation { + return { + location: Location.create( + relatedInformation.location.uri.toString(), + toLspRange(relatedInformation.location.range) + ), + message: relatedInformation.message, + }; +} + +export interface PrettyTsLspDiagnostic extends Diagnostic { + message: string; +} + +export function toLspDiagnostic( + diagnostic: VsCodeDiagnostic +): PrettyTsLspDiagnostic { + const tags = (diagnostic.tags ?? []) + .map((tag) => toLspTag(tag)) + .filter((tag): tag is DiagnosticTag => tag !== undefined); + + const lspDiagnostic: PrettyTsLspDiagnostic = { + range: toLspRange(diagnostic.range), + message: diagnostic.message, + }; + + const severity = toLspSeverity(diagnostic.severity); + if (severity !== undefined) { + lspDiagnostic.severity = severity; + } + + if (diagnostic.source !== undefined) { + lspDiagnostic.source = diagnostic.source; + } + + if ( + typeof diagnostic.code === "string" || + typeof diagnostic.code === "number" + ) { + lspDiagnostic.code = diagnostic.code; + } else if (diagnostic.code !== undefined) { + lspDiagnostic.code = diagnostic.code.value; + lspDiagnostic.codeDescription = { + href: diagnostic.code.target.toString(), + }; + } + + if (tags.length > 0) { + lspDiagnostic.tags = tags; + } + + if (diagnostic.relatedInformation !== undefined) { + lspDiagnostic.relatedInformation = diagnostic.relatedInformation.map( + (item) => toLspRelatedInformation(item) + ); + } + + return lspDiagnostic; +} diff --git a/apps/vscode-extension/src/provider/hoverProvider.ts b/apps/vscode-extension/src/provider/hoverProvider.ts index ffb19d6..d4dbd1e 100644 --- a/apps/vscode-extension/src/provider/hoverProvider.ts +++ b/apps/vscode-extension/src/provider/hoverProvider.ts @@ -1,18 +1,29 @@ -import { HoverProvider } from "vscode"; +import { has } from "@pretty-ts-errors/utils"; +import { HoverProvider, languages, type TextDocument, type Position } from "vscode"; import { formattedDiagnosticsStore } from "../formattedDiagnosticsStore"; +import { createHoverContents } from "../hoverContent"; +import { logger } from "../logger"; +import { toLspDiagnostic } from "../lspDiagnostic"; +import { SUPPORTED_DIAGNOSTIC_SOURCES } from "../supportedDiagnosticSources"; export const hoverProvider: HoverProvider = { - provideHover(document, position, _token) { + async provideHover(document, position, _token) { const items = formattedDiagnosticsStore.get(document.uri.fsPath); if (!items) { - return null; + logger.trace( + `hover store miss for ${document.uri.toString(true)}, falling back to live diagnostics` + ); + return provideLiveDiagnosticHover(document, position); } const itemInRange = items.filter((item) => item.range.contains(position)); if (itemInRange.length === 0) { - return null; + logger.trace( + `hover store had no item at ${position.line}:${position.character} for ${document.uri.toString(true)}, falling back to live diagnostics` + ); + return provideLiveDiagnosticHover(document, position); } const first = itemInRange[0]; @@ -25,3 +36,44 @@ export const hoverProvider: HoverProvider = { }; }, }; + +async function provideLiveDiagnosticHover(document: TextDocument, position: Position) { + const supportedDiagnostics = languages + .getDiagnostics(document.uri) + .filter((diagnostic) => { + return ( + diagnostic.range.contains(position) && + diagnostic.source !== undefined && + has(SUPPORTED_DIAGNOSTIC_SOURCES, diagnostic.source) + ); + }); + + if (supportedDiagnostics.length === 0) { + logger.trace( + `no supported live diagnostics at ${position.line}:${position.character} for ${document.uri.toString(true)}` + ); + return null; + } + + logger.trace( + `building live hover from ${supportedDiagnostics.length} supported diagnostics at ${position.line}:${position.character} for ${document.uri.toString(true)}` + ); + + const firstDiagnostic = supportedDiagnostics[0]; + if (firstDiagnostic === undefined) { + return null; + } + + const contents = await Promise.all( + supportedDiagnostics.map((diagnostic) => { + return createHoverContents(toLspDiagnostic(diagnostic), { + documentUri: document.uri.toString(), + }); + }), + ); + + return { + range: firstDiagnostic.range, + contents: contents.flat(), + }; +} diff --git a/apps/vscode-extension/src/provider/markdownWebviewProvider.ts b/apps/vscode-extension/src/provider/markdownWebviewProvider.ts index 08a88b0..81fa7df 100644 --- a/apps/vscode-extension/src/provider/markdownWebviewProvider.ts +++ b/apps/vscode-extension/src/provider/markdownWebviewProvider.ts @@ -1,5 +1,6 @@ import * as vscode from "vscode"; import { enabledCommands } from "../commands/enabledCommands"; +import { logger } from "../logger"; /** * @see https://github.com/microsoft/vscode-extension-samples/blob/main/webview-sample @@ -36,10 +37,31 @@ export class MarkdownWebviewProvider { }; } - createOnDidReceiveMessage() { + createOnDidReceiveMessage(onReady?: () => void) { return (message: { command: string; [key: string]: unknown }) => { if (message && message.command) { switch (message.command) { + case "ready": { + logger.debug("sidebar webview reported ready"); + onReady?.(); + break; + } + case "log": { + const level = + message["level"] === "error" || + message["level"] === "warn" || + message["level"] === "info" || + message["level"] === "debug" || + message["level"] === "trace" + ? message["level"] + : "info"; + const text = + typeof message["text"] === "string" + ? message["text"] + : "webview emitted a log message without text"; + logger[level](`[webview] ${text}`); + break; + } case "notify": { if (typeof message["text"] === "string") { vscode.window.showInformationMessage(message["text"]); @@ -53,14 +75,13 @@ export class MarkdownWebviewProvider { async getWebviewContent( webview: vscode.Webview, - content: string, classList: string[] = [] ): Promise { const template = await this.webviewHtmlTemplate; const html = this.patchCspSafeAttrs(template, webview); return html.replace( '
    ', - `
    ${content}
    ` + `
    ` ); } @@ -95,13 +116,11 @@ export class MarkdownWebviewProvider { content .replaceAll( "style-src http://localhost:8080", - // TODO: remove `unsafe-inline` if vscode ever fixes their styles and api injection - `style-src ${webview.cspSource} 'unsafe-inline'` + `style-src ${webview.cspSource}` ) .replaceAll( "script-src http://localhost:8080", - // TODO: remove `unsafe-inline` if vscode ever fixes their styles and api injection - `script-src ${webview.cspSource} 'unsafe-inline'` + `script-src ${webview.cspSource}` ) .replaceAll( "font-src http://localhost:8080", diff --git a/apps/vscode-extension/src/provider/selectedTextHoverProvider.ts b/apps/vscode-extension/src/provider/selectedTextHoverProvider.ts index 082a5c9..8b02d8e 100644 --- a/apps/vscode-extension/src/provider/selectedTextHoverProvider.ts +++ b/apps/vscode-extension/src/provider/selectedTextHoverProvider.ts @@ -1,15 +1,18 @@ -import { d } from "@pretty-ts-errors/utils"; -import { prettifyDiagnosticForHover } from "@pretty-ts-errors/vscode-formatter"; import { + Diagnostic, + DiagnosticSeverity, ExtensionContext, ExtensionMode, - MarkdownString, languages, window, } from "vscode"; -import { createConverter } from "vscode-languageclient/lib/common/codeConverter"; import { formattedDiagnosticsStore } from "../formattedDiagnosticsStore"; -import { enabledCommands } from "../commands/enabledCommands"; +import { createDiagnosticRichContentModel } from "../diagnosticRichContent"; +import { toLspDiagnostic } from "../lspDiagnostic"; +import { + buildPrettyDiagnosticMessageMarkdown, + createHoverContents, +} from "../hoverContent"; /** * Register an hover provider in debug only. @@ -20,7 +23,6 @@ export function registerSelectedTextHoverProvider(context: ExtensionContext) { return; } - const converter = createConverter(); context.subscriptions.push( languages.registerHoverProvider( { @@ -42,31 +44,42 @@ export function registerSelectedTextHoverProvider(context: ExtensionContext) { return null; } - const lspDiagnostic = converter.asDiagnostic({ - message, + const debugDiagnostic = new Diagnostic( range, - severity: 0, - source: "ts", - code: 1337, - }); - - const markdown = new MarkdownString( - debugHoverHeader + (await prettifyDiagnosticForHover(lspDiagnostic)) + message, + DiagnosticSeverity.Error ); + debugDiagnostic.source = "ts"; + debugDiagnostic.code = 1337; - markdown.isTrusted = { enabledCommands }; - markdown.supportHtml = true; + const lspDiagnostic = toLspDiagnostic(debugDiagnostic); + const bodyMarkdown = await buildPrettyDiagnosticMessageMarkdown( + lspDiagnostic.message, + ); + const layout = createDiagnosticRichContentModel( + lspDiagnostic.code, + lspDiagnostic.message, + bodyMarkdown, + ); + const contents = await createHoverContents(lspDiagnostic, { + debugHeader: debugHoverHeader, + documentUri: document.uri.toString(), + layout, + }); formattedDiagnosticsStore.set(document.uri.fsPath, [ { + bodyMarkdown, + documentUri: document.uri, + layout, range, - contents: [markdown], + contents, lspDiagnostic, }, ]); return { - contents: [markdown], + contents, }; }, } @@ -74,12 +87,4 @@ export function registerSelectedTextHoverProvider(context: ExtensionContext) { ); } -const debugHoverHeader = d /*html*/ ` - - - Formatted selected text (debug only) - -
    -
    -

    -`; +const debugHoverHeader = "**Formatted selected text (debug only)**"; diff --git a/apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts b/apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts new file mode 100644 index 0000000..9715ab9 --- /dev/null +++ b/apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts @@ -0,0 +1,124 @@ +function isComplexType(text: string): boolean { + return ( + text.length >= 20 && + (/[{}[\]<>:;|&]/u.test(text) || + text.includes("=>") || + text.includes("${") || + text.includes("...")) + ); +} + +function repeatIndent(level: number): string { + return " ".repeat(level * 4); +} + +function trimTrailingWhitespace(value: string): string { + return value.replace(/[ \t]+$/u, ""); +} + +function normalizeSpacing(value: string): string { + return value.replace(/\s+/gu, " ").trim(); +} + +function formatComplexType(value: string): string { + const text = normalizeSpacing(value); + let output = ""; + let indentLevel = 0; + let quote: '"' | "'" | "`" | null = null; + let escaped = false; + + const appendIndentIfNeeded = () => { + if (output.length === 0 || output.endsWith("\n")) { + output += repeatIndent(indentLevel); + } + }; + + for (const char of text) { + if (quote !== null) { + output += char; + if (escaped) { + escaped = false; + } else if (char === "\\") { + escaped = true; + } else if (char === quote) { + quote = null; + } + continue; + } + + if (char === '"' || char === "'" || char === "`") { + appendIndentIfNeeded(); + quote = char; + output += char; + continue; + } + + switch (char) { + case "{": + case "[": + case "(": { + appendIndentIfNeeded(); + output += char; + indentLevel += 1; + output = trimTrailingWhitespace(output); + output += `\n${repeatIndent(indentLevel)}`; + break; + } + case "}": + case "]": + case ")": { + indentLevel = Math.max(indentLevel - 1, 0); + output = trimTrailingWhitespace(output); + if (!output.endsWith("\n")) { + output += "\n"; + } + output += `${repeatIndent(indentLevel)}${char}`; + break; + } + case ";": + case ",": { + output += char; + output = trimTrailingWhitespace(output); + output += `\n${repeatIndent(indentLevel)}`; + break; + } + case "|": + case "&": { + output = trimTrailingWhitespace(output); + if (!output.endsWith("\n")) { + output += "\n"; + } + output += `${repeatIndent(indentLevel)}${char} `; + break; + } + case ":": + output = trimTrailingWhitespace(output); + output += ": "; + break; + default: + appendIndentIfNeeded(); + output += char; + break; + } + } + + return trimTrailingWhitespace(output).trim(); +} + +export function formatSidebarInlineType(text: string): { + multiline: boolean; + text: string; +} { + if (!isComplexType(text)) { + return { + multiline: false, + text, + }; + } + + const formatted = formatComplexType(text); + return { + multiline: formatted.includes("\n"), + text: formatted, + }; +} diff --git a/apps/vscode-extension/src/provider/sidebarSyntaxHighlighter.ts b/apps/vscode-extension/src/provider/sidebarSyntaxHighlighter.ts new file mode 100644 index 0000000..6c8e3ae --- /dev/null +++ b/apps/vscode-extension/src/provider/sidebarSyntaxHighlighter.ts @@ -0,0 +1,193 @@ +import { + createHighlighter, + type BundledLanguage, + type BundledTheme, + type Highlighter, +} from "shiki"; +import { ColorThemeKind, window } from "vscode"; +import { logger } from "../logger"; + +export interface SidebarHighlightedToken { + color: string | null; + fontStyle: number; + text: string; +} + +export interface SidebarHighlightedLine { + tokens: SidebarHighlightedToken[]; +} + +export interface SidebarCodePresentation { + backgroundColor: string | null; + foregroundColor: string | null; + language: string | null; + lines: SidebarHighlightedLine[]; +} + +interface SidebarSyntaxHighlighterState { + highlighter: Highlighter; + themeId: string; +} + +type HighlighterCodeOptions = Parameters[1]; +type HighlighterCodeLanguage = NonNullable; +type HighlighterCodeTheme = NonNullable; + +const REQUIRED_LANGUAGES = [ + "typescript", + "tsx", + "javascript", + "jsx", + "json", +] as const satisfies readonly BundledLanguage[]; + +const DEFAULT_DARK_THEME = "dark-plus"; +const DEFAULT_LIGHT_THEME = "light-plus"; +const DEFAULT_HIGH_CONTRAST_DARK_THEME = "github-dark-high-contrast"; +const DEFAULT_HIGH_CONTRAST_LIGHT_THEME = "github-light-high-contrast"; + +const presentationCache = new Map(); + +let state: SidebarSyntaxHighlighterState | null = null; + +function cacheKey( + themeId: string, + language: string | null, + code: string, +): string { + return JSON.stringify({ + code, + language, + themeId, + }); +} + +async function createState(): Promise { + const themeId = getThemeIdFromActiveTheme(); + const highlighter = await createHighlighter({ + langs: [...REQUIRED_LANGUAGES], + themes: [themeId], + }); + + logger.debug( + `initialized sidebar syntax highlighter with bundled shiki theme '${themeId}'` + ); + + return { + highlighter, + themeId, + }; +} + +async function getState(): Promise { + const themeId = getThemeIdFromActiveTheme(); + if (state !== null && state.themeId === themeId) { + return state; + } + + if (state !== null) { + logger.debug( + `reloading sidebar syntax highlighter because the active theme changed from '${state.themeId}' to '${themeId}'` + ); + state.highlighter.dispose(); + } + + state = await createState(); + return state; +} + +function getThemeIdFromActiveTheme(): BundledTheme { + switch (window.activeColorTheme.kind) { + case ColorThemeKind.Light: + return DEFAULT_LIGHT_THEME; + case ColorThemeKind.HighContrastLight: + return DEFAULT_HIGH_CONTRAST_LIGHT_THEME; + case ColorThemeKind.HighContrast: + return DEFAULT_HIGH_CONTRAST_DARK_THEME; + case ColorThemeKind.Dark: + default: + return DEFAULT_DARK_THEME; + } +} + +function resolveLanguageId( + language: string, +): HighlighterCodeLanguage | null { + switch (language) { + case "type": + case "typescript": + return "typescript"; + case "typescriptreact": + return "tsx"; + case "javascript": + return "javascript"; + case "javascriptreact": + return "jsx"; + case "json": + return "json"; + default: + return null; + } +} + +export function invalidateSidebarSyntaxHighlighter() { + presentationCache.clear(); + if (state !== null) { + state.highlighter.dispose(); + state = null; + } +} + +export async function highlightSidebarCode( + code: string, + language: string | null, +): Promise { + if (language === null) { + return null; + } + + try { + const currentState = await getState(); + const resolvedLanguageId = resolveLanguageId(language); + if (resolvedLanguageId === null) { + logger.debug( + `no bundled shiki language mapping was found for '${language}'` + ); + return null; + } + + const key = cacheKey(currentState.themeId, resolvedLanguageId, code); + const cached = presentationCache.get(key); + if (cached !== undefined) { + return cached; + } + + const tokenLines = await currentState.highlighter.codeToTokensBase(code, { + lang: resolvedLanguageId, + theme: currentState.themeId as HighlighterCodeTheme, + }); + + const presentation: SidebarCodePresentation = { + backgroundColor: null, + foregroundColor: null, + language: resolvedLanguageId, + lines: tokenLines.map((line) => { + return { + tokens: line.map((token) => { + return { + color: token.color ?? null, + fontStyle: token.fontStyle ?? 0, + text: token.content, + }; + }), + }; + }), + }; + + presentationCache.set(key, presentation); + return presentation; + } catch (error) { + logger.warn("failed to highlight sidebar code block", error); + return null; + } +} diff --git a/apps/vscode-extension/src/provider/sidebarViewModel.ts b/apps/vscode-extension/src/provider/sidebarViewModel.ts new file mode 100644 index 0000000..400ae60 --- /dev/null +++ b/apps/vscode-extension/src/provider/sidebarViewModel.ts @@ -0,0 +1,274 @@ +import type { Range } from "vscode"; +import type { + DiagnosticBlockNode, + DiagnosticCodeBlockNode, + DiagnosticInlineNode, + DiagnosticLinkNode, + DiagnosticPropertyListNode, + DiagnosticTextNode, + DiagnosticTranslationContentModel, + DiagnosticTypeBlockNode, +} from "../diagnosticRichContent"; +import type { FormattedDiagnostic } from "../formattedDiagnosticsStore"; +import { formatSidebarInlineType } from "./sidebarInlineTypeFormatter"; +import { + highlightSidebarCode, + type SidebarCodePresentation, +} from "./sidebarSyntaxHighlighter"; + +interface SidebarCommandAction { + kind: "command"; + command: string; + args: unknown[]; + icon: string; + title: string; +} + +interface SidebarLinkAction { + kind: "link"; + href: string; + icon: string; + title: string; +} + +interface SidebarCopyAction { + kind: "copy"; + value: string; + icon: string; + title: string; +} + +export type SidebarActionModel = + | SidebarCommandAction + | SidebarLinkAction + | SidebarCopyAction; + +export interface SidebarInlineCodeNode { + kind: "inlineCode"; + language: string | null; + multiline: boolean; + presentation: SidebarCodePresentation | null; + text: string; +} + +export type SidebarInlineNode = + | DiagnosticTextNode + | DiagnosticLinkNode + | SidebarInlineCodeNode; + +export interface SidebarParagraphNode { + kind: "paragraph"; + lines: SidebarInlineNode[][]; +} + +export interface SidebarListNode { + kind: "list"; + items: SidebarInlineNode[][]; +} + +export interface SidebarCodeBlockNode extends DiagnosticCodeBlockNode { + presentation: SidebarCodePresentation | null; +} + +export interface SidebarTypeBlockNode extends DiagnosticTypeBlockNode { + presentation: SidebarCodePresentation | null; +} + +export type SidebarBlockNode = + | SidebarParagraphNode + | SidebarListNode + | SidebarCodeBlockNode + | SidebarTypeBlockNode + | DiagnosticPropertyListNode; + +export interface SidebarTranslationModel { + code: number; + blocks: SidebarBlockNode[]; + rawError: string; +} + +export interface SidebarDiagnosticModel { + body: SidebarBlockNode[]; + code: number | null; + message: string; + title: string; + actions: SidebarActionModel[]; + translations: SidebarTranslationModel[]; + note?: string; +} + +export interface SidebarViewModel { + pinned: SidebarDiagnosticModel | null; + diagnostics: SidebarDiagnosticModel[]; + emptyMessage: string; +} + +function serializeRange(range: Range) { + return { + start: { + line: range.start.line, + character: range.start.character, + }, + end: { + line: range.end.line, + character: range.end.character, + }, + }; +} + +function createRevealAction( + diagnostic: FormattedDiagnostic +): SidebarCommandAction | null { + const related = diagnostic.lspDiagnostic.relatedInformation?.[0]; + if (related === undefined || !related.message.includes("is declared here")) { + return null; + } + + return { + kind: "command", + command: "prettyTsErrors.revealSelection", + args: [related.location.uri, related.location.range], + icon: "codicon-go-to-file", + title: "Go to related symbol", + }; +} + +function getCodeNumber(code: FormattedDiagnostic["lspDiagnostic"]["code"]) { + return typeof code === "number" ? code : null; +} + +async function mapInlineNodeForSidebar( + node: DiagnosticInlineNode +): Promise { + switch (node.kind) { + case "text": + case "link": + return node; + case "inlineCode": { + const { multiline, text } = formatSidebarInlineType(node.text); + const language = multiline ? "type" : null; + const presentation = + language === null ? null : await highlightSidebarCode(text, language); + + return { + kind: "inlineCode", + language, + multiline, + presentation, + text, + }; + } + } +} + +async function mapInlineNodeLinesForSidebar( + lines: DiagnosticInlineNode[][] +): Promise { + return Promise.all( + lines.map((line) => + Promise.all(line.map((node) => mapInlineNodeForSidebar(node))) + ) + ); +} + +async function mapBlockForSidebar( + block: DiagnosticBlockNode +): Promise { + switch (block.kind) { + case "paragraph": + return { + kind: "paragraph", + lines: await mapInlineNodeLinesForSidebar(block.lines), + } satisfies SidebarParagraphNode; + case "list": + return { + kind: "list", + items: await mapInlineNodeLinesForSidebar(block.items), + } satisfies SidebarListNode; + case "codeBlock": + return { + ...block, + presentation: await highlightSidebarCode(block.code, block.language), + } satisfies SidebarCodeBlockNode; + case "typeBlock": + return { + ...block, + presentation: await highlightSidebarCode(block.code, block.language), + } satisfies SidebarTypeBlockNode; + case "propertyList": + return block; + } +} + +async function mapBlocksForSidebar( + blocks: DiagnosticBlockNode[] +): Promise { + return Promise.all(blocks.map((block) => mapBlockForSidebar(block))); +} + +export async function createSidebarDiagnosticModel( + diagnostic: FormattedDiagnostic, + options?: { note?: string } +): Promise { + const code = getCodeNumber(diagnostic.lspDiagnostic.code); + const actions: SidebarActionModel[] = [ + { + kind: "command", + command: "prettyTsErrors.pinError", + args: [ + diagnostic.documentUri.toString(), + serializeRange(diagnostic.range), + diagnostic.lspDiagnostic.message, + ], + icon: "codicon-pinned", + title: "Pin error", + }, + { + kind: "copy", + value: diagnostic.lspDiagnostic.message, + icon: "codicon-copy", + title: "Copy error message", + }, + ]; + + const revealAction = createRevealAction(diagnostic); + if (revealAction !== null) { + actions.push(revealAction); + } + + if (code !== null) { + actions.push({ + kind: "link", + href: `https://typescript.tv/errors/ts${code}`, + icon: "codicon-link-external", + title: `Open TS${code} documentation`, + }); + } + + const translations: SidebarTranslationModel[] = await Promise.all( + diagnostic.layout.translations.map( + async (translation: DiagnosticTranslationContentModel) => { + return { + blocks: await mapBlocksForSidebar(translation.blocks), + code: translation.code, + rawError: translation.rawError, + }; + } + ) + ); + + const model: SidebarDiagnosticModel = { + body: await mapBlocksForSidebar(diagnostic.layout.body), + code, + message: diagnostic.lspDiagnostic.message, + title: diagnostic.layout.title, + actions, + translations, + }; + + if (options?.note !== undefined) { + model.note = options.note; + } + + return model; +} diff --git a/apps/vscode-extension/src/provider/webviewViewProvider.ts b/apps/vscode-extension/src/provider/webviewViewProvider.ts index 518614a..5e3683f 100644 --- a/apps/vscode-extension/src/provider/webviewViewProvider.ts +++ b/apps/vscode-extension/src/provider/webviewViewProvider.ts @@ -1,42 +1,18 @@ import type { ExtensionContext } from "vscode"; import * as vscode from "vscode"; -import { getTheme, getUserLangs, getUserTheme } from "vscode-shiki-bridge"; -import { - createHighlighterCore, - LanguageRegistration, - ThemeRegistration, -} from "shiki/core"; -import { createOnigurumaEngine } from "shiki/engine/oniguruma"; -import { MarkdownWebviewProvider } from "./markdownWebviewProvider"; -import { - formattedDiagnosticsStore, - type FormattedDiagnostic, -} from "../formattedDiagnosticsStore"; import { has } from "@pretty-ts-errors/utils"; -import { - prettifyDiagnosticForSidebar, - initHighlighter, -} from "@pretty-ts-errors/vscode-formatter"; -import { SUPPORTED_LANGUAGE_IDS } from "../supportedLanguageIds"; +import { formattedDiagnosticsStore, type FormattedDiagnostic } from "../formattedDiagnosticsStore"; import { logger } from "../logger"; +import { SUPPORTED_LANGUAGE_IDS } from "../supportedLanguageIds"; +import { MarkdownWebviewProvider } from "./markdownWebviewProvider"; +import { invalidateSidebarSyntaxHighlighter } from "./sidebarSyntaxHighlighter"; +import { createSidebarDiagnosticModel, type SidebarViewModel } from "./sidebarViewModel"; const NO_DIAGNOSTICS_MESSAGE = "Select code with an error to show the prettified diagnostic in this view."; -const SIDEBAR_CACHE_SIZE_MAX = 100; -const sidebarHtmlCache = new Map(); - type ViewMode = "cursor" | "locked"; -interface DiagnosticItem { - html: string; - range: vscode.Range; -} - -interface PinnedError { - html: string; -} - let viewProviderInstance: MarkdownWebviewViewProvider | null = null; export function getViewProvider() { @@ -62,6 +38,13 @@ function updateHasErrorsContext() { } } +function isSameDiagnostic(left: FormattedDiagnostic, right: FormattedDiagnostic) { + return ( + left.lspDiagnostic.message === right.lspDiagnostic.message && + left.range.isEqual(right.range) + ); +} + export function registerWebviewViewProvider(context: ExtensionContext) { viewProviderInstance = new MarkdownWebviewViewProvider( new MarkdownWebviewProvider(context) @@ -73,165 +56,71 @@ export function registerWebviewViewProvider(context: ExtensionContext) { { webviewOptions: { retainContextWhenHidden: true } } ), vscode.languages.onDidChangeDiagnostics(() => updateHasErrorsContext()), - vscode.window.onDidChangeActiveTextEditor(() => updateHasErrorsContext()) + vscode.window.onDidChangeActiveTextEditor(() => updateHasErrorsContext()), + vscode.window.onDidChangeActiveColorTheme(() => { + invalidateSidebarSyntaxHighlighter(); + viewProviderInstance?.invalidateAndRefresh(); + }) ); updateHasErrorsContext(); } -async function diagnosticToItem( - formattedDiagnostic: FormattedDiagnostic -): Promise { - const cacheKey = formattedDiagnostic.lspDiagnostic.message; - let html = sidebarHtmlCache.get(cacheKey); - if (!html) { - html = await prettifyDiagnosticForSidebar( - formattedDiagnostic.lspDiagnostic - ); - if (sidebarHtmlCache.size > SIDEBAR_CACHE_SIZE_MAX) { - const firstKey = sidebarHtmlCache.keys().next().value!; - sidebarHtmlCache.delete(firstKey); - } - sidebarHtmlCache.set(cacheKey, html); - } - return { - html, - range: formattedDiagnostic.range, - }; -} - -// TODO: adding a `MarkdownWebviewView` class would make this provider a lot simpler class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { private disposables = new Map(); private webview: vscode.Webview | null = null; private view: vscode.WebviewView | null = null; private mode: ViewMode = "cursor"; - private lockedContent: DiagnosticItem | null = null; - private pinnedError: PinnedError | null = null; - private lastContent: string | null = null; + private lockedContent: FormattedDiagnostic | null = null; + private pinnedError: FormattedDiagnostic | null = null; + private lastModelKey: string | null = null; private skipNextSelectionChange = false; private skipNextEditorChange = false; - private initialized = false; constructor(private readonly provider: MarkdownWebviewProvider) {} - private async ensureInitialized() { - if (this.initialized) { + async lockToDiagnostic( + uri: vscode.Uri | undefined, + range: vscode.Range, + message?: string, + ) { + const diagnostic = this.findDiagnostic(uri, range, message); + if (!diagnostic) { + logger.warn( + `unable to lock sidebar to diagnostic at ${range.start.line}:${range.start.character}` + ); return; } - const isDark = - vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Dark || - vscode.window.activeColorTheme.kind === - vscode.ColorThemeKind.HighContrast; - logger.info( - `initializing highlighter with ${isDark ? "dark" : "light"} theme` + logger.debug( + `locking sidebar to diagnostic ${diagnostic.documentUri.toString(true)} at ${range.start.line}:${range.start.character}` ); - - // Default to the special 'none' theme, this will still provide formatted codeblocks with readable background and text colors - // see: https://shiki.style/themes#special-themes - let theme: string = "none"; - let themes: ThemeRegistration[] = []; - let langs: LanguageRegistration[] = []; - - // If the extension is running in the local extension host, expect to be able to resolve themes and languages - if ( - this.provider.context.extension.extensionKind == vscode.ExtensionKind.UI - ) { - logger.info( - `running on the UI extension host, using vscode-shiki-bridge to load themes and language grammars` - ); - try { - [theme, themes] = await getUserTheme(); - } catch { - // User's theme not found in extension registry (e.g. custom themes). - // Fall back to a built-in VS Code theme matching the user's color theme kind. - const fallbackTheme = isDark - ? "Default Dark Modern" - : "Default Light Modern"; - logger.info( - `failed to resolve the users theme, falling back to load the ${fallbackTheme} theme` - ); - [theme, themes] = await getTheme(fallbackTheme); - } - langs = await getUserLangs(["type", "ts"]); - } else { - logger.info( - `NOT running on the UI extension host, falling back to use bundled shiki themes and language grammars` - ); - // if running in the remote host, fall back on the bundles vscode themes from shiki - const bundledTheme = isDark - ? await import("shiki/themes/dark-plus.mjs") - : await import("shiki/themes/light-plus.mjs"); - theme = bundledTheme.default.name!; - themes = [bundledTheme.default]; - - // for typescript, fall back to the bundled grammar from shiki - const bundledTypeScriptGrammar = - await import("shiki/langs/typescript.mjs"); - langs = [ - ...bundledTypeScriptGrammar.default, - // 'type' will still resolve because its part of the pretty-ts-errors extension - ...(await getUserLangs(["type"])), - ]; + this.mode = "locked"; + this.lockedContent = diagnostic; + this.skipNextSelectionChange = true; + this.skipNextEditorChange = true; + this.lastModelKey = null; + if (this.webview) { + this.refresh(this.webview); } - - const highlighter = await createHighlighterCore({ - themes, - langs, - engine: createOnigurumaEngine(import("shiki/wasm")), - }); - initHighlighter({ - codeToHtml: (code: string, options: { lang: string }) => - highlighter.codeToHtml(code, { ...options, theme }), - }); - this.initialized = true; } - async lockToDiagnostic(range: vscode.Range, message?: string) { - const activeEditor = vscode.window.activeTextEditor; - if (activeEditor) { - const diagnostics = - formattedDiagnosticsStore.get(activeEditor.document.uri.fsPath) ?? []; - const diagnostic = diagnostics.find( - (diagnostic) => - diagnostic.range.isEqual(range) && - (!message || diagnostic.lspDiagnostic.message === message) + async pinDiagnostic( + uri: vscode.Uri | undefined, + range: vscode.Range, + message?: string, + ) { + const diagnostic = this.findDiagnostic(uri, range, message); + if (!diagnostic) { + logger.warn( + `unable to pin diagnostic at ${range.start.line}:${range.start.character}` ); - if (diagnostic) { - await this.ensureInitialized(); - this.mode = "locked"; - this.lockedContent = await diagnosticToItem(diagnostic); - this.skipNextSelectionChange = true; - this.skipNextEditorChange = true; - this.lastContent = null; - if (this.webview) { - this.refresh(this.webview); - } - } + return; } - } - - async pinDiagnostic(range: vscode.Range, message?: string) { - const activeEditor = vscode.window.activeTextEditor; - if (!activeEditor) return; - - const diagnostics = - formattedDiagnosticsStore.get(activeEditor.document.uri.fsPath) ?? []; - const diagnostic = diagnostics.find( - (diagnostic) => - diagnostic.range.isEqual(range) && - (!message || diagnostic.lspDiagnostic.message === message) - ); - if (!diagnostic) return; - await this.ensureInitialized(); - const item = await diagnosticToItem(diagnostic); - - // Toggle: if already pinned, unpin instead - if (this.pinnedError && this.pinnedError.html === item.html) { + if (this.pinnedError && isSameDiagnostic(this.pinnedError, diagnostic)) { this.pinnedError = null; } else { - this.pinnedError = { html: item.html }; + this.pinnedError = diagnostic; } if (this.webview) { @@ -246,30 +135,36 @@ class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { } } + invalidateAndRefresh() { + this.lastModelKey = null; + if (this.webview) { + void this.refresh(this.webview); + } + } + async resolveWebviewView( webviewView: vscode.WebviewView, _context: vscode.WebviewViewResolveContext ): Promise { + logger.debug("resolving prettyTsErrors side panel webview"); this.webview = webviewView.webview; this.view = webviewView; - - const initialContent = await this.getActiveContentHtml(); + webviewView.webview.options = this.provider.getWebviewOptions(); webviewView.webview.html = await this.provider.getWebviewContent( webviewView.webview, - initialContent, ["webview-panel"] ); const disposables = this.ensureDisposables(webviewView); - webviewView.webview.options = this.provider.getWebviewOptions(); disposables.push( webviewView.webview.onDidReceiveMessage( - this.provider.createOnDidReceiveMessage() + this.provider.createOnDidReceiveMessage(() => { + void this.refresh(webviewView.webview); + }) ), vscode.languages.onDidChangeDiagnostics(() => - // TODO: since `onDidChangeDiagnostics` fires often, we should try and avoid calling refresh based on the event uris - this.refresh(webviewView.webview) + void this.refresh(webviewView.webview) ), vscode.window.onDidChangeActiveTextEditor((editor) => { if (this.skipNextEditorChange) { @@ -280,13 +175,11 @@ class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { if (this.mode === "locked") { this.mode = "cursor"; } - this.refresh(webviewView.webview); + void this.refresh(webviewView.webview); } }), vscode.window.onDidChangeTextEditorSelection((event) => { const document = event.textEditor.document; - // this event fires often, including selecting text in output windows and terminal windows - // avoid doing unnessesary work, because it will cause noticable delays in the UI if (!has(SUPPORTED_LANGUAGE_IDS, document.languageId)) { return; } @@ -298,19 +191,21 @@ class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { this.mode = "cursor"; } if (this.mode === "cursor") { - this.refresh(webviewView.webview); + void this.refresh(webviewView.webview); } }), webviewView.onDidChangeVisibility(() => { if (webviewView.visible) { - this.refresh(webviewView.webview); + void this.refresh(webviewView.webview); } }) ); + void this.refresh(webviewView.webview); + webviewView.onDidDispose(() => { - const disposables = this.disposables.get(webviewView); - disposables?.forEach((disposable) => disposable.dispose()); + const viewDisposables = this.disposables.get(webviewView); + viewDisposables?.forEach((disposable) => disposable.dispose()); this.disposables.delete(webviewView); this.webview = null; this.view = null; @@ -326,14 +221,54 @@ class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { return disposables; } - private async getActiveContentHtml(): Promise { - const items = await this.getActiveDiagnosticItems(); - if (items.length === 0) return NO_DIAGNOSTICS_MESSAGE; - return items.map((item) => item.html).join("
    "); + private findDiagnostic( + uri: vscode.Uri | undefined, + range: vscode.Range, + message?: string, + ): FormattedDiagnostic | null { + const activeEditor = vscode.window.activeTextEditor; + const storeKey = uri?.fsPath ?? activeEditor?.document.uri.fsPath; + if (!storeKey) { + logger.warn("cannot resolve diagnostic without a uri or active editor"); + return null; + } + + const diagnostics = formattedDiagnosticsStore.get(storeKey) ?? []; + if (diagnostics.length === 0) { + logger.warn(`no formatted diagnostics were found for ${storeKey}`); + return null; + } + + const exactMatch = diagnostics.find((item) => { + return ( + item.range.isEqual(range) && + (message === undefined || item.lspDiagnostic.message === message) + ); + }); + if (exactMatch) { + return exactMatch; + } + + const overlappingMatch = diagnostics.find((item) => { + return ( + item.range.intersection(range) !== undefined && + (message === undefined || item.lspDiagnostic.message === message) + ); + }); + if (overlappingMatch) { + logger.warn( + `diagnostic lookup for ${storeKey} fell back from exact range matching to overlap matching` + ); + return overlappingMatch; + } + + logger.warn( + `diagnostic lookup failed for ${storeKey}; formatted diagnostics count=${diagnostics.length}` + ); + return null; } - private async getActiveDiagnosticItems(): Promise { - await this.ensureInitialized(); + private getActiveDiagnosticItems(): FormattedDiagnostic[] { switch (this.mode) { case "cursor": return this.getCursorDiagnosticItems(); @@ -342,65 +277,65 @@ class MarkdownWebviewViewProvider implements vscode.WebviewViewProvider { } } - private async getCursorDiagnosticItems(): Promise { + private getCursorDiagnosticItems(): FormattedDiagnostic[] { const activeEditor = vscode.window.activeTextEditor; const selection = activeEditor?.selection; - if (!activeEditor || !selection) return []; + if (!activeEditor || !selection) { + return []; + } const diagnostics = formattedDiagnosticsStore.get(activeEditor.document.uri.fsPath) ?? []; - const selectedDiagnostics = diagnostics.filter( + return diagnostics.filter( (diagnostic) => diagnostic.range.intersection(selection) !== undefined ); - return Promise.all(selectedDiagnostics.map((d) => diagnosticToItem(d))); + } + + private async createViewModel( + items: FormattedDiagnostic[], + ): Promise { + const pinned = + this.pinnedError === null + ? null + : await createSidebarDiagnosticModel(this.pinnedError); + + const diagnostics = await Promise.all( + items.map((item) => { + const note = + this.pinnedError !== null && isSameDiagnostic(this.pinnedError, item) + ? "This item is pinned on top." + : undefined; + + return note === undefined + ? createSidebarDiagnosticModel(item) + : createSidebarDiagnosticModel(item, { note }); + }), + ); + + return { + pinned, + diagnostics, + emptyMessage: NO_DIAGNOSTICS_MESSAGE, + }; } async refresh(webview: vscode.Webview) { - if (this.view && !this.view.visible) return; - - const sections: string[] = []; - - // Render pinned error section - if (this.pinnedError) { - sections.push( - `
    ` + - `
    ` + - `` + - `` + - ` Pinned error` + - `` + - `` + - `
    ` + - this.pinnedError.html + - `
    ` - ); - sections.push(`
    `); + if (this.view && !this.view.visible) { + logger.trace("skipping side panel refresh because the view is hidden"); + return; } - // Render active diagnostic items - const items = await this.getActiveDiagnosticItems(); - if (items.length === 0) { - sections.push(NO_DIAGNOSTICS_MESSAGE); - } else { - for (let i = 0; i < items.length; i++) { - if (i > 0) sections.push(`
    `); - const item = items[i]!; - if (this.pinnedError && item.html === this.pinnedError.html) { - sections.push( - `
    ` + - `This item is pinned on top.` + - `
    ` - ); - } else { - sections.push(`
    ${item.html}
    `); - } - } + const model = await this.createViewModel(this.getActiveDiagnosticItems()); + const modelKey = JSON.stringify(model); + if (modelKey === this.lastModelKey) { + logger.trace("skipping side panel refresh because the model did not change"); + return; } - const fullHtml = sections.join(""); - if (fullHtml !== this.lastContent) { - webview.postMessage({ command: "update-content", html: fullHtml }); - this.lastContent = fullHtml; - } + logger.debug( + `posting side panel model with ${model.diagnostics.length} active diagnostic(s) and ${model.pinned === null ? 0 : 1} pinned diagnostic(s)` + ); + webview.postMessage({ command: "render-sidebar", model }); + this.lastModelKey = modelKey; } } diff --git a/apps/vscode-extension/src/supportedDiagnosticSources.ts b/apps/vscode-extension/src/supportedDiagnosticSources.ts new file mode 100644 index 0000000..6c4b85e --- /dev/null +++ b/apps/vscode-extension/src/supportedDiagnosticSources.ts @@ -0,0 +1,7 @@ +export const SUPPORTED_DIAGNOSTIC_SOURCES = [ + "ts", + "ts-plugin", + "deno-ts", + "js", + "glint", +] as const; diff --git a/apps/vscode-extension/src/test/runTest.ts b/apps/vscode-extension/src/test/runTest.ts index 033881a..ce5c755 100644 --- a/apps/vscode-extension/src/test/runTest.ts +++ b/apps/vscode-extension/src/test/runTest.ts @@ -1,20 +1,24 @@ -import * as path from "path"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; import { runTests } from "@vscode/test-electron"; +const currentFilePath = fileURLToPath(import.meta.url); +const currentDirectory = path.dirname(currentFilePath); + async function main() { try { // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath` - const extensionDevelopmentPath = path.resolve(__dirname, "../../"); + const extensionDevelopmentPath = path.resolve(currentDirectory, "../../"); // The path to test runner // Passed to --extensionTestsPath - const extensionTestsPath = path.resolve(__dirname, "./suite/index"); + const extensionTestsPath = path.resolve(currentDirectory, "./suite/index.js"); // Download VS Code, unzip it and run the integration test await runTests({ - version: "1.77.0", + version: "stable", extensionDevelopmentPath, extensionTestsPath, launchArgs: ["--disable-extensions"], diff --git a/apps/vscode-extension/src/test/suite/extension.test.ts b/apps/vscode-extension/src/test/suite/extension.test.ts index 2c63ed3..d002de0 100644 --- a/apps/vscode-extension/src/test/suite/extension.test.ts +++ b/apps/vscode-extension/src/test/suite/extension.test.ts @@ -1,11 +1,157 @@ -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it +import assert from "node:assert/strict"; +import path from "node:path"; import * as vscode from "vscode"; suite("Extension Test Suite", () => { - /** - * The tests moved to the formatter package, I'm leaving - * this here for future tests to the VSCode extension - */ - vscode.window.showInformationMessage("Start all tests."); + test("shows the custom hover for supported JS diagnostics", async function () { + this.timeout(30_000); + + const exampleUri = await openExampleDocument("errors.js"); + const diagnostic = await waitForDiagnostic(exampleUri, 2741); + const markdownStrings = await getHoverMarkdownStrings( + exampleUri, + diagnostic.range.start, + ); + + const hoverText = markdownStrings.map((content) => content.value).join("\n"); + + assert.match(hoverText, /Show in Sidebar/u); + assert.match(hoverText, /Local explanation/u); + assert.match(hoverText, /TS2741/u); + assert.match(hoverText, /```/u); + assert.match(hoverText, /street: string/u); + assert.match(hoverText, /country: string/u); + }); + + test("renders TS2739 as safe markdown with the missing-property list", async function () { + this.timeout(30_000); + + const exampleUri = await openExampleDocument("errors.js"); + const diagnostic = await waitForDiagnostic(exampleUri, 2739); + const markdownStrings = await getHoverMarkdownStrings( + exampleUri, + diagnostic.range.start, + ); + + assert.ok(markdownStrings.length > 0, "expected markdown hover content"); + + const body = markdownStrings[0]; + assert.ok(body instanceof vscode.MarkdownString, "expected markdown body"); + assert.equal(body.supportHtml, false, "hover body must not enable HTML"); + + const hoverText = markdownStrings.map((content) => content.value).join("\n"); + assert.match(hoverText, /TS2739/u); + assert.match(hoverText, /Local explanation/u); + assert.match(hoverText, /- name/u); + assert.match(hoverText, /- age/u); + assert.match(hoverText, /- address/u); + }); + + test("accepts uri-based sidebar command targets", async function () { + this.timeout(30_000); + + const exampleUri = await openExampleDocument("errors.js"); + const diagnostic = await waitForDiagnostic(exampleUri, 2739); + + await vscode.commands.executeCommand( + "prettyTsErrors.showErrorInSidebar", + exampleUri.toString(), + diagnostic.range, + diagnostic.message, + ); + }); + + test("keeps TS2741 template literal types intact in local explanations", async function () { + this.timeout(30_000); + + const exampleUri = await openExampleDocument("errors.ts"); + const diagnostic = await waitForDiagnostic( + exampleUri, + 2741, + 15_000, + "Property 'user' is missing", + ); + const markdownStrings = await getHoverMarkdownStrings( + exampleUri, + diagnostic.range.start, + ); + + const hoverText = markdownStrings.map((content) => content.value).join("\n"); + assert.match(hoverText, /Local explanation/u); + assert.match( + hoverText, + /``\{ user: \{ name: string; email: `\$\{string\}@\$\{string\}\.\$\{string\}`; age: number; \}; \}``/u, + ); + }); }); + +async function openExampleDocument(fileName: "errors.js" | "errors.ts"): Promise { + const extension = vscode.extensions.all.find((candidate) => { + return candidate.packageJSON.name === "pretty-ts-errors"; + }); + assert.ok(extension, "pretty-ts-errors extension should be discoverable"); + + await extension.activate(); + + const exampleUri = vscode.Uri.file( + path.resolve(extension.extensionPath, `../../examples/${fileName}`) + ); + const document = await vscode.workspace.openTextDocument(exampleUri); + await vscode.window.showTextDocument(document); + return document.uri; +} + +async function getHoverMarkdownStrings( + uri: vscode.Uri, + position: vscode.Position, +): Promise { + const hovers = + await vscode.commands.executeCommand( + "vscode.executeHoverProvider", + uri, + position, + ); + + assert.ok(hovers && hovers.length > 0, "expected hover providers to return content"); + + return hovers + .flatMap((hover) => hover.contents) + .filter((content): content is vscode.MarkdownString => { + return content instanceof vscode.MarkdownString; + }); +} + +async function waitForDiagnostic( + uri: vscode.Uri, + code: number, + timeoutMs = 15_000, + messageIncludes?: string, +): Promise { + const startedAt = Date.now(); + + for (;;) { + const diagnostic = vscode.languages + .getDiagnostics(uri) + .find((item) => { + return ( + item.code === code && + (messageIncludes === undefined || + item.message.includes(messageIncludes)) + ); + }); + + if (diagnostic !== undefined) { + return diagnostic; + } + + if (Date.now() - startedAt > timeoutMs) { + throw new Error(`Timed out waiting for TS${code} diagnostics in ${uri.fsPath}`); + } + + await delay(100); + } +} + +function delay(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} diff --git a/apps/vscode-extension/src/test/suite/index.ts b/apps/vscode-extension/src/test/suite/index.ts index c388207..0468e43 100644 --- a/apps/vscode-extension/src/test/suite/index.ts +++ b/apps/vscode-extension/src/test/suite/index.ts @@ -6,16 +6,30 @@ export function run( testsRoot: string, cb: (error: unknown | null, failures?: number) => void ): void { + const resolvedTestsRoot = testsRoot.endsWith(".js") + ? path.dirname(testsRoot) + : testsRoot; + // Create the mocha test const mocha = new Mocha({ ui: "tdd", color: true, }); - glob("**/**.test.js", { cwd: testsRoot }) + glob("**/*.test.js", { cwd: resolvedTestsRoot }) .then((files) => { + if (files.length === 0) { + throw new Error( + `No compiled extension test files were found in ${resolvedTestsRoot}.` + ); + } + + console.log( + `Discovered ${files.length} extension test file(s) in ${resolvedTestsRoot}: ${files.join(", ")}` + ); + // Add files to the test suite - files.forEach((f) => mocha.addFile(path.resolve(testsRoot, f))); + files.forEach((f) => mocha.addFile(path.resolve(resolvedTestsRoot, f))); try { // Run the mocha test diff --git a/apps/vscode-extension/tsconfig.app.json b/apps/vscode-extension/tsconfig.app.json new file mode 100644 index 0000000..aeb2173 --- /dev/null +++ b/apps/vscode-extension/tsconfig.app.json @@ -0,0 +1,46 @@ +{ + /** + * Thin bundler-first Node-hosted app leaf for the VS Code extension runtime. + * This file owns only local app facts and reuses the shared workspace role. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the shared bundler-first Node-hosted app contract instead of + * redefining runtime lane policy inside the leaf. + */ + "extends": "../../tsconfig.bundler-node.base.json", + + "compilerOptions": { + /** + * The app leaf alone knows its concrete source root. + */ + "rootDir": "./src" + }, + + /** + * The app runtime lane covers production-facing extension sources only. + */ + "include": ["src/**/*.ts", "src/globals.d.ts"], + + /** + * Test-owned files belong to the separate test lane. + */ + "exclude": ["src/test/**"], + + /** + * Project references remain leaf facts because they model this app leaf's + * real upstream monorepo dependency graph. + */ + "references": [ + { + "path": "../../packages/utils/tsconfig.lib.json" + }, + { + "path": "../../packages/formatter/tsconfig.lib.json" + }, + { + "path": "../../packages/error-translator/tsconfig.lib.json" + } + ] +} diff --git a/apps/vscode-extension/tsconfig.json b/apps/vscode-extension/tsconfig.json index ca94e76..738a5c0 100644 --- a/apps/vscode-extension/tsconfig.json +++ b/apps/vscode-extension/tsconfig.json @@ -1,15 +1,24 @@ { + /** + * Root coordination surface for the VS Code extension leaf. + * This file owns references only and does not become a runtime or + * validation lane itself. + */ "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "nodenext", - "target": "ES2022", - "rootDir": "src", - "outDir": "out", - "moduleResolution": "nodenext" - }, - "include": ["src/**/*.ts"], + + /** + * The coordination surface owns no files directly. + */ + "files": [], + + /** + * Register the validation-facing project-reference surface explicitly. + * The runtime and test lanes are consumed directly by their owning targets, + * while the coordination surface stays focused on Nx/TypeScript typechecking. + */ "references": [ - { "path": "../../packages/utils" }, - { "path": "../../packages/vscode-formatter" } + { + "path": "./tsconfig.typecheck.json" + } ] } diff --git a/apps/vscode-extension/tsconfig.test.json b/apps/vscode-extension/tsconfig.test.json new file mode 100644 index 0000000..4fbaad1 --- /dev/null +++ b/apps/vscode-extension/tsconfig.test.json @@ -0,0 +1,54 @@ +{ + /** + * Thin compiled test-harness leaf for the VS Code extension integration tests. + * This lane deliberately reopens emit because the mocha/electron harness runs + * compiled JavaScript files from `out/`. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the generic runtime test-consumer role and override only the local + * facts required by this specific compiled test harness. + */ + "extends": "../../tsconfig.test.base.json", + + "compilerOptions": { + /** + * This harness validates under native Node ESM semantics instead of the + * bundler-first app lane. + */ + "module": "NodeNext", + + /** + * The test harness resolves modules under native Node semantics as well. + */ + "moduleResolution": "NodeNext", + + /** + * Unlike the generic non-emitting test role, this harness must write actual + * JavaScript files that are executed by the VS Code test runner. + */ + "noEmit": false, + + /** + * Open only the ambient test globals required by this specific mocha lane. + */ + "types": ["node", "mocha"], + + /** + * The compiled test harness writes into a dedicated non-committed output + * lane separate from app runtime and validation artifacts. + */ + "outDir": "out", + + /** + * The test harness leaf alone knows its concrete source root. + */ + "rootDir": "src" + }, + + /** + * The compiled harness lane covers test-owned TypeScript sources only. + */ + "include": ["src/test/**/*.ts"] +} diff --git a/apps/vscode-extension/tsconfig.typecheck.json b/apps/vscode-extension/tsconfig.typecheck.json new file mode 100644 index 0000000..200562e --- /dev/null +++ b/apps/vscode-extension/tsconfig.typecheck.json @@ -0,0 +1,68 @@ +{ + /** + * Thin validation surface for the VS Code extension app leaf. + * This file owns only local facts and reuses the shared workspace + * typecheck role template. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the shared validation-lane contract instead of redefining compiler + * policy or lane semantics inside the app leaf. + */ + "extends": "../../tsconfig.typecheck.base.json", + + "compilerOptions": { + /** + * The app leaf alone knows its concrete source root. + * This belongs at the leaf and not in the shared workspace role template. + */ + "rootDir": "./src", + + /** + * Validation artifacts live in a dedicated non-committed lane that is + * separate from bundler output and test output. + */ + "outDir": "./.cache/typecheck", + + /** + * Keep build-mode metadata local to the validation lane so the app leaf + * does not mix typecheck state with runtime or test artifact surfaces. + */ + "tsBuildInfoFile": "./.cache/typecheck/tsconfig.typecheck.tsbuildinfo", + + /** + * This specific leaf needs Node ambient types for the extension runtime. + * The generic validation template stays closed and the leaf reopens only + * the environment it actually requires. + */ + "types": ["node"] + }, + + /** + * The validation lane covers production-facing app sources only. + */ + "include": ["src/**/*.ts", "src/globals.d.ts"], + + /** + * Test-owned files belong to the separate test lane and must not be folded + * into the app validation surface. + */ + "exclude": ["src/test/**"], + + /** + * Project references remain leaf facts because they express this app leaf's + * real upstream monorepo dependency graph. + */ + "references": [ + { + "path": "../../packages/utils/tsconfig.lib.json" + }, + { + "path": "../../packages/formatter/tsconfig.lib.json" + }, + { + "path": "../../packages/error-translator/tsconfig.lib.json" + } + ] +} diff --git a/apps/vscode-extension/webview/index.html b/apps/vscode-extension/webview/index.html index 98dca9b..5cf7301 100644 --- a/apps/vscode-extension/webview/index.html +++ b/apps/vscode-extension/webview/index.html @@ -10,7 +10,7 @@ data-csp-replace-content content="default-src 'none'; script-src http://localhost:8080; style-src http://localhost:8080; font-src http://localhost:8080;" /> - Pretty TS Errors - Markdown Preview + Pretty TypeScript Errors [Secured] - Markdown Preview { + api.log( + "error", + `window error: ${event.message} at ${event.filename}:${event.lineno}:${event.colno}`, + ); +}); + +window.addEventListener("unhandledrejection", (event) => { + const reason = + event.reason instanceof Error + ? event.reason.stack ?? event.reason.message + : String(event.reason); + api.log("error", `unhandled rejection: ${reason}`); +}); + window.addEventListener("message", (event) => { const message = event.data; - switch (message.command) { - case "update-content": { - if ($content) { - $content.innerHTML = message.html; - } - } + if (message?.command === "render-sidebar" && $content instanceof HTMLElement) { + const model = /** @type {SidebarViewModel} */ (message.model); + api.log( + "debug", + `render-sidebar received ${model.diagnostics.length} diagnostics and ${model.pinned === null ? 0 : 1} pinned item(s)`, + ); + renderSidebar($content, model); } }); window.document.addEventListener("click", (event) => { - const element = /** @type {HTMLElement} */ (event.target); - if ( - element.tagName.toLowerCase() === "button" && - element.hasAttribute("data-copy-content") - ) { - handleCopyContentEvent(element); + const target = event.target; + if (!(target instanceof HTMLElement)) { + return; + } + + const copyButton = target.closest("[data-copy-content]"); + if (copyButton instanceof HTMLElement) { + const content = copyButton.dataset.copyContent; + if (typeof content === "string" && content.length > 0) { + void copyToClipboard(content); + } } }); +api.ready(); +api.log("debug", "sidebar webview script initialized"); + +/** + * @param {HTMLElement} container + * @param {SidebarViewModel} model + */ +function renderSidebar(container, model) { + container.replaceChildren(); + const stack = document.createElement("div"); + stack.className = "diagnostic-stack"; + + if (model.pinned !== null) { + stack.appendChild(createPinnedSection(model.pinned)); + } + + if (model.diagnostics.length === 0) { + if (model.pinned === null) { + const empty = document.createElement("section"); + empty.className = "sidebar-empty-state"; + const title = document.createElement("h2"); + title.className = "empty-state-title"; + title.textContent = "No active diagnostics"; + const body = document.createElement("p"); + body.textContent = model.emptyMessage; + empty.append(title, body); + stack.appendChild(empty); + } + container.appendChild(stack); + return; + } + + model.diagnostics.forEach((diagnostic) => { + stack.appendChild(createDiagnosticCard(diagnostic)); + }); + + container.appendChild(stack); +} + +/** + * @param {SidebarDiagnosticModel} diagnostic + */ +function createPinnedSection(diagnostic) { + const section = document.createElement("section"); + section.className = "pinned-section"; + + const header = document.createElement("div"); + header.className = "pinned-header"; + + const label = document.createElement("span"); + label.className = "pinned-label"; + label.appendChild(createCodicon("codicon-pinned")); + label.append(" Pinned error"); + + header.appendChild(label); + header.appendChild( + createCommandLink( + "prettyTsErrors.unpinError", + [], + "Unpin error", + "codicon-close", + "unpin-button", + ), + ); + + section.appendChild(header); + section.appendChild(createDiagnosticCard(diagnostic)); + + return section; +} + +/** + * @param {SidebarDiagnosticModel} diagnostic + */ +function createDiagnosticCard(diagnostic) { + const card = document.createElement("article"); + card.className = "diagnostic-card"; + + const header = document.createElement("div"); + header.className = "diagnostic-header"; + + const titleGroup = document.createElement("div"); + titleGroup.className = "diagnostic-title-group"; + + const eyebrow = document.createElement("span"); + eyebrow.className = "diagnostic-eyebrow"; + eyebrow.textContent = "TypeScript diagnostic"; + + const title = document.createElement("h2"); + title.className = "diagnostic-title"; + title.textContent = diagnostic.title; + titleGroup.append(eyebrow, title); + header.appendChild(titleGroup); + + const actions = document.createElement("div"); + actions.className = "diagnostic-actions"; + diagnostic.actions.forEach((action) => { + actions.appendChild(createActionElement(action)); + }); + header.appendChild(actions); + + card.appendChild(header); + + if (typeof diagnostic.note === "string" && diagnostic.note.length > 0) { + const note = document.createElement("div"); + note.className = "diagnostic-note"; + note.textContent = diagnostic.note; + card.appendChild(note); + } + + const messageSection = document.createElement("section"); + messageSection.className = "diagnostic-message-section"; + appendLayoutBlocks(messageSection, diagnostic.body); + card.appendChild(messageSection); + + if (diagnostic.translations.length > 0) { + card.appendChild( + createTranslationsSection(diagnostic.translations, diagnostic.message), + ); + } + + return card; +} + +/** + * @param {SidebarTranslationModel[]} translations + * @param {string} originalMessage + */ +function createTranslationsSection(translations, originalMessage) { + const section = document.createElement("section"); + section.className = "translation-section"; + + const header = document.createElement("div"); + header.className = "translation-section-header"; + + const label = document.createElement("span"); + label.className = "section-eyebrow"; + label.textContent = "Local explanation"; + header.appendChild(label); + section.appendChild(header); + + translations.forEach((translation) => { + const card = document.createElement("div"); + card.className = "translation-card"; + + const title = document.createElement("div"); + title.className = "translation-title"; + title.textContent = `TS${translation.code}`; + card.appendChild(title); + + if (translations.length > 1 || translation.rawError !== originalMessage) { + const pre = document.createElement("pre"); + const code = document.createElement("code"); + code.textContent = translation.rawError; + pre.appendChild(code); + card.appendChild(pre); + } + + appendLayoutBlocks(card, translation.blocks); + + section.appendChild(card); + }); + + return section; +} + +/** + * @param {HTMLElement} container + * @param {SidebarBlockNode[]} blocks + */ +function appendLayoutBlocks(container, blocks) { + blocks.forEach((block) => { + switch (block.kind) { + case "paragraph": { + const paragraph = document.createElement("p"); + paragraph.className = "diagnostic-paragraph"; + block.lines.forEach((line, index) => { + paragraph.appendChild(createInlineNodesFragment(line)); + if (index < block.lines.length - 1) { + paragraph.appendChild(document.createElement("br")); + } + }); + container.appendChild(paragraph); + return; + } + case "codeBlock": + case "typeBlock": { + container.appendChild( + createCodeBlockElement( + block.code, + block.kind === "typeBlock" ? "type-code-container" : "", + block.presentation, + ), + ); + return; + } + case "list": { + const list = document.createElement("ul"); + list.className = "diagnostic-list"; + block.items.forEach((item) => { + const listItem = document.createElement("li"); + listItem.appendChild(createInlineNodesFragment(item)); + list.appendChild(listItem); + }); + container.appendChild(list); + return; + } + case "propertyList": { + const list = document.createElement("div"); + list.className = "property-list"; + block.items.forEach((item) => { + const chip = document.createElement("span"); + chip.className = "property-chip"; + chip.textContent = item; + list.appendChild(chip); + }); + container.appendChild(list); + return; + } + } + }); +} + +/** + * @param {string} codeText + * @param {string} [extraClassName] + * @param {SidebarCodePresentation | null} [presentation] + */ +function createCodeBlockElement(codeText, extraClassName = "", presentation = null) { + const codeContainer = document.createElement("div"); + codeContainer.className = ["code-container", extraClassName] + .filter(Boolean) + .join(" "); + applyCodePresentationStyles(codeContainer, presentation); + + const copyButton = document.createElement("button"); + copyButton.className = "copy-button"; + copyButton.type = "button"; + copyButton.title = "Copy code block"; + copyButton.setAttribute("aria-label", "Copy code block"); + copyButton.dataset.copyContent = codeText; + copyButton.appendChild(createCodicon("codicon-copy")); + codeContainer.appendChild(copyButton); + + const pre = document.createElement("pre"); + const code = createCodeElement(codeText, presentation); + pre.appendChild(code); + codeContainer.appendChild(pre); + + return codeContainer; +} + +/** + * @param {SidebarInlineNode[]} nodes + */ +function createInlineNodesFragment(nodes) { + const fragment = document.createDocumentFragment(); + nodes.forEach((node) => { + switch (node.kind) { + case "text": + fragment.append(node.text); + return; + case "inlineCode": { + const code = createCodeElement(node.text, node.presentation); + code.className = node.multiline + ? "inline-rich-code inline-rich-code-multiline" + : "inline-rich-code"; + fragment.appendChild(code); + return; + } + case "link": { + const link = document.createElement("a"); + link.href = node.href; + link.target = "_blank"; + link.rel = "noreferrer noopener"; + link.textContent = node.label; + fragment.appendChild(link); + return; + } + } + }); + + return fragment; +} + /** - * * @param {HTMLElement} element + * @param {SidebarCodePresentation | null} presentation + */ +function applyCodePresentationStyles(element, presentation) { + if (presentation?.backgroundColor) { + element.style.backgroundColor = presentation.backgroundColor; + } + if (presentation?.foregroundColor) { + element.style.color = presentation.foregroundColor; + } +} + +/** + * @param {SidebarHighlightedToken} token + * @returns {HTMLSpanElement} */ -function handleCopyContentEvent(element) { - const parent = element.parentElement; - if (parent?.classList.contains("code-container")) { - const pre = parent.querySelector("pre"); - const code = pre?.querySelector("code"); - const content = code?.innerText; - if (content) { - copyToClipboard(content); +function createHighlightedTokenElement(token) { + const span = document.createElement("span"); + span.className = "highlighted-code-token"; + span.textContent = token.text; + if (token.color) { + span.style.color = token.color; + } + if ((token.fontStyle & 1) !== 0) { + span.style.fontStyle = "italic"; + } + if ((token.fontStyle & 2) !== 0) { + span.style.fontWeight = "700"; + } + if ((token.fontStyle & 4) !== 0) { + span.style.textDecoration = "underline"; + } + return span; +} + +/** + * @param {string} codeText + * @param {SidebarCodePresentation | null} presentation + * @returns {HTMLElement} + */ +function createCodeElement(codeText, presentation) { + const code = document.createElement("code"); + applyCodePresentationStyles(code, presentation); + + if (presentation === null) { + code.textContent = codeText; + return code; + } + + presentation.lines.forEach((line, lineIndex) => { + if (lineIndex > 0) { + code.appendChild(document.createTextNode("\n")); } + + if (line.tokens.length === 0) { + return; + } + + line.tokens.forEach((token) => { + code.appendChild(createHighlightedTokenElement(token)); + }); + }); + + return code; +} + +/** + * @param {SidebarActionModel} action + */ +function createActionElement(action) { + switch (action.kind) { + case "command": + return createCommandLink(action.command, action.args, action.title, action.icon); + case "link": + return createExternalLink(action.href, action.title, action.icon); + case "copy": + return createCopyButton(action.value, action.title, action.icon); } } /** - * Copy `text` to the user's clipboard + * @param {string} command + * @param {unknown[]} args + * @param {string} title + * @param {string} icon + * @param {string} [extraClassName] + */ +function createCommandLink(command, args, title, icon, extraClassName = "") { + const link = document.createElement("a"); + link.href = `command:${command}?${encodeURIComponent(JSON.stringify(args))}`; + link.title = title; + link.setAttribute("aria-label", title); + link.className = ["action-link", extraClassName].filter(Boolean).join(" "); + link.appendChild(createCodicon(icon)); + return link; +} + +/** + * @param {string} href + * @param {string} title + * @param {string} icon + */ +function createExternalLink(href, title, icon) { + const link = document.createElement("a"); + link.href = href; + link.title = title; + link.setAttribute("aria-label", title); + link.target = "_blank"; + link.rel = "noreferrer noopener"; + link.className = "action-link"; + link.appendChild(createCodicon(icon)); + return link; +} + +/** + * @param {string} value + * @param {string} title + * @param {string} icon + */ +function createCopyButton(value, title, icon) { + const button = document.createElement("button"); + button.type = "button"; + button.title = title; + button.setAttribute("aria-label", title); + button.className = "action-button"; + button.dataset.copyContent = value; + button.appendChild(createCodicon(icon)); + return button; +} + +/** + * @param {string} iconClass + */ +function createCodicon(iconClass) { + const icon = document.createElement("span"); + icon.className = `codicon ${iconClass}`; + return icon; +} + +/** * @param {string} text */ async function copyToClipboard(text) { await navigator.clipboard.writeText(text); - api.notify("Copied type to clipboard!"); + api.notify("Copied block to clipboard!"); } diff --git a/apps/vscode-extension/webview/style.css b/apps/vscode-extension/webview/style.css index 56275ec..2999818 100644 --- a/apps/vscode-extension/webview/style.css +++ b/apps/vscode-extension/webview/style.css @@ -1,142 +1,320 @@ +:root { + color-scheme: light dark; +} + body { - font-family: - -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif; - line-height: 1.6; - max-width: 800px; - margin: 0 auto; - padding: 4px 0 12px; + margin: 0; + background: var(--vscode-editor-background); color: var(--vscode-editor-foreground); + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "Roboto", sans-serif; + line-height: 1.55; } #content { - padding: 0 12px; -} - -/* Tables from identSentences */ -#content table { - width: 100%; -} - -#content table td:first-child { - white-space: nowrap; + max-width: 960px; + margin: 0 auto; + padding: 18px 14px 28px; } -#content table td:last-child { - width: 100%; - max-width: 0; - word-break: break-word; +#content a { + color: var(--vscode-textLink-foreground, var(--vscode-editor-foreground)); + text-decoration: none; } -h1, -h2, -h3, -h4, -h5, -h6 { - color: var(--vscode-foreground); - margin-top: 1.5em; - margin-bottom: 0.5em; +#content a:hover { + text-decoration: underline; } pre { - background-color: var(--vscode-textCodeBlock-background) !important; - border: 1px solid var(--vscode-widget-border); - border-radius: 4px; - padding: 12px 16px; + margin: 0; + padding: 14px 16px; overflow-x: auto; - margin: 0.75em 0; - line-height: 1.5; + border: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.24)); + border-radius: 14px; + background: var(--vscode-textCodeBlock-background) !important; + line-height: 1.55; + tab-size: 4; } -/* Override Shiki's background to match VS Code */ +code, pre code { - background-color: transparent !important; - border-radius: 3px; - padding: 0 !important; - font-weight: var(--vscode-editor-font-weight, normal); - font-size: var(--vscode-editor-font-size, medium); font-family: var(--vscode-editor-font-family), "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace; + font-size: 0.95em; } -.copy-button { - position: absolute; - top: 8px; - right: 8px; - background: var(--vscode-button-background); - color: var(--vscode-button-foreground); - border: none; - border-radius: 3px; - padding: 4px 8px; +pre code { + background: transparent !important; + padding: 0 !important; +} + +.diagnostic-stack { + display: grid; + gap: 14px; +} + +.diagnostic-card, +.pinned-section, +.sidebar-empty-state { + border: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.22)); + border-radius: 18px; + background: var( + --vscode-editorWidget-background, + rgba(127, 127, 127, 0.05) + ); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02); +} + +.diagnostic-card { + padding: 18px; +} + +.diagnostic-header, +.pinned-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; +} + +.diagnostic-title-group { + display: grid; + gap: 6px; + min-width: 0; +} + +.diagnostic-eyebrow, +.section-eyebrow, +.pinned-label { + display: inline-flex; + align-items: center; + gap: 6px; + text-transform: uppercase; + letter-spacing: 0.08em; + font-size: 11px; + color: var(--vscode-descriptionForeground); +} + +.diagnostic-title, +.empty-state-title { + margin: 0; + font-size: 16px; + font-weight: 600; + line-height: 1.3; + color: var(--vscode-editor-foreground); +} + +.diagnostic-actions { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.action-link, +.action-button, +.copy-button, +.unpin-button { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 10px; + border: 1px solid transparent; + background: transparent; + color: var(--vscode-icon-foreground); cursor: pointer; - font-size: 12px; - opacity: 0; - transition: opacity 0.2s; + text-decoration: none; + transition: + background-color 0.15s ease, + border-color 0.15s ease, + opacity 0.15s ease; } -.code-container { - position: relative; - max-width: 100%; - overflow-x: auto; +.action-link:hover, +.action-button:hover, +.copy-button:hover, +.unpin-button:hover { + background: var( + --vscode-toolbar-hoverBackground, + rgba(127, 127, 127, 0.1) + ); + border-color: var(--vscode-widget-border, rgba(127, 127, 127, 0.24)); } -.code-container pre { +.diagnostic-note { + margin: 0 0 16px; + padding: 10px 12px; + border-radius: 12px; + background: var( + --vscode-textBlockQuote-background, + rgba(127, 127, 127, 0.06) + ); + color: var(--vscode-descriptionForeground); +} + +.diagnostic-message-section, +.translation-card { + display: grid; + gap: 12px; +} + +.diagnostic-paragraph { margin: 0; + white-space: pre-wrap; } -.code-container:hover .copy-button { - opacity: 1; +.diagnostic-paragraph code, +.diagnostic-list code { + padding: 0.1rem 0.35rem; + border-radius: 6px; + background: var(--vscode-textCodeBlock-background); } -.copy-button:hover { - background: var(--vscode-button-hoverBackground); +.inline-rich-code { + white-space: break-spaces; } -#content a { - text-decoration: none; +.inline-rich-code-multiline { + display: inline-block; + width: 100%; + margin: 0.45rem 0; + padding: 0.75rem 0.9rem; + border: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.24)); + border-radius: 12px; + background: var(--vscode-textCodeBlock-background); + white-space: pre-wrap; + overflow-wrap: anywhere; } -#content hr { - border: none; - border-top: 1px solid var(--vscode-widget-border, rgba(128, 128, 128, 0.2)); - margin: 12px 0; +.diagnostic-list { + display: grid; + gap: 6px; + margin: 0; + padding-left: 20px; } -.webview-panel .title-actions { - float: right; +.property-list { + display: flex; + flex-wrap: wrap; + gap: 8px; } -.pinned-section { - margin: 0 -12px; - background-color: rgba(255, 235, 59, 0.04); - padding: 4px 12px; - margin-bottom: 8px; +.property-chip { + display: inline-flex; + align-items: center; + min-height: 28px; + padding: 0 10px; + border-radius: 999px; + border: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.24)); + background: rgba(127, 127, 127, 0.08); + font-family: + var(--vscode-editor-font-family), "SF Mono", Monaco, "Cascadia Code", + "Roboto Mono", Consolas, "Courier New", monospace; + font-size: 12px; +} + +.code-container { + position: relative; overflow: hidden; + border: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.24)); + border-radius: 16px; + background: var(--vscode-textCodeBlock-background); } -.pinned-header { +.type-code-container { + background: var( + --vscode-editorHoverWidget-background, + var(--vscode-textCodeBlock-background) + ); +} + +.type-code-container pre, +.type-code-container code { + white-space: pre-wrap; + overflow-wrap: anywhere; + word-break: normal; +} + +.code-container pre { + border: none; + border-radius: 0; + background: transparent !important; +} + +.copy-button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; +} + +.code-container:hover .copy-button, +.code-container:focus-within .copy-button { + opacity: 1; +} + +.translation-section { + margin-top: 18px; + padding-top: 18px; + border-top: 1px solid var(--vscode-widget-border, rgba(127, 127, 127, 0.2)); + display: grid; + gap: 12px; +} + +.translation-section-header { display: flex; align-items: center; justify-content: space-between; - margin-bottom: 4px; +} + +.translation-card { + padding: 14px; + border: 1px solid var(--vscode-panel-border, rgba(127, 127, 127, 0.18)); + border-radius: 14px; + background: rgba(127, 127, 127, 0.03); +} + +.translation-title { font-size: 12px; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--vscode-editor-foreground); } -.pinned-label { - display: flex; - align-items: center; - gap: 4px; +.sidebar-empty-state { + padding: 20px; + display: grid; + gap: 8px; +} + +.sidebar-empty-state p { + margin: 0; color: var(--vscode-descriptionForeground); } -.unpin-button { - color: var(--vscode-icon-foreground); - cursor: pointer; - padding: 2px; - line-height: 1; +.pinned-section { + padding: 12px; + display: grid; + gap: 12px; + background: var( + --vscode-editorHoverWidget-background, + rgba(127, 127, 127, 0.06) + ); } -.pinned-message { +.pinned-header { + align-items: center; +} + +.pinned-label { color: var(--vscode-descriptionForeground); } + +.webview-panel .title-actions { + float: right; +} diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 4b8ea31..1199d13 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -3,7 +3,7 @@ This document explains how **pretty-ts-errors** is structured and how the VS Code extension works at runtime. > !NOTE -> Keep in mind that this document is kept minimal to avoid being out of sync with development. If critical information is missing, feel free to open a [discussion](https://github.com/yoavbls/pretty-ts-errors/discussions) or [PR](https://github.com/yoavbls/pretty-ts-errors/pulls). +> Keep in mind that this document is kept minimal to avoid being out of sync with development. If critical information is missing, feel free to open a [discussion](https://github.com/CyberT33N/pretty-ts-errors/discussions) or [PR](https://github.com/CyberT33N/pretty-ts-errors/pulls). ## `/` diff --git a/docs/conventions/diagnostic-rendering-surfaces.md b/docs/conventions/diagnostic-rendering-surfaces.md new file mode 100644 index 0000000..d165ca1 --- /dev/null +++ b/docs/conventions/diagnostic-rendering-surfaces.md @@ -0,0 +1,395 @@ +# Diagnostic Rendering Surfaces + +## Status + +Diese Konvention ist fuer den aktuellen Workspace **verbindlich**. + +Sie beschreibt die architektonisch korrekte Behandlung von: + +- nativer Hover-Darstellung +- Sidebar-/Webview-Darstellung +- Syntax-Highlighting +- Typ-Formatierung und Wrapping +- Trust-Boundaries fuer generischen, externen Diagnostic-Content + +## Zweck + +Das Ziel dieser Konvention ist eine Enterprise-grade Richtlinie fuer die +Darstellung von TypeScript-Diagnostics in `pretty-ts-errors`, bei der: + +- die Sicherheitsgrenze eindeutig bleibt, +- der Rich-Display-Pfad dauerhaft wartbar bleibt, +- Hover und Sidebar aus derselben semantischen Informationsbasis ableitbar + bleiben, +- und spaetere Aenderungen nicht versehentlich wieder in trusted raw HTML, + unklare Renderer-Zustaende oder Surface-Drift abgleiten. + +## Korrekte Ablage + +Der **korrekte Ablageort** fuer diese Konvention ist: + +- als TOC auf Workspace-Ebene: `CONVENTIONS.md` +- als fachliche Detailkonvention: `docs/conventions/diagnostic-rendering-surfaces.md` + +Diese Entscheidung ist absichtlich so getroffen: + +- `HANDOFF_*.md`-Dateien sind transiente Uebergabeartefakte und nicht die + dauerhafte Autoritaet fuer Richtlinien. +- `docs/ARCHITECTURE.md` beschreibt die grobe Struktur des Repositories, aber + nicht fein genug die verbindlichen Regeln fuer konkrete Trust-Boundaries und + Rendering-Surfaces. +- diese Konvention ist **cross-cutting**, weil sie gleichzeitig + `apps/vscode-extension`, `packages/error-translator` und `packages/formatter` + betrifft. + +## Architekturentscheidung + +### Top-Level-Entscheidung + +Der verbindliche Zielzustand lautet: + +- **eine gemeinsame semantische Rich-Content-Zwischenrepraesentation** +- **ein nativer Hover als sicherer Markdown-Surface** +- **eine Sidebar als host-owned HTML-/DOM-Shell** +- **generischer externer Content bleibt Daten und wird nicht als freies HTML + interpretiert** + +Diese Entscheidung schliesst explizit aus: + +- globales `supportHtml = true` fuer den Hover-Body +- untrusted Diagnostic-HTML im Webview +- ein Mischen von Layout-Autoritaet und Payload-Autoritaet + +## DDD-Analyse + +### Bounded Context + +Der relevante fachlich-technische Bounded Context ist +**Diagnostic Presentation**. + +Er ist zustaendig fuer: + +- Strukturierung von Diagnostics fuer UI-Surfaces +- Erhaltung der semantischen Information beim Uebergang von rohem Error-Text zu + Rich-Display +- Durchsetzung der Sicherheitsgrenze zwischen Produkt-Layout und generischem + Content + +### Ubiquitous Language + +Die folgenden Begriffe sind innerhalb dieses Contexts verbindlich: + +- **outer shell**: vollstaendig produktkontrolliertes HTML-/DOM-Geruest +- **inner layer**: semantisch strukturierter, generischer Diagnostic-Content +- **trusted shell**: vom Produkt erzeugte Struktur, Klassen, Buttons, Sections, + Header, Karten +- **untrusted payload**: workspace- oder dependency-kontrollierter + Diagnostic-Text, Typ-Inhalt, Plain-English-Translation-Input +- **rich content model**: gemeinsame semantische Darstellung der + Diagnostic-Inhalte +- **hover surface**: nativer VS-Code-Hover via `MarkdownString` +- **sidebar surface**: Webview-basierte host-owned Darstellung + +### Schichtenmodell + +Diese Konvention folgt fuer den Presentation-Context einem klaren Schichtenbild: + +1. **Policy-/Semantik-Schicht** + - `apps/vscode-extension/src/diagnosticRichContent.ts` + - bildet semantische Nodes wie `paragraph`, `inlineCode`, `codeBlock`, + `typeBlock`, `list`, `propertyList` + - ist die Single Source of Truth fuer Rich-Display-Struktur + +2. **Application-Schicht** + - `apps/vscode-extension/src/provider/sidebarViewModel.ts` + - `apps/vscode-extension/src/provider/webviewViewProvider.ts` + - `apps/vscode-extension/src/commands/*.ts` + - verantwortlich fuer Auswahl, Pinning, Locking, View-Model-Aufbau, + Refresh-Zyklen und Command-Routing + +3. **Delivery-/Adapter-Schicht** + - Hover: `apps/vscode-extension/src/hoverContent.ts` + - Sidebar/Webview: `apps/vscode-extension/webview/index.js` + - Styling: `apps/vscode-extension/webview/style.css` + - Syntax-Highlighting-Adapter: `apps/vscode-extension/src/provider/sidebarSyntaxHighlighter.ts` + - Inline-Type-Formatting-Adapter: `apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts` + +## 12-Factor-Interpretation + +Diese Extension ist keine klassische HTTP-App, aber die 12-Factor-Prinzipien +werden fuer den eingebetteten VS-Code-Kontext wie folgt interpretiert: + +### 1. Codebase + +Es gibt genau eine semantische Autoritaet fuer Rich-Display: +`DiagnosticRichContentModel`. + +### 2. Dependencies + +Rendering-Abhaengigkeiten muessen explizit und nachvollziehbar sein. +Der aktuelle Standard ist: + +- `shiki`: erlaubt +- `vscode-shiki-bridge`: **nicht** erlaubt + +### 3. Config + +Theme-Auswahl fuer Syntax-Highlighting ist Adapter-Logik und keine Domain-Regel. +Aktuell wird in der Sidebar ueber `ColorThemeKind` auf gebuendelte Shiki-Themes +gemappt. + +### 5. Build / Release / Run + +Die Richtlinie muss in denselben Pipelines validierbar sein, die auch das +Produkt bauen: + +- `typecheck` +- `build` +- `extension test` +- `formatter test` +- `error-translator test` + +### 6. Processes + +Renderer muessen so weit wie moeglich funktional und zustandsarm bleiben. +Persistent gehalten werden nur UI-bezogene Zustandsaspekte wie: + +- aktueller View-Mode +- gesperrter Diagnostic-Kontext +- gepinnte Diagnostics +- Highlighter-Cache + +### 10. Dev / Prod Parity + +Tests muessen dieselben semantischen Renderer-Pfade validieren wie die +tatsaechliche Extension. + +### 11. Logs + +Webview-Fehler und Renderer-Fehler duerfen nicht still scheitern. +Der Webview-Adapter meldet daher Logs zur Extension zurueck. + +## Verbindliche Konventionen + +### 1. Single Source of Truth + +**MUST** + +- Rich-Display-Struktur muss aus + `apps/vscode-extension/src/diagnosticRichContent.ts` stammen. +- Hover und Sidebar duerfen nicht jeweils eigene, voneinander driftende + Strukturmodelle aufbauen. + +**MUST NOT** + +- keine zweite Autoritaet aus frei zusammengeklebten HTML-Strings +- keine Sidebar-spezifische ad-hoc-Struktur als neue Wahrheitsquelle + +### 2. Sidebar-Surface + +Die Sidebar ist die **host-owned Shell-Surface**. + +Sie darf: + +- HTML und DOM fuer die aeussere Struktur voll kontrollieren +- Cards, Header, Actions, Sections, Divider, Copy-Buttons und Layout-Rahmen + selbst erzeugen +- sichere Code-/Type-Block-Darstellung bereitstellen + +Sie muss: + +- DOM ueber `document.createElement(...)` aufbauen +- generischen Content nur als Daten konsumieren +- Text ueber `textContent` oder kontrollierte Token-Nodes materialisieren + +Sie darf nicht: + +- `innerHTML` fuer generische Diagnostic-Payload verwenden +- fremde HTML-Fragmente aus Error-Texten oder Translations einbetten + +### 3. Innere isolierte Ebene + +Die innere Ebene ist **nicht HTML**, sondern Daten. + +Aktuell besteht sie aus: + +- `paragraph` +- `inlineCode` +- `codeBlock` +- `typeBlock` +- `list` +- `propertyList` + +Konsequenz: + +- generischer externer Content ist nur Payload +- die Shell kontrolliert die Darstellungsstruktur +- die Payload kontrolliert nie die HTML-Interpretation + +### 4. Hover-Surface + +Der Hover ist **kein Webview**, sondern ein nativer VS-Code-Surface. + +Darum gelten folgende Regeln: + +**MUST** + +- der Hover-Body bleibt `MarkdownString` +- `supportHtml` fuer den Body bleibt `false` +- Actions werden separat und nur fuer whitelisted Commands trusted gemacht +- dieselbe semantische Struktur darf in Hover-Markdown materialisiert werden + +**MUST NOT** + +- kein globales `supportHtml = true` fuer den Body +- keine Rueckkehr zu trusted raw HTML im Hover + +## Warum der Hover anders behandelt werden muss + +Der Unterschied zwischen Sidebar und Hover ist technisch fundamental: + +### Sidebar + +- eigenes Webview-Dokument +- eigene CSS-Schicht +- eigener DOM-Baum +- eigene JS-Laufzeit +- eigene CSP- und Nachrichtenkanal-Kontrolle + +### Hover + +- kein eigenes HTML-Dokument +- kein eigener DOM-Baum +- keine freie CSS-/JS-Oberflaeche +- nur `MarkdownString` als Host-API +- HTML dort waere nur ein sanitisiertes Teilset innerhalb des Host-Renderers + +Deshalb gilt: + +- **gleiche Sicherheitslogik**: ja +- **gleiche semantische Struktur**: ja +- **gleiche host-owned HTML-Shell**: nein + +Die Limitierung des Hover-Bereichs ist also eine **VS-Code-Produktgrenze**, keine +zufaellige Projektentscheidung. + +## Syntax-Highlighting-Konvention + +### Verbindlicher Stand + +Die Sidebar verwendet jetzt **reines Shiki**. + +Der Standard lautet: + +- `vscode-shiki-bridge`: verboten +- `shiki`: erlaubt +- nur gebuendelte Shiki-Sprachen und gebuendelte Shiki-Themes + +### Aktuelles Mapping + +- `type` -> `typescript` +- `typescriptreact` -> `tsx` +- `javascriptreact` -> `jsx` + +### Theme-Standard + +Die Theme-Wahl fuer die Sidebar folgt derzeit: + +- Dark -> `dark-plus` +- Light -> `light-plus` +- High Contrast Dark -> `github-dark-high-contrast` +- High Contrast Light -> `github-light-high-contrast` + +### Architektonische Begruendung + +Diese Wahl ist bewusst konservativ: + +- kein Bridge-Layer zu VS-Code-Extension-Themes +- kein zusaetzlicher Runtime-Kopplungspunkt an Theme-/Grammar-Introspection +- weniger Fehlermoeglichkeiten im Build und in der Extension-Runtime + +### Erwartungsmanagement + +Diese Konvention garantiert **nicht** 1:1 dieselbe Farbgebung wie der VS-Code-Editor. + +Sie garantiert stattdessen: + +- stabilen, reproduzierbaren Highlighting-Standard +- explizite Dependency-Kontrolle +- klaren Fallback-Pfad ohne VS-Code-Theme-Bridge + +## Typ-Formatierung und Wrapping + +Fuer die Sidebar gilt: + +- lange komplexe Inline-Types duerfen zu multiline Rich-Code-Darstellung + angehoben werden +- die aktuelle Sidebar-Formatter-Schicht arbeitet mit 4er-Einrueckung +- komplexe Types werden als Lesbarkeitsoptimierung strukturiert umgebrochen + +Die lokale Adapter-Implementierung dafuer liegt in: + +- `apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts` + +Diese Schicht ist bewusst lokal gehalten, damit keine zusaetzliche riskante +Formatter-Runtime in den Extension-Webview-Pfad gezogen wird. + +## Escaping-Konvention + +Template-Literal-Types und andere Inhalte mit eingebetteten Backticks muessen +intakt bleiben. + +Darum gilt: + +- Code-Spans verwenden variable Backtick-Fence-Laengen +- Parser und Renderer muessen mehrfache Backtick-Fences korrekt verstehen +- ein Inhalt wie `` `${string}@${string}.${string}` `` darf nie einen aeusseren + Markdown-Code-Span zerbrechen + +Relevante Dateien: + +- `packages/error-translator/src/getImprovedMessage.ts` +- `apps/vscode-extension/src/diagnosticRichContent.ts` + +## Prohibitions + +Folgendes ist fuer diese Konvention explizit verboten: + +- untrusted Diagnostic-HTML im Webview +- `innerHTML` fuer generischen Payload-Content +- global trusted HTML im Hover-Body +- Rueckkehr zu `vscode-shiki-bridge` +- parallele, voneinander abweichende Rich-Display-Strukturmodelle + +## Dateien mit Richtlinienautoritaet + +Die aktuell massgeblichen Implementierungsorte fuer diese Konvention sind: + +- `CONVENTIONS.md` +- `docs/conventions/diagnostic-rendering-surfaces.md` +- `apps/vscode-extension/src/diagnosticRichContent.ts` +- `apps/vscode-extension/src/hoverContent.ts` +- `apps/vscode-extension/src/provider/sidebarViewModel.ts` +- `apps/vscode-extension/src/provider/webviewViewProvider.ts` +- `apps/vscode-extension/src/provider/sidebarSyntaxHighlighter.ts` +- `apps/vscode-extension/src/provider/sidebarInlineTypeFormatter.ts` +- `apps/vscode-extension/webview/index.js` +- `apps/vscode-extension/webview/style.css` +- `packages/error-translator/src/getImprovedMessage.ts` + +## Pflege der Konvention + +Diese Konvention **MUSS** aktualisiert werden, wenn sich mindestens einer der +folgenden Punkte aendert: + +- die Trust-Boundary zwischen Shell und Payload +- die Rich-Content-Zwischenrepraesentation +- die Hover-Strategie +- die Sidebar-Syntax-Highlighting-Strategie +- die Escaping-Regeln fuer Translation- oder Type-Content + +Parallel dazu muessen die passenden Tests mitgezogen werden: + +- Extension-Tests fuer Hover und Sidebar +- Translator-Tests fuer Escaping und Platzhalterersetzung +- Formatter-Tests fuer Typ-Formatierung und Wrapping diff --git a/docs/hide-original-errors.md b/docs/hide-original-errors.md index 114e303..0b86e29 100644 --- a/docs/hide-original-errors.md +++ b/docs/hide-original-errors.md @@ -11,7 +11,7 @@ To hide the original errors, display only the prettified ones, and make type blo ### Hiding Original Errors Unfortunately, VSCode doesn't currently support formatted diagnostics. Once it does, we'll be able to convert the extension to a TypeScript LSP Plugin that replaces the original error with the prettified version. -For updates on this feature, follow [this issue](https://github.com/yoavbls/pretty-ts-errors/issues/3). +For updates on this feature, follow [this issue](https://github.com/CyberT33N/pretty-ts-errors/issues/3). ### Making Type Blocks Copyable diff --git a/eslint.config.mjs b/eslint.config.mjs index 671c303..a52ec5a 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -10,12 +10,14 @@ export default tseslint.config( ...tseslint.configs.stylistic, { ignores: [ - "apps/*/scripts/*", - "apps/*/dist/*", - "packages/*/scripts/*", - "packages/*/dist/*", - "examples/*", - ".vscode-test/*", + "apps/*/scripts/**", + "apps/*/dist/**", + "apps/*/out/**", + "apps/*/.vscode-test/**", + "packages/*/scripts/**", + "packages/*/dist/**", + "examples/**", + ".vscode-test/**", ], }, { @@ -41,9 +43,18 @@ export default tseslint.config( "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-non-null-assertion": "off", curly: "warn", - eqeqeq: ["warn", { smart: true }], + eqeqeq: ["warn", "smart"], "no-throw-literal": "warn", semi: "off", }, + }, + { + files: ["apps/*/webview/**/*.js"], + languageOptions: { + globals: { + ...globals.browser, + acquireVsCodeApi: false, + }, + }, } ); diff --git a/examples/errors.js b/examples/errors.js index 0c0f695..f67dcf9 100644 --- a/examples/errors.js +++ b/examples/errors.js @@ -34,6 +34,30 @@ const getPerson = () => ({ }, }); +/** + * Plural-form hover example: + * should trigger "is missing the following properties from type ..." + * with a richer inline object shape for direct visual comparison. + * + * @type {{ + * user: { + * name: string; + * email: `${string}@${string}.${string}`; + * age: number; + * address: { + * street: string; + * city: string; + * country: string; + * }; + * }; + * }} + */ +const pluralHoverExample = { + user: { + email: "usr@usr.io", + }, +}; + /** * @typedef {Object} JSAnimal * @property {string} name diff --git a/nx.json b/nx.json new file mode 100644 index 0000000..8a9301c --- /dev/null +++ b/nx.json @@ -0,0 +1,71 @@ +{ + "$schema": "./node_modules/nx/schemas/nx-schema.json", + "defaultBase": "main", + "namedInputs": { + "sharedGlobals": [ + "{workspaceRoot}/eslint.config.mjs", + "{workspaceRoot}/pnpm-workspace.yaml", + "{workspaceRoot}/tsconfig.base.json", + "{workspaceRoot}/tsconfig.json" + ], + "default": ["{projectRoot}/**/*", "sharedGlobals"], + "production": [ + "default", + "!{projectRoot}/**/*.spec.ts", + "!{projectRoot}/**/*.test.ts", + "!{projectRoot}/test/**", + "!{projectRoot}/coverage/**", + "!{projectRoot}/vitest.config.*" + ] + }, + "plugins": [ + { + "plugin": "@nx/js/typescript", + "include": ["apps/**/*", "packages/**/*"], + "options": { + "typecheck": { + "targetName": "typecheck" + }, + "build": { + "targetName": "build", + "configName": "tsconfig.lib.json", + "buildDepsName": "build-deps", + "watchDepsName": "watch-deps" + } + } + }, + { + "plugin": "@nx/eslint/plugin", + "options": { + "targetName": "lint" + } + }, + { + "plugin": "@nx/vitest", + "include": ["packages/**/*"], + "options": { + "testTargetName": "test", + "testMode": "run" + } + } + ], + "targetDefaults": { + "@nx/esbuild:esbuild": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] + }, + "@nx/js:tsc": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] + } + }, + "release": { + "projects": [ + "@pretty-ts-errors/formatter", + "@pretty-ts-errors/vscode-formatter" + ] + }, + "analytics": false +} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 7da85c8..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7508 +0,0 @@ -{ - "name": "pretty-ts-errors-mono", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "pretty-ts-errors-mono", - "workspaces": [ - "packages/*", - "apps/*" - ], - "devDependencies": { - "@eslint/js": "^9.15.0", - "@types/node": "^20.19.21", - "eslint": "^9.15.0", - "globals": "^16.4.0", - "prettier": "^3.6.2", - "turbo": "^2.9.14", - "typescript": "^5.7.2", - "typescript-eslint": "^8.15.0" - }, - "engines": { - "node": ">=20" - } - }, - "apps/vscode-extension": { - "name": "pretty-ts-errors", - "version": "0.8.7", - "dependencies": { - "@pretty-ts-errors/formatter": "*", - "@pretty-ts-errors/utils": "*", - "@pretty-ts-errors/vscode-formatter": "*", - "shiki": "^3.13.0", - "vscode-languageclient": "^9.0.1", - "vscode-shiki-bridge": "^0.5.2" - }, - "devDependencies": { - "@shikijs/types": "^3.13.0", - "@types/mocha": "^10.0.10", - "@types/node": "^16.11.68", - "@types/vscode": "^1.77.0", - "@types/vscode-webview": "^1.57.5", - "@vscode/codicons": "^0.0.41", - "@vscode/test-electron": "^2.5.2", - "esbuild": "^0.28.1", - "glob": "^13.0.6", - "mocha": "12.0.0-beta-10", - "npm-run-all": "^4.1.5" - }, - "engines": { - "vscode": "^1.77.0" - } - }, - "apps/vscode-extension/node_modules/@types/node": { - "version": "16.18.126", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", - "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", - "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.5" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", - "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.14.0", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.5", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", - "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.95.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.95.0.tgz", - "integrity": "sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@pretty-ts-errors/formatter": { - "resolved": "packages/formatter", - "link": true - }, - "node_modules/@pretty-ts-errors/utils": { - "resolved": "packages/utils", - "link": true - }, - "node_modules/@pretty-ts-errors/vscode-formatter": { - "resolved": "packages/vscode-formatter", - "link": true - }, - "node_modules/@quansync/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quansync": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.45.tgz", - "integrity": "sha512-bfgKYhFiXJALeA/riil908+2vlyWGdwa7Ju5S+JgWZYdR4jtiPOGdM6WLfso1dojCh+4ZWeiTwPeV9IKQEX+4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.45.tgz", - "integrity": "sha512-xjCv4CRVsSnnIxTuyH1RDJl5OEQ1c9JYOwfDAHddjJDxCw46ZX9q80+xq7Eok7KC4bRSZudMJllkvOKv0T9SeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.45.tgz", - "integrity": "sha512-ddcO9TD3D/CLUa/l8GO8LHzBOaZqWg5ClMy3jICoxwCuoz47h9dtqPsIeTiB6yR501LQTeDsjA4lIFd7u3Ljfw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.45.tgz", - "integrity": "sha512-MBTWdrzW9w+UMYDUvnEuh0pQvLENkl2Sis15fHTfHVW7ClbGuez+RWopZudIDEGkpZXdeI4CkRXk+vdIIebrmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.45.tgz", - "integrity": "sha512-4YgoCFiki1HR6oSg+GxxfzfnVCesQxLF1LEnw9uXS/MpBmuog0EOO2rYfy69rWP4tFZL9IWp6KEfGZLrZ7aUog==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.45.tgz", - "integrity": "sha512-LE1gjAwQRrbCOorJJ7LFr10s5vqYf5a00V5Ea9wXcT2+56n5YosJkcp8eQ12FxRBv2YX8dsdQJb+ZTtYJwb6XQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.45.tgz", - "integrity": "sha512-tdy8ThO/fPp40B81v0YK3QC+KODOmzJzSUOO37DinQxzlTJ026gqUSOM8tzlVixRbQJltgVDCTYF8HNPRErQTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz", - "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz", - "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.45.tgz", - "integrity": "sha512-lS082ROBWdmOyVY/0YB3JmsiClaWoxvC+dA8/rbhyB9VLkvVEaihLEOr4CYmrMse151C4+S6hCw6oa1iewox7g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.45.tgz", - "integrity": "sha512-Hi73aYY0cBkr1/SvNQqH8Cd+rSV6S9RB5izCv0ySBcRnd/Wfn5plguUoGYwBnhHgFbh6cPw9m2dUVBR6BG1gxA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.45.tgz", - "integrity": "sha512-fljEqbO7RHHogNDxYtTzr+GNjlfOx21RUyGmF+NrkebZ8emYYiIqzPxsaMZuRx0rgZmVmliOzEp86/CQFDKhJQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.45.tgz", - "integrity": "sha512-ZJDB7lkuZE9XUnWQSYrBObZxczut+8FZ5pdanm8nNS1DAo8zsrPuvGwn+U3fwU98WaiFsNrA4XHngesCGr8tEQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^1.0.7" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.45.tgz", - "integrity": "sha512-zyzAjItHPUmxg6Z8SyRhLdXlJn3/D9KL5b9mObUrBHhWS/GwRH4665xCiFqeuktAhhWutqfc+rOV2LjK4VYQGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-ia32-msvc": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.45.tgz", - "integrity": "sha512-wODcGzlfxqS6D7BR0srkJk3drPwXYLu7jPHN27ce2c4PUnVVmJnp9mJzUQGT4LpmHmmVdMZ+P6hKvyTGBzc1CA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.45.tgz", - "integrity": "sha512-wiU40G1nQo9rtfvF9jLbl79lUgjfaD/LTyUEw2Wg/gdF5OhjzpKMVugZQngO+RNdwYaNj+Fs+kWBWfp4VXPMHA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.45.tgz", - "integrity": "sha512-Le9ulGCrD8ggInzWw/k2J8QcbPz7eGIOWqfJ2L+1R0Opm7n6J37s2hiDWlh6LJN0Lk9L5sUzMvRHKW7UxBZsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@shikijs/core": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz", - "integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.5" - } - }, - "node_modules/@shikijs/engine-javascript": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz", - "integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.4" - } - }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", - "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0", - "@shikijs/vscode-textmate": "^10.0.2" - } - }, - "node_modules/@shikijs/langs": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", - "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0" - } - }, - "node_modules/@shikijs/themes": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", - "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0" - } - }, - "node_modules/@shikijs/types": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", - "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@turbo/darwin-64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/darwin-64/-/darwin-64-2.9.14.tgz", - "integrity": "sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@turbo/darwin-arm64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/darwin-arm64/-/darwin-arm64-2.9.14.tgz", - "integrity": "sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@turbo/linux-64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/linux-64/-/linux-64-2.9.14.tgz", - "integrity": "sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@turbo/linux-arm64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/linux-arm64/-/linux-arm64-2.9.14.tgz", - "integrity": "sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@turbo/windows-64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/windows-64/-/windows-64-2.9.14.tgz", - "integrity": "sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@turbo/windows-arm64": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@turbo/windows-arm64/-/windows-arm64-2.9.14.tgz", - "integrity": "sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mocha": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", - "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.19.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.37.tgz", - "integrity": "sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/vscode": { - "version": "1.110.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.110.0.tgz", - "integrity": "sha512-AGuxUEpU4F4mfuQjxPPaQVyuOMhs+VT/xRok1jiHVBubHK7lBRvCuOMZG0LKUwxncrPorJ5qq/uil3IdZBd5lA==", - "license": "MIT" - }, - "node_modules/@types/vscode-webview": { - "version": "1.57.5", - "resolved": "https://registry.npmjs.org/@types/vscode-webview/-/vscode-webview-1.57.5.tgz", - "integrity": "sha512-iBAUYNYkz+uk1kdsq05fEcoh8gJmwT3lqqFPN7MGyjQ3HVloViMdo7ZJ8DFIP8WOK74PjOEilosqAyxV2iUFUw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", - "integrity": "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.57.0", - "@typescript-eslint/type-utils": "8.57.0", - "@typescript-eslint/utils": "8.57.0", - "@typescript-eslint/visitor-keys": "8.57.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.57.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz", - "integrity": "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.57.0", - "@typescript-eslint/types": "8.57.0", - "@typescript-eslint/typescript-estree": "8.57.0", - "@typescript-eslint/visitor-keys": "8.57.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", - "integrity": "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.57.0", - "@typescript-eslint/types": "^8.57.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", - "integrity": "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.57.0", - "@typescript-eslint/visitor-keys": "8.57.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", - "integrity": "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", - "integrity": "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.57.0", - "@typescript-eslint/typescript-estree": "8.57.0", - "@typescript-eslint/utils": "8.57.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz", - "integrity": "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", - "integrity": "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.57.0", - "@typescript-eslint/tsconfig-utils": "8.57.0", - "@typescript-eslint/types": "8.57.0", - "@typescript-eslint/visitor-keys": "8.57.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz", - "integrity": "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.57.0", - "@typescript-eslint/types": "8.57.0", - "@typescript-eslint/typescript-estree": "8.57.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", - "integrity": "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.57.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@vitest/coverage-v8": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.2.tgz", - "integrity": "sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.2", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", - "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "4.1.2", - "vitest": "4.1.2" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/expect": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz", - "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz", - "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz", - "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.2", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz", - "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.2", - "@vitest/utils": "4.1.2", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz", - "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz", - "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.2", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vscode/codicons": { - "version": "0.0.41", - "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.41.tgz", - "integrity": "sha512-v6/8nx76zau3Joxjzi3eN/FVw+7jKBq4j7LTZY5FhFhq2g0OoFebZ3vRZbv/pUopGpbCnJJ4FOz+NzbjVsmoiw==", - "dev": true, - "license": "CC-BY-4.0" - }, - "node_modules/@vscode/test-electron": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.5.2.tgz", - "integrity": "sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.5", - "jszip": "^3.10.1", - "ora": "^8.1.0", - "semver": "^7.6.2" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", - "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/ast-kit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", - "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "pathe": "^2.0.3" - }, - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - } - }, - "node_modules/ast-v8-to-istanbul": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", - "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "estree-walker": "^3.0.3", - "js-tokens": "^10.0.0" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/birpc": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", - "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC" - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defu": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", - "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", - "dev": true - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/diff": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", - "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dts-resolver": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/dts-resolver/-/dts-resolver-2.1.3.tgz", - "integrity": "sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "oxc-resolver": ">=11.0.0" - }, - "peerDependenciesMeta": { - "oxc-resolver": { - "optional": true - } - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/empathic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", - "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", - "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.1", - "@esbuild/android-arm": "0.28.1", - "@esbuild/android-arm64": "0.28.1", - "@esbuild/android-x64": "0.28.1", - "@esbuild/darwin-arm64": "0.28.1", - "@esbuild/darwin-x64": "0.28.1", - "@esbuild/freebsd-arm64": "0.28.1", - "@esbuild/freebsd-x64": "0.28.1", - "@esbuild/linux-arm": "0.28.1", - "@esbuild/linux-arm64": "0.28.1", - "@esbuild/linux-ia32": "0.28.1", - "@esbuild/linux-loong64": "0.28.1", - "@esbuild/linux-mips64el": "0.28.1", - "@esbuild/linux-ppc64": "0.28.1", - "@esbuild/linux-riscv64": "0.28.1", - "@esbuild/linux-s390x": "0.28.1", - "@esbuild/linux-x64": "0.28.1", - "@esbuild/netbsd-arm64": "0.28.1", - "@esbuild/netbsd-x64": "0.28.1", - "@esbuild/openbsd-arm64": "0.28.1", - "@esbuild/openbsd-x64": "0.28.1", - "@esbuild/openharmony-arm64": "0.28.1", - "@esbuild/sunos-x64": "0.28.1", - "@esbuild/win32-arm64": "0.28.1", - "@esbuild/win32-ia32": "0.28.1", - "@esbuild/win32-x64": "0.28.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", - "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.2", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.5", - "@eslint/js": "9.39.4", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.5", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect-type": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fast-plist/-/fast-plist-0.1.3.tgz", - "integrity": "sha512-d9cEfo/WcOezgPLAC/8t8wGb6YOD6JTCPMw2QcG2nAdFmyY+9rTUizCTaGjIZAloWENTEUMAPpkUAIJJJ0i96A==", - "license": "MIT" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", - "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.13.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", - "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hookable": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/js-tokens": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", - "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "license": "MIT" - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dev": true, - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/magicast": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", - "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "source-map-js": "^1.2.1" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", - "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mocha": { - "version": "12.0.0-beta-10", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-12.0.0-beta-10.tgz", - "integrity": "sha512-edlHS69tgkDTSQotUVP6KNtrIV/qQB/uwbxLHE8yFoD2htrbtFv21CyyNVUC9LvcHNeMwNeR2uxJYxYhWPKGTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^5.0.0", - "debug": "^4.3.5", - "diff": "^8.0.3", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^13.0.0", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "is-unicode-supported": "^0.1.0", - "js-yaml": "^4.1.0", - "minimatch": "^10.2.2", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^7.0.2", - "strip-json-comments": "^5.0.3", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/mocha/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mocha/node_modules/strip-json-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", - "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT" - }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/oniguruma-parser": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", - "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", - "license": "MIT" - }, - "node_modules/oniguruma-to-es": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", - "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", - "license": "MIT", - "dependencies": { - "oniguruma-parser": "^0.12.1", - "regex": "^6.0.1", - "regex-recursion": "^6.0.2" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-ts-errors": { - "resolved": "apps/vscode-extension", - "link": true - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/quansync": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", - "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/antfu" - }, - { - "type": "individual", - "url": "https://github.com/sponsors/sxzz" - } - ], - "license": "MIT" - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", - "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-recursion": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", - "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-utilities": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rolldown": { - "version": "1.0.0-beta.45", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.45.tgz", - "integrity": "sha512-iMmuD72XXLf26Tqrv1cryNYLX6NNPLhZ3AmNkSf8+xda0H+yijjGJ+wVT9UdBUHOpKzq9RjKtQKRCWoEKQQBZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.95.0", - "@rolldown/pluginutils": "1.0.0-beta.45" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-beta.45", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.45", - "@rolldown/binding-darwin-x64": "1.0.0-beta.45", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.45", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.45", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.45", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.45", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.45", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.45", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.45", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.45", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.45", - "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.45", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.45" - } - }, - "node_modules/rolldown-plugin-dts": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.17.8.tgz", - "integrity": "sha512-76EEBlhF00yeY6M7VpMkWKI4r9WjuoMiOGey7j4D6zf3m0BR+ZrrY9hvSXdueJ3ljxSLq4DJBKFpX/X9+L7EKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.28.5", - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "ast-kit": "^2.2.0", - "birpc": "^2.8.0", - "dts-resolver": "^2.1.3", - "get-tsconfig": "^4.13.0", - "magic-string": "^0.30.21", - "obug": "^2.0.0" - }, - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "@ts-macro/tsc": "^0.3.6", - "@typescript/native-preview": ">=7.0.0-dev.20250601.1", - "rolldown": "^1.0.0-beta.44", - "typescript": "^5.0.0", - "vue-tsc": "~3.1.0" - }, - "peerDependenciesMeta": { - "@ts-macro/tsc": { - "optional": true - }, - "@typescript/native-preview": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", - "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", - "dev": true, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", - "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shiki": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz", - "integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==", - "license": "MIT", - "dependencies": { - "@shikijs/core": "3.23.0", - "@shikijs/engine-javascript": "3.23.0", - "@shikijs/engine-oniguruma": "3.23.0", - "@shikijs/langs": "3.23.0", - "@shikijs/themes": "3.23.0", - "@shikijs/types": "3.23.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", - "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", - "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/tsdown": { - "version": "0.15.12", - "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.15.12.tgz", - "integrity": "sha512-c8VLlQm8/lFrOAg5VMVeN4NAbejZyVQkzd+ErjuaQgJFI/9MhR9ivr0H/CM7UlOF1+ELlF6YaI7sU/4itgGQ8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansis": "^4.2.0", - "cac": "^6.7.14", - "chokidar": "^4.0.3", - "debug": "^4.4.3", - "diff": "^8.0.2", - "empathic": "^2.0.0", - "hookable": "^5.5.3", - "rolldown": "1.0.0-beta.45", - "rolldown-plugin-dts": "^0.17.2", - "semver": "^7.7.3", - "tinyexec": "^1.0.1", - "tinyglobby": "^0.2.15", - "tree-kill": "^1.2.2", - "unconfig": "^7.3.3" - }, - "bin": { - "tsdown": "dist/run.mjs" - }, - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "@arethetypeswrong/core": "^0.18.1", - "publint": "^0.3.0", - "typescript": "^5.0.0", - "unplugin-lightningcss": "^0.4.0", - "unplugin-unused": "^0.5.0", - "unrun": "^0.2.1" - }, - "peerDependenciesMeta": { - "@arethetypeswrong/core": { - "optional": true - }, - "publint": { - "optional": true - }, - "typescript": { - "optional": true - }, - "unplugin-lightningcss": { - "optional": true - }, - "unplugin-unused": { - "optional": true - }, - "unrun": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, - "node_modules/turbo": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.9.14.tgz", - "integrity": "sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==", - "dev": true, - "bin": { - "turbo": "bin/turbo" - }, - "optionalDependencies": { - "@turbo/darwin-64": "2.9.14", - "@turbo/darwin-arm64": "2.9.14", - "@turbo/linux-64": "2.9.14", - "@turbo/linux-arm64": "2.9.14", - "@turbo/windows-64": "2.9.14", - "@turbo/windows-arm64": "2.9.14" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.0.tgz", - "integrity": "sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.57.0", - "@typescript-eslint/parser": "8.57.0", - "@typescript-eslint/typescript-estree": "8.57.0", - "@typescript-eslint/utils": "8.57.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unconfig": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-7.5.0.tgz", - "integrity": "sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@quansync/fs": "^1.0.0", - "defu": "^6.1.4", - "jiti": "^2.6.1", - "quansync": "^1.0.0", - "unconfig-core": "7.5.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/unconfig-core": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/unconfig-core/-/unconfig-core-7.5.0.tgz", - "integrity": "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@quansync/fs": "^1.0.0", - "quansync": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vitest": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz", - "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.2", - "@vitest/mocker": "4.1.2", - "@vitest/pretty-format": "4.1.2", - "@vitest/runner": "4.1.2", - "@vitest/snapshot": "4.1.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.2", - "@vitest/browser-preview": "4.1.2", - "@vitest/browser-webdriverio": "4.1.2", - "@vitest/ui": "4.1.2", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "vite": { - "optional": false - } - } - }, - "node_modules/vitest/node_modules/@oxc-project/types": { - "version": "0.132.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz", - "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", - "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz", - "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz", - "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz", - "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz", - "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz", - "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz", - "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz", - "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz", - "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz", - "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz", - "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz", - "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz", - "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vitest/node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vitest/node_modules/@vitest/mocker": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz", - "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.2", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/rolldown": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", - "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.132.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.2", - "@rolldown/binding-darwin-arm64": "1.0.2", - "@rolldown/binding-darwin-x64": "1.0.2", - "@rolldown/binding-freebsd-x64": "1.0.2", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", - "@rolldown/binding-linux-arm64-gnu": "1.0.2", - "@rolldown/binding-linux-arm64-musl": "1.0.2", - "@rolldown/binding-linux-ppc64-gnu": "1.0.2", - "@rolldown/binding-linux-s390x-gnu": "1.0.2", - "@rolldown/binding-linux-x64-gnu": "1.0.2", - "@rolldown/binding-linux-x64-musl": "1.0.2", - "@rolldown/binding-openharmony-arm64": "1.0.2", - "@rolldown/binding-wasm32-wasi": "1.0.2", - "@rolldown/binding-win32-arm64-msvc": "1.0.2", - "@rolldown/binding-win32-x64-msvc": "1.0.2" - } - }, - "node_modules/vitest/node_modules/vite": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", - "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.2", - "tinyglobby": "^0.2.16" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageclient": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", - "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", - "license": "MIT", - "dependencies": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.5" - }, - "engines": { - "vscode": "^1.82.0" - } - }, - "node_modules/vscode-languageclient/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/vscode-languageclient/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "license": "MIT", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "license": "MIT" - }, - "node_modules/vscode-shiki-bridge": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/vscode-shiki-bridge/-/vscode-shiki-bridge-0.5.2.tgz", - "integrity": "sha512-/9YKUFJuNOMxpTFk0PYSSf+p+/jHktBOxMhDe1ueHvT1afhgopg1y5gKQax76gd03gYyb/kRVuiixnT5Utb58A==", - "license": "MIT", - "workspaces": [ - "example/*" - ], - "dependencies": { - "fast-plist": "^0.1.3", - "jsonc-parser": "^3.3.1" - }, - "peerDependencies": { - "@types/vscode": "^1.102.0", - "shiki": "^3.9.2" - } - }, - "node_modules/vscode-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", - "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workerpool": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", - "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "packages/formatter": { - "name": "@pretty-ts-errors/formatter", - "version": "0.1.8", - "license": "MIT", - "dependencies": { - "@pretty-ts-errors/utils": "*", - "prettier": "^3.6.2" - }, - "devDependencies": { - "@vitest/coverage-v8": "^4.1.2", - "tsdown": "^0.15.6", - "vitest": "^4.1.2" - } - }, - "packages/utils": { - "name": "@pretty-ts-errors/utils", - "dependencies": { - "ts-dedent": "^2.2.0" - }, - "devDependencies": {} - }, - "packages/vscode-formatter": { - "name": "@pretty-ts-errors/vscode-formatter", - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "@pretty-ts-errors/formatter": "*", - "@pretty-ts-errors/utils": "*", - "lz-string": "^1.5.0", - "vscode-languageserver-types": "^3.17.5", - "vscode-uri": "^3.1.0" - }, - "devDependencies": { - "tsdown": "^0.15.6", - "vitest": "^4.1.2" - } - } - } -} diff --git a/package.json b/package.json index 62fd631..8e3733d 100644 --- a/package.json +++ b/package.json @@ -1,30 +1,33 @@ { + "name": "pretty-ts-errors-mono", "private": true, - "scripts": { - "build": "turbo run build", - "dev": "turbo run dev", - "lint": "turbo run lint", - "test": "turbo run test", - "format": "prettier --write \"**/*.{ts,tsx,js,mjs,cjs,json,md,yml,yaml,css,html}\"", - "format:check": "prettier --check \"**/*.{ts,tsx,js,mjs,cjs,json,md,yml,yaml,css,html}\"" - }, - "engines": { - "node": ">=20" + "packageManager": "pnpm@11.7.0", + "devEngines": { + "packageManager": { + "name": "pnpm", + "version": "11.7.0", + "onFail": "error" + }, + "runtime": { + "name": "node", + "version": "26.2.0", + "onFail": "error" + } }, "devDependencies": { - "@eslint/js": "^9.15.0", - "@types/node": "^20.19.21", - "eslint": "^9.15.0", - "globals": "^16.4.0", - "prettier": "^3.6.2", - "turbo": "^2.9.14", - "typescript": "^5.7.2", - "typescript-eslint": "^8.15.0" - }, - "name": "pretty-ts-errors-mono", - "packageManager": "npm@10.0.0", - "workspaces": [ - "packages/*", - "apps/*" - ] + "@eslint/js": "catalog:", + "@nx/esbuild": "catalog:", + "@nx/eslint": "catalog:", + "@nx/js": "catalog:", + "@nx/vitest": "catalog:", + "@nx/web": "catalog:", + "@types/node": "catalog:", + "@vitest/coverage-v8": "catalog:", + "eslint": "catalog:", + "globals": "catalog:", + "nx": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:", + "typescript-eslint": "catalog:" + } } diff --git a/packages/error-translator/package.json b/packages/error-translator/package.json new file mode 100644 index 0000000..23d59ab --- /dev/null +++ b/packages/error-translator/package.json @@ -0,0 +1,23 @@ +{ + "name": "@pretty-ts-errors/error-translator", + "private": true, + "version": "0.1.0", + "type": "module", + "description": "Local plain-English translator for TypeScript diagnostics", + "files": [ + "dist/**" + ], + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } + }, + "license": "MIT", + "devDependencies": { + "vitest": "catalog:" + } +} diff --git a/packages/error-translator/project.json b/packages/error-translator/project.json new file mode 100644 index 0000000..48d01ed --- /dev/null +++ b/packages/error-translator/project.json @@ -0,0 +1,53 @@ +{ + "name": "@pretty-ts-errors/error-translator", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/error-translator/src", + "projectType": "library", + "tags": ["scope:packages", "type:library"], + "targets": { + "refresh-diagnostics-db": { + "executor": "nx:run-commands", + "cache": false, + "options": { + "cwd": "packages/error-translator", + "command": "node scripts/refreshTsErrorMessages.mjs" + } + }, + "refresh-contract-data": { + "executor": "nx:run-commands", + "cache": false, + "options": { + "cwd": "packages/error-translator", + "commands": [ + "node scripts/refreshTsErrorMessages.mjs", + "node scripts/bundleErrors.mjs" + ], + "parallel": false + } + }, + "bundle-data": { + "executor": "nx:run-commands", + "cache": false, + "options": { + "cwd": "packages/error-translator", + "command": "node scripts/bundleErrors.mjs" + } + }, + "validate-contract-data": { + "executor": "nx:run-commands", + "cache": false, + "options": { + "cwd": "packages/error-translator", + "command": "node scripts/validateContractData.mjs" + } + }, + "build": { + "...": true, + "dependsOn": ["validate-contract-data", "..."], + "options": { + "...": true, + "assets": ["packages/error-translator/src/generated/*.json"] + } + } + } +} diff --git a/packages/error-translator/scripts/bundleErrors.mjs b/packages/error-translator/scripts/bundleErrors.mjs new file mode 100644 index 0000000..b8e4228 --- /dev/null +++ b/packages/error-translator/scripts/bundleErrors.mjs @@ -0,0 +1,153 @@ +import { createRequire } from "node:module"; +import { mkdir, readdir, readFile, writeFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const require = createRequire(import.meta.url); +const ts = require("typescript"); + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const packageRoot = path.resolve(scriptDir, ".."); +const errorsDir = path.join(packageRoot, "vendor", "matt-pocock", "errors"); +const outputDir = path.join(packageRoot, "src", "generated"); +const outputFile = path.join(outputDir, "bundleErrors.json"); + +function parseTranslationMarkdown(markdown, fileName) { + const match = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/u.exec(markdown); + + if (match === null) { + throw new Error(`Missing front matter in ${fileName}.`); + } + + const body = match[2]?.trim(); + if (body === undefined || body.length === 0) { + throw new Error(`Missing translation body in ${fileName}.`); + } + + const originalMatch = /^original:\s*(.+)$/mu.exec(match[1]); + if (originalMatch === null) { + throw new Error(`Missing original diagnostic message in ${fileName}.`); + } + + return { + body, + original: unwrapQuotedValue(originalMatch[1].trim()), + }; +} + +function unwrapQuotedValue(value) { + if ( + (value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'")) + ) { + return value.slice(1, -1); + } + + return value; +} + +function getCategoryName(category) { + const categoryName = ts.DiagnosticCategory?.[category]; + return typeof categoryName === "string" ? categoryName : "Error"; +} + +function buildFallbackBody(diagnostic) { + const categoryName = getCategoryName(diagnostic.category).toLowerCase("en"); + + switch (categoryName) { + case "suggestion": + return `TypeScript suggests: ${diagnostic.message}`; + case "message": + return `TypeScript reports: ${diagnostic.message}`; + default: + return `TypeScript reports this error: ${diagnostic.message}`; + } +} + +function getCurrentDiagnostics() { + return Object.values(ts.Diagnostics) + .filter((diagnostic) => { + return ( + typeof diagnostic === "object" && + diagnostic !== null && + typeof diagnostic.code === "number" && + typeof diagnostic.message === "string" + ); + }) + .sort((left, right) => left.code - right.code); +} + +async function loadCuratedTranslations() { + const files = (await readdir(errorsDir)) + .filter((file) => file.endsWith(".md")) + .sort((left, right) => left.localeCompare(right, "en")); + + const curatedTranslationsByCode = new Map(); + + for (const fileName of files) { + const code = Number(path.parse(fileName).name); + if (!Number.isInteger(code)) { + throw new Error(`Cannot derive numeric diagnostic code from ${fileName}.`); + } + + const markdown = await readFile(path.join(errorsDir, fileName), "utf8"); + const translation = parseTranslationMarkdown(markdown, fileName); + + if (curatedTranslationsByCode.has(code)) { + throw new Error(`Duplicate curated translation for TS${code}.`); + } + + curatedTranslationsByCode.set(code, { + ...translation, + fileName, + }); + } + + return curatedTranslationsByCode; +} + +async function bundleErrors() { + const diagnostics = getCurrentDiagnostics(); + const diagnosticsByCode = new Map( + diagnostics.map((diagnostic) => [diagnostic.code, diagnostic]), + ); + const curatedTranslationsByCode = await loadCuratedTranslations(); + + const json = {}; + + for (const [code, translation] of curatedTranslationsByCode) { + if (!diagnosticsByCode.has(code)) { + throw new Error( + `Curated translation ${translation.fileName} targets removed or unknown TS${code}.`, + ); + } + } + + for (const diagnostic of diagnostics) { + const curatedTranslation = curatedTranslationsByCode.get(diagnostic.code); + if ( + curatedTranslation !== undefined && + curatedTranslation.original !== diagnostic.message + ) { + throw new Error( + `Curated translation ${curatedTranslation.fileName} is stale for TS${diagnostic.code}. Expected "${diagnostic.message}" but found "${curatedTranslation.original}".`, + ); + } + + json[String(diagnostic.code)] = { + body: curatedTranslation?.body ?? buildFallbackBody(diagnostic), + category: getCategoryName(diagnostic.category), + code: diagnostic.code, + message: diagnostic.message, + source: curatedTranslation === undefined ? "generated" : "curated", + }; + } + + await mkdir(outputDir, { recursive: true }); + await writeFile(outputFile, `${JSON.stringify(json, null, 2)}\n`, "utf8"); +} + +bundleErrors().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/packages/error-translator/scripts/refreshTsErrorMessages.mjs b/packages/error-translator/scripts/refreshTsErrorMessages.mjs new file mode 100644 index 0000000..86ea270 --- /dev/null +++ b/packages/error-translator/scripts/refreshTsErrorMessages.mjs @@ -0,0 +1,52 @@ +import { createRequire } from "node:module"; +import { mkdir, writeFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const require = createRequire(import.meta.url); +const ts = require("typescript"); + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const packageRoot = path.resolve(scriptDir, ".."); +const outputDir = path.join(packageRoot, "src", "generated"); +const outputFile = path.join(outputDir, "tsErrorMessages.json"); + +function getCategoryName(category) { + const categoryName = ts.DiagnosticCategory?.[category]; + return typeof categoryName === "string" ? categoryName : "Error"; +} + +function buildTsErrorMessageDb() { + const diagnostics = Object.values(ts.Diagnostics) + .filter((diagnostic) => { + return ( + typeof diagnostic === "object" && + diagnostic !== null && + typeof diagnostic.code === "number" && + typeof diagnostic.message === "string" + ); + }) + .sort((left, right) => left.code - right.code); + + const database = {}; + + for (const diagnostic of diagnostics) { + database[diagnostic.message] = { + category: getCategoryName(diagnostic.category), + code: diagnostic.code, + }; + } + + return database; +} + +async function main() { + await mkdir(outputDir, { recursive: true }); + const database = buildTsErrorMessageDb(); + await writeFile(outputFile, `${JSON.stringify(database, null, 2)}\n`, "utf8"); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/packages/error-translator/scripts/validateContractData.mjs b/packages/error-translator/scripts/validateContractData.mjs new file mode 100644 index 0000000..733ed43 --- /dev/null +++ b/packages/error-translator/scripts/validateContractData.mjs @@ -0,0 +1,169 @@ +import { createRequire } from "node:module"; +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const require = createRequire(import.meta.url); +const ts = require("typescript"); + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const packageRoot = path.resolve(scriptDir, ".."); +const curatedErrorsDir = path.join(packageRoot, "vendor", "matt-pocock", "errors"); +const generatedDir = path.join(packageRoot, "src", "generated"); +const bundleFile = path.join(generatedDir, "bundleErrors.json"); +const tsErrorMessagesFile = path.join(generatedDir, "tsErrorMessages.json"); + +function getCategoryName(category) { + const categoryName = ts.DiagnosticCategory?.[category]; + return typeof categoryName === "string" ? categoryName : "Error"; +} + +function getCurrentDiagnostics() { + return Object.values(ts.Diagnostics) + .filter((diagnostic) => { + return ( + typeof diagnostic === "object" && + diagnostic !== null && + typeof diagnostic.code === "number" && + typeof diagnostic.message === "string" + ); + }) + .sort((left, right) => left.code - right.code); +} + +function unwrapQuotedValue(value) { + if ( + (value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'")) + ) { + return value.slice(1, -1); + } + + return value; +} + +function parseOriginalMessage(markdown, fileName) { + const match = /^---\r?\n([\s\S]*?)\r?\n---/u.exec(markdown); + if (match === null) { + throw new Error(`Missing front matter in ${fileName}.`); + } + + const originalMatch = /^original:\s*(.+)$/mu.exec(match[1]); + if (originalMatch === null) { + throw new Error(`Missing original diagnostic message in ${fileName}.`); + } + + return unwrapQuotedValue(originalMatch[1].trim()); +} + +async function readJson(filePath) { + return JSON.parse(await readFile(filePath, "utf8")); +} + +async function validateTsErrorMessages(currentDiagnostics) { + const tsErrorMessages = await readJson(tsErrorMessagesFile); + + if (Object.keys(tsErrorMessages).length !== currentDiagnostics.length) { + throw new Error( + `tsErrorMessages.json is stale. Expected ${currentDiagnostics.length} entries but found ${Object.keys(tsErrorMessages).length}.`, + ); + } + + for (const diagnostic of currentDiagnostics) { + const entry = tsErrorMessages[diagnostic.message]; + if (entry === undefined) { + throw new Error( + `tsErrorMessages.json is missing the current diagnostic template for TS${diagnostic.code}.`, + ); + } + + if ( + entry.code !== diagnostic.code || + entry.category !== getCategoryName(diagnostic.category) + ) { + throw new Error( + `tsErrorMessages.json is stale for TS${diagnostic.code}.`, + ); + } + } +} + +async function validateCuratedOverrides(currentDiagnosticsByCode) { + const files = (await readdir(curatedErrorsDir)) + .filter((file) => file.endsWith(".md")) + .sort((left, right) => left.localeCompare(right, "en")); + + for (const fileName of files) { + const code = Number(path.parse(fileName).name); + if (!Number.isInteger(code)) { + throw new Error(`Cannot derive numeric diagnostic code from ${fileName}.`); + } + + const diagnostic = currentDiagnosticsByCode.get(code); + if (diagnostic === undefined) { + throw new Error( + `Curated translation ${fileName} targets removed or unknown TS${code}.`, + ); + } + + const markdown = await readFile(path.join(curatedErrorsDir, fileName), "utf8"); + const original = parseOriginalMessage(markdown, fileName); + + if (original !== diagnostic.message) { + throw new Error( + `Curated translation ${fileName} is stale for TS${code}. Expected "${diagnostic.message}" but found "${original}".`, + ); + } + } +} + +async function validateBundle(currentDiagnostics) { + const bundle = await readJson(bundleFile); + + if (Object.keys(bundle).length !== currentDiagnostics.length) { + throw new Error( + `bundleErrors.json is stale. Expected ${currentDiagnostics.length} entries but found ${Object.keys(bundle).length}.`, + ); + } + + for (const diagnostic of currentDiagnostics) { + const entry = bundle[String(diagnostic.code)]; + if (entry === undefined) { + throw new Error(`bundleErrors.json is missing TS${diagnostic.code}.`); + } + + if ( + entry.code !== diagnostic.code || + entry.category !== getCategoryName(diagnostic.category) || + entry.message !== diagnostic.message + ) { + throw new Error(`bundleErrors.json is stale for TS${diagnostic.code}.`); + } + + if (typeof entry.body !== "string" || entry.body.length === 0) { + throw new Error(`bundleErrors.json has an empty body for TS${diagnostic.code}.`); + } + + if (entry.source !== "curated" && entry.source !== "generated") { + throw new Error( + `bundleErrors.json has an invalid source for TS${diagnostic.code}.`, + ); + } + } +} + +async function main() { + const currentDiagnostics = getCurrentDiagnostics(); + const currentDiagnosticsByCode = new Map( + currentDiagnostics.map((diagnostic) => [diagnostic.code, diagnostic]), + ); + + await validateTsErrorMessages(currentDiagnostics); + await validateCuratedOverrides(currentDiagnosticsByCode); + await validateBundle(currentDiagnostics); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/packages/error-translator/src/generated/bundleErrors.json b/packages/error-translator/src/generated/bundleErrors.json new file mode 100644 index 0000000..e46fd04 --- /dev/null +++ b/packages/error-translator/src/generated/bundleErrors.json @@ -0,0 +1,14912 @@ +{ + "1002": { + "body": "You've started a string (via a single or double quote) but haven't ended it.", + "category": "Error", + "code": 1002, + "message": "Unterminated string literal.", + "source": "curated" + }, + "1003": { + "body": "I was expecting a name but none was provided.", + "category": "Error", + "code": 1003, + "message": "Identifier expected.", + "source": "curated" + }, + "1005": { + "body": "TypeScript reports this error: '{0}' expected.", + "category": "Error", + "code": 1005, + "message": "'{0}' expected.", + "source": "generated" + }, + "1006": { + "body": "You've got a triple-slash reference inside a file that's referencing itself.", + "category": "Error", + "code": 1006, + "message": "A file cannot have a reference to itself.", + "source": "curated" + }, + "1007": { + "body": "TypeScript reports this error: The parser expected to find a '{1}' to match the '{0}' token here.", + "category": "Error", + "code": 1007, + "message": "The parser expected to find a '{1}' to match the '{0}' token here.", + "source": "generated" + }, + "1009": { + "body": "You've added a trailing comma when you're not supposed to add it.", + "category": "Error", + "code": 1009, + "message": "Trailing comma not allowed.", + "source": "curated" + }, + "1010": { + "body": "TypeScript reports this error: '*/' expected.", + "category": "Error", + "code": 1010, + "message": "'*/' expected.", + "source": "generated" + }, + "1011": { + "body": "TypeScript reports this error: An element access expression should take an argument.", + "category": "Error", + "code": 1011, + "message": "An element access expression should take an argument.", + "source": "generated" + }, + "1012": { + "body": "TypeScript reports this error: Unexpected token.", + "category": "Error", + "code": 1012, + "message": "Unexpected token.", + "source": "generated" + }, + "1013": { + "body": "TypeScript reports this error: A rest parameter or binding pattern may not have a trailing comma.", + "category": "Error", + "code": 1013, + "message": "A rest parameter or binding pattern may not have a trailing comma.", + "source": "generated" + }, + "1014": { + "body": "A parameter in a function that starts with `...` must be the last one in the list.", + "category": "Error", + "code": 1014, + "message": "A rest parameter must be last in a parameter list.", + "source": "curated" + }, + "1015": { + "body": "You can use a question mark or an default value, but not both at once.", + "category": "Error", + "code": 1015, + "message": "Parameter cannot have question mark and initializer.", + "source": "curated" + }, + "1016": { + "body": "TypeScript reports this error: A required parameter cannot follow an optional parameter.", + "category": "Error", + "code": 1016, + "message": "A required parameter cannot follow an optional parameter.", + "source": "generated" + }, + "1017": { + "body": "TypeScript reports this error: An index signature cannot have a rest parameter.", + "category": "Error", + "code": 1017, + "message": "An index signature cannot have a rest parameter.", + "source": "generated" + }, + "1018": { + "body": "TypeScript reports this error: An index signature parameter cannot have an accessibility modifier.", + "category": "Error", + "code": 1018, + "message": "An index signature parameter cannot have an accessibility modifier.", + "source": "generated" + }, + "1019": { + "body": "TypeScript reports this error: An index signature parameter cannot have a question mark.", + "category": "Error", + "code": 1019, + "message": "An index signature parameter cannot have a question mark.", + "source": "generated" + }, + "1020": { + "body": "TypeScript reports this error: An index signature parameter cannot have an initializer.", + "category": "Error", + "code": 1020, + "message": "An index signature parameter cannot have an initializer.", + "source": "generated" + }, + "1021": { + "body": "TypeScript reports this error: An index signature must have a type annotation.", + "category": "Error", + "code": 1021, + "message": "An index signature must have a type annotation.", + "source": "generated" + }, + "1022": { + "body": "TypeScript reports this error: An index signature parameter must have a type annotation.", + "category": "Error", + "code": 1022, + "message": "An index signature parameter must have a type annotation.", + "source": "generated" + }, + "1024": { + "body": "TypeScript reports this error: 'readonly' modifier can only appear on a property declaration or index signature.", + "category": "Error", + "code": 1024, + "message": "'readonly' modifier can only appear on a property declaration or index signature.", + "source": "generated" + }, + "1025": { + "body": "TypeScript reports this error: An index signature cannot have a trailing comma.", + "category": "Error", + "code": 1025, + "message": "An index signature cannot have a trailing comma.", + "source": "generated" + }, + "1028": { + "body": "TypeScript reports this error: Accessibility modifier already seen.", + "category": "Error", + "code": 1028, + "message": "Accessibility modifier already seen.", + "source": "generated" + }, + "1029": { + "body": "TypeScript reports this error: '{0}' modifier must precede '{1}' modifier.", + "category": "Error", + "code": 1029, + "message": "'{0}' modifier must precede '{1}' modifier.", + "source": "generated" + }, + "1030": { + "body": "TypeScript reports this error: '{0}' modifier already seen.", + "category": "Error", + "code": 1030, + "message": "'{0}' modifier already seen.", + "source": "generated" + }, + "1031": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on class elements of this kind.", + "category": "Error", + "code": 1031, + "message": "'{0}' modifier cannot appear on class elements of this kind.", + "source": "generated" + }, + "1034": { + "body": "TypeScript reports this error: 'super' must be followed by an argument list or member access.", + "category": "Error", + "code": 1034, + "message": "'super' must be followed by an argument list or member access.", + "source": "generated" + }, + "1035": { + "body": "TypeScript reports this error: Only ambient modules can use quoted names.", + "category": "Error", + "code": 1035, + "message": "Only ambient modules can use quoted names.", + "source": "generated" + }, + "1036": { + "body": "TypeScript reports this error: Statements are not allowed in ambient contexts.", + "category": "Error", + "code": 1036, + "message": "Statements are not allowed in ambient contexts.", + "source": "generated" + }, + "1038": { + "body": "TypeScript reports this error: A 'declare' modifier cannot be used in an already ambient context.", + "category": "Error", + "code": 1038, + "message": "A 'declare' modifier cannot be used in an already ambient context.", + "source": "generated" + }, + "1039": { + "body": "TypeScript reports this error: Initializers are not allowed in ambient contexts.", + "category": "Error", + "code": 1039, + "message": "Initializers are not allowed in ambient contexts.", + "source": "generated" + }, + "1040": { + "body": "TypeScript reports this error: '{0}' modifier cannot be used in an ambient context.", + "category": "Error", + "code": 1040, + "message": "'{0}' modifier cannot be used in an ambient context.", + "source": "generated" + }, + "1042": { + "body": "TypeScript reports this error: '{0}' modifier cannot be used here.", + "category": "Error", + "code": 1042, + "message": "'{0}' modifier cannot be used here.", + "source": "generated" + }, + "1044": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a module or namespace element.", + "category": "Error", + "code": 1044, + "message": "'{0}' modifier cannot appear on a module or namespace element.", + "source": "generated" + }, + "1046": { + "body": "TypeScript reports this error: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.", + "category": "Error", + "code": 1046, + "message": "Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.", + "source": "generated" + }, + "1047": { + "body": "TypeScript reports this error: A rest parameter cannot be optional.", + "category": "Error", + "code": 1047, + "message": "A rest parameter cannot be optional.", + "source": "generated" + }, + "1048": { + "body": "TypeScript reports this error: A rest parameter cannot have an initializer.", + "category": "Error", + "code": 1048, + "message": "A rest parameter cannot have an initializer.", + "source": "generated" + }, + "1049": { + "body": "TypeScript reports this error: A 'set' accessor must have exactly one parameter.", + "category": "Error", + "code": 1049, + "message": "A 'set' accessor must have exactly one parameter.", + "source": "generated" + }, + "1051": { + "body": "TypeScript reports this error: A 'set' accessor cannot have an optional parameter.", + "category": "Error", + "code": 1051, + "message": "A 'set' accessor cannot have an optional parameter.", + "source": "generated" + }, + "1052": { + "body": "TypeScript reports this error: A 'set' accessor parameter cannot have an initializer.", + "category": "Error", + "code": 1052, + "message": "A 'set' accessor parameter cannot have an initializer.", + "source": "generated" + }, + "1053": { + "body": "TypeScript reports this error: A 'set' accessor cannot have rest parameter.", + "category": "Error", + "code": 1053, + "message": "A 'set' accessor cannot have rest parameter.", + "source": "generated" + }, + "1054": { + "body": "TypeScript reports this error: A 'get' accessor cannot have parameters.", + "category": "Error", + "code": 1054, + "message": "A 'get' accessor cannot have parameters.", + "source": "generated" + }, + "1055": { + "body": "TypeScript reports this error: Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.", + "category": "Error", + "code": 1055, + "message": "Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.", + "source": "generated" + }, + "1056": { + "body": "TypeScript reports this error: Accessors are only available when targeting ECMAScript 5 and higher.", + "category": "Error", + "code": 1056, + "message": "Accessors are only available when targeting ECMAScript 5 and higher.", + "source": "generated" + }, + "1058": { + "body": "TypeScript reports this error: The return type of an async function must either be a valid promise or must not contain a callable 'then' member.", + "category": "Error", + "code": 1058, + "message": "The return type of an async function must either be a valid promise or must not contain a callable 'then' member.", + "source": "generated" + }, + "1059": { + "body": "TypeScript reports this error: A promise must have a 'then' method.", + "category": "Error", + "code": 1059, + "message": "A promise must have a 'then' method.", + "source": "generated" + }, + "1060": { + "body": "TypeScript reports this error: The first parameter of the 'then' method of a promise must be a callback.", + "category": "Error", + "code": 1060, + "message": "The first parameter of the 'then' method of a promise must be a callback.", + "source": "generated" + }, + "1061": { + "body": "TypeScript reports this error: Enum member must have initializer.", + "category": "Error", + "code": 1061, + "message": "Enum member must have initializer.", + "source": "generated" + }, + "1062": { + "body": "TypeScript reports this error: Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.", + "category": "Error", + "code": 1062, + "message": "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.", + "source": "generated" + }, + "1063": { + "body": "TypeScript reports this error: An export assignment cannot be used in a namespace.", + "category": "Error", + "code": 1063, + "message": "An export assignment cannot be used in a namespace.", + "source": "generated" + }, + "1064": { + "body": "TypeScript reports this error: The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?", + "category": "Error", + "code": 1064, + "message": "The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?", + "source": "generated" + }, + "1065": { + "body": "TypeScript reports this error: The return type of an async function or method must be the global Promise type.", + "category": "Error", + "code": 1065, + "message": "The return type of an async function or method must be the global Promise type.", + "source": "generated" + }, + "1066": { + "body": "TypeScript reports this error: In ambient enum declarations member initializer must be constant expression.", + "category": "Error", + "code": 1066, + "message": "In ambient enum declarations member initializer must be constant expression.", + "source": "generated" + }, + "1068": { + "body": "TypeScript reports this error: Unexpected token. A constructor, method, accessor, or property was expected.", + "category": "Error", + "code": 1068, + "message": "Unexpected token. A constructor, method, accessor, or property was expected.", + "source": "generated" + }, + "1069": { + "body": "TypeScript reports this error: Unexpected token. A type parameter name was expected without curly braces.", + "category": "Error", + "code": 1069, + "message": "Unexpected token. A type parameter name was expected without curly braces.", + "source": "generated" + }, + "1070": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a type member.", + "category": "Error", + "code": 1070, + "message": "'{0}' modifier cannot appear on a type member.", + "source": "generated" + }, + "1071": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on an index signature.", + "category": "Error", + "code": 1071, + "message": "'{0}' modifier cannot appear on an index signature.", + "source": "generated" + }, + "1079": { + "body": "TypeScript reports this error: A '{0}' modifier cannot be used with an import declaration.", + "category": "Error", + "code": 1079, + "message": "A '{0}' modifier cannot be used with an import declaration.", + "source": "generated" + }, + "1084": { + "body": "TypeScript reports this error: Invalid 'reference' directive syntax.", + "category": "Error", + "code": 1084, + "message": "Invalid 'reference' directive syntax.", + "source": "generated" + }, + "1089": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a constructor declaration.", + "category": "Error", + "code": 1089, + "message": "'{0}' modifier cannot appear on a constructor declaration.", + "source": "generated" + }, + "1090": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a parameter.", + "category": "Error", + "code": 1090, + "message": "'{0}' modifier cannot appear on a parameter.", + "source": "generated" + }, + "1091": { + "body": "You can only create a single variable in a 'for...in' statement", + "category": "Error", + "code": 1091, + "message": "Only a single variable declaration is allowed in a 'for...in' statement.", + "source": "curated" + }, + "1092": { + "body": "TypeScript reports this error: Type parameters cannot appear on a constructor declaration.", + "category": "Error", + "code": 1092, + "message": "Type parameters cannot appear on a constructor declaration.", + "source": "generated" + }, + "1093": { + "body": "TypeScript reports this error: Type annotation cannot appear on a constructor declaration.", + "category": "Error", + "code": 1093, + "message": "Type annotation cannot appear on a constructor declaration.", + "source": "generated" + }, + "1094": { + "body": "TypeScript reports this error: An accessor cannot have type parameters.", + "category": "Error", + "code": 1094, + "message": "An accessor cannot have type parameters.", + "source": "generated" + }, + "1095": { + "body": "TypeScript reports this error: A 'set' accessor cannot have a return type annotation.", + "category": "Error", + "code": 1095, + "message": "A 'set' accessor cannot have a return type annotation.", + "source": "generated" + }, + "1096": { + "body": "TypeScript reports this error: An index signature must have exactly one parameter.", + "category": "Error", + "code": 1096, + "message": "An index signature must have exactly one parameter.", + "source": "generated" + }, + "1097": { + "body": "TypeScript reports this error: '{0}' list cannot be empty.", + "category": "Error", + "code": 1097, + "message": "'{0}' list cannot be empty.", + "source": "generated" + }, + "1098": { + "body": "TypeScript reports this error: Type parameter list cannot be empty.", + "category": "Error", + "code": 1098, + "message": "Type parameter list cannot be empty.", + "source": "generated" + }, + "1099": { + "body": "TypeScript reports this error: Type argument list cannot be empty.", + "category": "Error", + "code": 1099, + "message": "Type argument list cannot be empty.", + "source": "generated" + }, + "1100": { + "body": "TypeScript reports this error: Invalid use of '{0}' in strict mode.", + "category": "Error", + "code": 1100, + "message": "Invalid use of '{0}' in strict mode.", + "source": "generated" + }, + "1101": { + "body": "TypeScript reports this error: 'with' statements are not allowed in strict mode.", + "category": "Error", + "code": 1101, + "message": "'with' statements are not allowed in strict mode.", + "source": "generated" + }, + "1102": { + "body": "TypeScript reports this error: 'delete' cannot be called on an identifier in strict mode.", + "category": "Error", + "code": 1102, + "message": "'delete' cannot be called on an identifier in strict mode.", + "source": "generated" + }, + "1103": { + "body": "TypeScript reports this error: 'for await' loops are only allowed within async functions and at the top levels of modules.", + "category": "Error", + "code": 1103, + "message": "'for await' loops are only allowed within async functions and at the top levels of modules.", + "source": "generated" + }, + "1104": { + "body": "TypeScript reports this error: A 'continue' statement can only be used within an enclosing iteration statement.", + "category": "Error", + "code": 1104, + "message": "A 'continue' statement can only be used within an enclosing iteration statement.", + "source": "generated" + }, + "1105": { + "body": "TypeScript reports this error: A 'break' statement can only be used within an enclosing iteration or switch statement.", + "category": "Error", + "code": 1105, + "message": "A 'break' statement can only be used within an enclosing iteration or switch statement.", + "source": "generated" + }, + "1106": { + "body": "TypeScript reports this error: The left-hand side of a 'for...of' statement may not be 'async'.", + "category": "Error", + "code": 1106, + "message": "The left-hand side of a 'for...of' statement may not be 'async'.", + "source": "generated" + }, + "1107": { + "body": "TypeScript reports this error: Jump target cannot cross function boundary.", + "category": "Error", + "code": 1107, + "message": "Jump target cannot cross function boundary.", + "source": "generated" + }, + "1108": { + "body": "TypeScript reports this error: A 'return' statement can only be used within a function body.", + "category": "Error", + "code": 1108, + "message": "A 'return' statement can only be used within a function body.", + "source": "generated" + }, + "1109": { + "body": "I am expecting a code that resolves to a value.", + "category": "Error", + "code": 1109, + "message": "Expression expected.", + "source": "curated" + }, + "1110": { + "body": "TypeScript reports this error: Type expected.", + "category": "Error", + "code": 1110, + "message": "Type expected.", + "source": "generated" + }, + "1111": { + "body": "TypeScript reports this error: Private field '{0}' must be declared in an enclosing class.", + "category": "Error", + "code": 1111, + "message": "Private field '{0}' must be declared in an enclosing class.", + "source": "generated" + }, + "1113": { + "body": "TypeScript reports this error: A 'default' clause cannot appear more than once in a 'switch' statement.", + "category": "Error", + "code": 1113, + "message": "A 'default' clause cannot appear more than once in a 'switch' statement.", + "source": "generated" + }, + "1114": { + "body": "TypeScript reports this error: Duplicate label '{0}'.", + "category": "Error", + "code": 1114, + "message": "Duplicate label '{0}'.", + "source": "generated" + }, + "1115": { + "body": "TypeScript reports this error: A 'continue' statement can only jump to a label of an enclosing iteration statement.", + "category": "Error", + "code": 1115, + "message": "A 'continue' statement can only jump to a label of an enclosing iteration statement.", + "source": "generated" + }, + "1116": { + "body": "TypeScript reports this error: A 'break' statement can only jump to a label of an enclosing statement.", + "category": "Error", + "code": 1116, + "message": "A 'break' statement can only jump to a label of an enclosing statement.", + "source": "generated" + }, + "1117": { + "body": "You can't add the same property multiple times to an object.", + "category": "Error", + "code": 1117, + "message": "An object literal cannot have multiple properties with the same name.", + "source": "curated" + }, + "1118": { + "body": "TypeScript reports this error: An object literal cannot have multiple get/set accessors with the same name.", + "category": "Error", + "code": 1118, + "message": "An object literal cannot have multiple get/set accessors with the same name.", + "source": "generated" + }, + "1119": { + "body": "TypeScript reports this error: An object literal cannot have property and accessor with the same name.", + "category": "Error", + "code": 1119, + "message": "An object literal cannot have property and accessor with the same name.", + "source": "generated" + }, + "1120": { + "body": "TypeScript reports this error: An export assignment cannot have modifiers.", + "category": "Error", + "code": 1120, + "message": "An export assignment cannot have modifiers.", + "source": "generated" + }, + "1121": { + "body": "TypeScript reports this error: Octal literals are not allowed. Use the syntax '{0}'.", + "category": "Error", + "code": 1121, + "message": "Octal literals are not allowed. Use the syntax '{0}'.", + "source": "generated" + }, + "1123": { + "body": "TypeScript reports this error: Variable declaration list cannot be empty.", + "category": "Error", + "code": 1123, + "message": "Variable declaration list cannot be empty.", + "source": "generated" + }, + "1124": { + "body": "TypeScript reports this error: Digit expected.", + "category": "Error", + "code": 1124, + "message": "Digit expected.", + "source": "generated" + }, + "1125": { + "body": "TypeScript reports this error: Hexadecimal digit expected.", + "category": "Error", + "code": 1125, + "message": "Hexadecimal digit expected.", + "source": "generated" + }, + "1126": { + "body": "TypeScript reports this error: Unexpected end of text.", + "category": "Error", + "code": 1126, + "message": "Unexpected end of text.", + "source": "generated" + }, + "1127": { + "body": "TypeScript reports this error: Invalid character.", + "category": "Error", + "code": 1127, + "message": "Invalid character.", + "source": "generated" + }, + "1128": { + "body": "TypeScript reports this error: Declaration or statement expected.", + "category": "Error", + "code": 1128, + "message": "Declaration or statement expected.", + "source": "generated" + }, + "1129": { + "body": "TypeScript reports this error: Statement expected.", + "category": "Error", + "code": 1129, + "message": "Statement expected.", + "source": "generated" + }, + "1130": { + "body": "TypeScript reports this error: 'case' or 'default' expected.", + "category": "Error", + "code": 1130, + "message": "'case' or 'default' expected.", + "source": "generated" + }, + "1131": { + "body": "TypeScript reports this error: Property or signature expected.", + "category": "Error", + "code": 1131, + "message": "Property or signature expected.", + "source": "generated" + }, + "1132": { + "body": "TypeScript reports this error: Enum member expected.", + "category": "Error", + "code": 1132, + "message": "Enum member expected.", + "source": "generated" + }, + "1134": { + "body": "TypeScript reports this error: Variable declaration expected.", + "category": "Error", + "code": 1134, + "message": "Variable declaration expected.", + "source": "generated" + }, + "1135": { + "body": "TypeScript reports this error: Argument expression expected.", + "category": "Error", + "code": 1135, + "message": "Argument expression expected.", + "source": "generated" + }, + "1136": { + "body": "TypeScript reports this error: Property assignment expected.", + "category": "Error", + "code": 1136, + "message": "Property assignment expected.", + "source": "generated" + }, + "1137": { + "body": "TypeScript reports this error: Expression or comma expected.", + "category": "Error", + "code": 1137, + "message": "Expression or comma expected.", + "source": "generated" + }, + "1138": { + "body": "TypeScript reports this error: Parameter declaration expected.", + "category": "Error", + "code": 1138, + "message": "Parameter declaration expected.", + "source": "generated" + }, + "1139": { + "body": "TypeScript reports this error: Type parameter declaration expected.", + "category": "Error", + "code": 1139, + "message": "Type parameter declaration expected.", + "source": "generated" + }, + "1140": { + "body": "TypeScript reports this error: Type argument expected.", + "category": "Error", + "code": 1140, + "message": "Type argument expected.", + "source": "generated" + }, + "1141": { + "body": "TypeScript reports this error: String literal expected.", + "category": "Error", + "code": 1141, + "message": "String literal expected.", + "source": "generated" + }, + "1142": { + "body": "TypeScript reports this error: Line break not permitted here.", + "category": "Error", + "code": 1142, + "message": "Line break not permitted here.", + "source": "generated" + }, + "1144": { + "body": "TypeScript reports this error: '{' or ';' expected.", + "category": "Error", + "code": 1144, + "message": "'{' or ';' expected.", + "source": "generated" + }, + "1145": { + "body": "TypeScript reports this error: '{' or JSX element expected.", + "category": "Error", + "code": 1145, + "message": "'{' or JSX element expected.", + "source": "generated" + }, + "1146": { + "body": "TypeScript reports this error: Declaration expected.", + "category": "Error", + "code": 1146, + "message": "Declaration expected.", + "source": "generated" + }, + "1147": { + "body": "TypeScript reports this error: Import declarations in a namespace cannot reference a module.", + "category": "Error", + "code": 1147, + "message": "Import declarations in a namespace cannot reference a module.", + "source": "generated" + }, + "1148": { + "body": "TypeScript reports this error: Cannot use imports, exports, or module augmentations when '--module' is 'none'.", + "category": "Error", + "code": 1148, + "message": "Cannot use imports, exports, or module augmentations when '--module' is 'none'.", + "source": "generated" + }, + "1149": { + "body": "TypeScript reports this error: File name '{0}' differs from already included file name '{1}' only in casing.", + "category": "Error", + "code": 1149, + "message": "File name '{0}' differs from already included file name '{1}' only in casing.", + "source": "generated" + }, + "1155": { + "body": "A `{0}` declaration must be given a value when it is declared.", + "category": "Error", + "code": 1155, + "message": "'{0}' declarations must be initialized.", + "source": "curated" + }, + "1156": { + "body": "TypeScript reports this error: '{0}' declarations can only be declared inside a block.", + "category": "Error", + "code": 1156, + "message": "'{0}' declarations can only be declared inside a block.", + "source": "generated" + }, + "1160": { + "body": "TypeScript reports this error: Unterminated template literal.", + "category": "Error", + "code": 1160, + "message": "Unterminated template literal.", + "source": "generated" + }, + "1161": { + "body": "TypeScript reports this error: Unterminated regular expression literal.", + "category": "Error", + "code": 1161, + "message": "Unterminated regular expression literal.", + "source": "generated" + }, + "1162": { + "body": "TypeScript reports this error: An object member cannot be declared optional.", + "category": "Error", + "code": 1162, + "message": "An object member cannot be declared optional.", + "source": "generated" + }, + "1163": { + "body": "The `yield` keyword can only be used inside a generator function", + "category": "Error", + "code": 1163, + "message": "A 'yield' expression is only allowed in a generator body.", + "source": "curated" + }, + "1164": { + "body": "TypeScript reports this error: Computed property names are not allowed in enums.", + "category": "Error", + "code": 1164, + "message": "Computed property names are not allowed in enums.", + "source": "generated" + }, + "1165": { + "body": "TypeScript reports this error: A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "category": "Error", + "code": 1165, + "message": "A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "source": "generated" + }, + "1166": { + "body": "TypeScript reports this error: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.", + "category": "Error", + "code": 1166, + "message": "A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.", + "source": "generated" + }, + "1168": { + "body": "TypeScript reports this error: A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "category": "Error", + "code": 1168, + "message": "A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "source": "generated" + }, + "1169": { + "body": "TypeScript reports this error: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "category": "Error", + "code": 1169, + "message": "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "source": "generated" + }, + "1170": { + "body": "TypeScript reports this error: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "category": "Error", + "code": 1170, + "message": "A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.", + "source": "generated" + }, + "1171": { + "body": "TypeScript reports this error: A comma expression is not allowed in a computed property name.", + "category": "Error", + "code": 1171, + "message": "A comma expression is not allowed in a computed property name.", + "source": "generated" + }, + "1172": { + "body": "TypeScript reports this error: 'extends' clause already seen.", + "category": "Error", + "code": 1172, + "message": "'extends' clause already seen.", + "source": "generated" + }, + "1173": { + "body": "TypeScript reports this error: 'extends' clause must precede 'implements' clause.", + "category": "Error", + "code": 1173, + "message": "'extends' clause must precede 'implements' clause.", + "source": "generated" + }, + "1174": { + "body": "TypeScript reports this error: Classes can only extend a single class.", + "category": "Error", + "code": 1174, + "message": "Classes can only extend a single class.", + "source": "generated" + }, + "1175": { + "body": "TypeScript reports this error: 'implements' clause already seen.", + "category": "Error", + "code": 1175, + "message": "'implements' clause already seen.", + "source": "generated" + }, + "1176": { + "body": "TypeScript reports this error: Interface declaration cannot have 'implements' clause.", + "category": "Error", + "code": 1176, + "message": "Interface declaration cannot have 'implements' clause.", + "source": "generated" + }, + "1177": { + "body": "TypeScript reports this error: Binary digit expected.", + "category": "Error", + "code": 1177, + "message": "Binary digit expected.", + "source": "generated" + }, + "1178": { + "body": "TypeScript reports this error: Octal digit expected.", + "category": "Error", + "code": 1178, + "message": "Octal digit expected.", + "source": "generated" + }, + "1179": { + "body": "TypeScript reports this error: Unexpected token. '{' expected.", + "category": "Error", + "code": 1179, + "message": "Unexpected token. '{' expected.", + "source": "generated" + }, + "1180": { + "body": "TypeScript reports this error: Property destructuring pattern expected.", + "category": "Error", + "code": 1180, + "message": "Property destructuring pattern expected.", + "source": "generated" + }, + "1181": { + "body": "TypeScript reports this error: Array element destructuring pattern expected.", + "category": "Error", + "code": 1181, + "message": "Array element destructuring pattern expected.", + "source": "generated" + }, + "1182": { + "body": "TypeScript reports this error: A destructuring declaration must have an initializer.", + "category": "Error", + "code": 1182, + "message": "A destructuring declaration must have an initializer.", + "source": "generated" + }, + "1183": { + "body": "TypeScript reports this error: An implementation cannot be declared in ambient contexts.", + "category": "Error", + "code": 1183, + "message": "An implementation cannot be declared in ambient contexts.", + "source": "generated" + }, + "1184": { + "body": "TypeScript reports this error: Modifiers cannot appear here.", + "category": "Error", + "code": 1184, + "message": "Modifiers cannot appear here.", + "source": "generated" + }, + "1185": { + "body": "TypeScript reports this error: Merge conflict marker encountered.", + "category": "Error", + "code": 1185, + "message": "Merge conflict marker encountered.", + "source": "generated" + }, + "1186": { + "body": "TypeScript reports this error: A rest element cannot have an initializer.", + "category": "Error", + "code": 1186, + "message": "A rest element cannot have an initializer.", + "source": "generated" + }, + "1187": { + "body": "TypeScript reports this error: A parameter property may not be declared using a binding pattern.", + "category": "Error", + "code": 1187, + "message": "A parameter property may not be declared using a binding pattern.", + "source": "generated" + }, + "1188": { + "body": "TypeScript reports this error: Only a single variable declaration is allowed in a 'for...of' statement.", + "category": "Error", + "code": 1188, + "message": "Only a single variable declaration is allowed in a 'for...of' statement.", + "source": "generated" + }, + "1189": { + "body": "TypeScript reports this error: The variable declaration of a 'for...in' statement cannot have an initializer.", + "category": "Error", + "code": 1189, + "message": "The variable declaration of a 'for...in' statement cannot have an initializer.", + "source": "generated" + }, + "1190": { + "body": "TypeScript reports this error: The variable declaration of a 'for...of' statement cannot have an initializer.", + "category": "Error", + "code": 1190, + "message": "The variable declaration of a 'for...of' statement cannot have an initializer.", + "source": "generated" + }, + "1191": { + "body": "TypeScript reports this error: An import declaration cannot have modifiers.", + "category": "Error", + "code": 1191, + "message": "An import declaration cannot have modifiers.", + "source": "generated" + }, + "1192": { + "body": "TypeScript reports this error: Module '{0}' has no default export.", + "category": "Error", + "code": 1192, + "message": "Module '{0}' has no default export.", + "source": "generated" + }, + "1193": { + "body": "TypeScript reports this error: An export declaration cannot have modifiers.", + "category": "Error", + "code": 1193, + "message": "An export declaration cannot have modifiers.", + "source": "generated" + }, + "1194": { + "body": "TypeScript reports this error: Export declarations are not permitted in a namespace.", + "category": "Error", + "code": 1194, + "message": "Export declarations are not permitted in a namespace.", + "source": "generated" + }, + "1195": { + "body": "TypeScript reports this error: 'export *' does not re-export a default.", + "category": "Error", + "code": 1195, + "message": "'export *' does not re-export a default.", + "source": "generated" + }, + "1196": { + "body": "TypeScript reports this error: Catch clause variable type annotation must be 'any' or 'unknown' if specified.", + "category": "Error", + "code": 1196, + "message": "Catch clause variable type annotation must be 'any' or 'unknown' if specified.", + "source": "generated" + }, + "1197": { + "body": "TypeScript reports this error: Catch clause variable cannot have an initializer.", + "category": "Error", + "code": 1197, + "message": "Catch clause variable cannot have an initializer.", + "source": "generated" + }, + "1198": { + "body": "TypeScript reports this error: An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.", + "category": "Error", + "code": 1198, + "message": "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.", + "source": "generated" + }, + "1199": { + "body": "TypeScript reports this error: Unterminated Unicode escape sequence.", + "category": "Error", + "code": 1199, + "message": "Unterminated Unicode escape sequence.", + "source": "generated" + }, + "1200": { + "body": "TypeScript reports this error: Line terminator not permitted before arrow.", + "category": "Error", + "code": 1200, + "message": "Line terminator not permitted before arrow.", + "source": "generated" + }, + "1202": { + "body": "TypeScript reports this error: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.", + "category": "Error", + "code": 1202, + "message": "Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.", + "source": "generated" + }, + "1203": { + "body": "TypeScript reports this error: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.", + "category": "Error", + "code": 1203, + "message": "Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.", + "source": "generated" + }, + "1205": { + "body": "TypeScript reports this error: Re-exporting a type when '{0}' is enabled requires using 'export type'.", + "category": "Error", + "code": 1205, + "message": "Re-exporting a type when '{0}' is enabled requires using 'export type'.", + "source": "generated" + }, + "1206": { + "body": "TypeScript reports this error: Decorators are not valid here.", + "category": "Error", + "code": 1206, + "message": "Decorators are not valid here.", + "source": "generated" + }, + "1207": { + "body": "TypeScript reports this error: Decorators cannot be applied to multiple get/set accessors of the same name.", + "category": "Error", + "code": 1207, + "message": "Decorators cannot be applied to multiple get/set accessors of the same name.", + "source": "generated" + }, + "1209": { + "body": "TypeScript reports this error: Invalid optional chain from new expression. Did you mean to call '{0}()'?", + "category": "Error", + "code": 1209, + "message": "Invalid optional chain from new expression. Did you mean to call '{0}()'?", + "source": "generated" + }, + "1210": { + "body": "TypeScript reports this error: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.", + "category": "Error", + "code": 1210, + "message": "Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.", + "source": "generated" + }, + "1211": { + "body": "TypeScript reports this error: A class declaration without the 'default' modifier must have a name.", + "category": "Error", + "code": 1211, + "message": "A class declaration without the 'default' modifier must have a name.", + "source": "generated" + }, + "1212": { + "body": "TypeScript reports this error: Identifier expected. '{0}' is a reserved word in strict mode.", + "category": "Error", + "code": 1212, + "message": "Identifier expected. '{0}' is a reserved word in strict mode.", + "source": "generated" + }, + "1213": { + "body": "TypeScript reports this error: Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.", + "category": "Error", + "code": 1213, + "message": "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.", + "source": "generated" + }, + "1214": { + "body": "TypeScript reports this error: Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.", + "category": "Error", + "code": 1214, + "message": "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.", + "source": "generated" + }, + "1215": { + "body": "TypeScript reports this error: Invalid use of '{0}'. Modules are automatically in strict mode.", + "category": "Error", + "code": 1215, + "message": "Invalid use of '{0}'. Modules are automatically in strict mode.", + "source": "generated" + }, + "1216": { + "body": "TypeScript reports this error: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.", + "category": "Error", + "code": 1216, + "message": "Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.", + "source": "generated" + }, + "1218": { + "body": "TypeScript reports this error: Export assignment is not supported when '--module' flag is 'system'.", + "category": "Error", + "code": 1218, + "message": "Export assignment is not supported when '--module' flag is 'system'.", + "source": "generated" + }, + "1221": { + "body": "TypeScript reports this error: Generators are not allowed in an ambient context.", + "category": "Error", + "code": 1221, + "message": "Generators are not allowed in an ambient context.", + "source": "generated" + }, + "1222": { + "body": "TypeScript reports this error: An overload signature cannot be declared as a generator.", + "category": "Error", + "code": 1222, + "message": "An overload signature cannot be declared as a generator.", + "source": "generated" + }, + "1223": { + "body": "TypeScript reports this error: '{0}' tag already specified.", + "category": "Error", + "code": 1223, + "message": "'{0}' tag already specified.", + "source": "generated" + }, + "1224": { + "body": "TypeScript reports this error: Signature '{0}' must be a type predicate.", + "category": "Error", + "code": 1224, + "message": "Signature '{0}' must be a type predicate.", + "source": "generated" + }, + "1225": { + "body": "TypeScript reports this error: Cannot find parameter '{0}'.", + "category": "Error", + "code": 1225, + "message": "Cannot find parameter '{0}'.", + "source": "generated" + }, + "1226": { + "body": "TypeScript reports this error: Type predicate '{0}' is not assignable to '{1}'.", + "category": "Error", + "code": 1226, + "message": "Type predicate '{0}' is not assignable to '{1}'.", + "source": "generated" + }, + "1227": { + "body": "TypeScript reports this error: Parameter '{0}' is not in the same position as parameter '{1}'.", + "category": "Error", + "code": 1227, + "message": "Parameter '{0}' is not in the same position as parameter '{1}'.", + "source": "generated" + }, + "1228": { + "body": "TypeScript reports this error: A type predicate is only allowed in return type position for functions and methods.", + "category": "Error", + "code": 1228, + "message": "A type predicate is only allowed in return type position for functions and methods.", + "source": "generated" + }, + "1229": { + "body": "TypeScript reports this error: A type predicate cannot reference a rest parameter.", + "category": "Error", + "code": 1229, + "message": "A type predicate cannot reference a rest parameter.", + "source": "generated" + }, + "1230": { + "body": "TypeScript reports this error: A type predicate cannot reference element '{0}' in a binding pattern.", + "category": "Error", + "code": 1230, + "message": "A type predicate cannot reference element '{0}' in a binding pattern.", + "source": "generated" + }, + "1231": { + "body": "TypeScript reports this error: An export assignment must be at the top level of a file or module declaration.", + "category": "Error", + "code": 1231, + "message": "An export assignment must be at the top level of a file or module declaration.", + "source": "generated" + }, + "1232": { + "body": "TypeScript reports this error: An import declaration can only be used at the top level of a namespace or module.", + "category": "Error", + "code": 1232, + "message": "An import declaration can only be used at the top level of a namespace or module.", + "source": "generated" + }, + "1233": { + "body": "TypeScript reports this error: An export declaration can only be used at the top level of a namespace or module.", + "category": "Error", + "code": 1233, + "message": "An export declaration can only be used at the top level of a namespace or module.", + "source": "generated" + }, + "1234": { + "body": "TypeScript reports this error: An ambient module declaration is only allowed at the top level in a file.", + "category": "Error", + "code": 1234, + "message": "An ambient module declaration is only allowed at the top level in a file.", + "source": "generated" + }, + "1235": { + "body": "TypeScript reports this error: A namespace declaration is only allowed at the top level of a namespace or module.", + "category": "Error", + "code": 1235, + "message": "A namespace declaration is only allowed at the top level of a namespace or module.", + "source": "generated" + }, + "1236": { + "body": "TypeScript reports this error: The return type of a property decorator function must be either 'void' or 'any'.", + "category": "Error", + "code": 1236, + "message": "The return type of a property decorator function must be either 'void' or 'any'.", + "source": "generated" + }, + "1237": { + "body": "TypeScript reports this error: The return type of a parameter decorator function must be either 'void' or 'any'.", + "category": "Error", + "code": 1237, + "message": "The return type of a parameter decorator function must be either 'void' or 'any'.", + "source": "generated" + }, + "1238": { + "body": "TypeScript reports this error: Unable to resolve signature of class decorator when called as an expression.", + "category": "Error", + "code": 1238, + "message": "Unable to resolve signature of class decorator when called as an expression.", + "source": "generated" + }, + "1239": { + "body": "TypeScript reports this error: Unable to resolve signature of parameter decorator when called as an expression.", + "category": "Error", + "code": 1239, + "message": "Unable to resolve signature of parameter decorator when called as an expression.", + "source": "generated" + }, + "1240": { + "body": "You can't use a decorator on an expression, like an arrow function.", + "category": "Error", + "code": 1240, + "message": "Unable to resolve signature of property decorator when called as an expression.", + "source": "curated" + }, + "1241": { + "body": "TypeScript reports this error: Unable to resolve signature of method decorator when called as an expression.", + "category": "Error", + "code": 1241, + "message": "Unable to resolve signature of method decorator when called as an expression.", + "source": "generated" + }, + "1242": { + "body": "TypeScript reports this error: 'abstract' modifier can only appear on a class, method, or property declaration.", + "category": "Error", + "code": 1242, + "message": "'abstract' modifier can only appear on a class, method, or property declaration.", + "source": "generated" + }, + "1243": { + "body": "TypeScript reports this error: '{0}' modifier cannot be used with '{1}' modifier.", + "category": "Error", + "code": 1243, + "message": "'{0}' modifier cannot be used with '{1}' modifier.", + "source": "generated" + }, + "1244": { + "body": "TypeScript reports this error: Abstract methods can only appear within an abstract class.", + "category": "Error", + "code": 1244, + "message": "Abstract methods can only appear within an abstract class.", + "source": "generated" + }, + "1245": { + "body": "TypeScript reports this error: Method '{0}' cannot have an implementation because it is marked abstract.", + "category": "Error", + "code": 1245, + "message": "Method '{0}' cannot have an implementation because it is marked abstract.", + "source": "generated" + }, + "1246": { + "body": "TypeScript reports this error: An interface property cannot have an initializer.", + "category": "Error", + "code": 1246, + "message": "An interface property cannot have an initializer.", + "source": "generated" + }, + "1247": { + "body": "TypeScript reports this error: A type literal property cannot have an initializer.", + "category": "Error", + "code": 1247, + "message": "A type literal property cannot have an initializer.", + "source": "generated" + }, + "1248": { + "body": "TypeScript reports this error: A class member cannot have the '{0}' keyword.", + "category": "Error", + "code": 1248, + "message": "A class member cannot have the '{0}' keyword.", + "source": "generated" + }, + "1249": { + "body": "TypeScript reports this error: A decorator can only decorate a method implementation, not an overload.", + "category": "Error", + "code": 1249, + "message": "A decorator can only decorate a method implementation, not an overload.", + "source": "generated" + }, + "1250": { + "body": "TypeScript reports this error: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.", + "category": "Error", + "code": 1250, + "message": "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.", + "source": "generated" + }, + "1251": { + "body": "TypeScript reports this error: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.", + "category": "Error", + "code": 1251, + "message": "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.", + "source": "generated" + }, + "1252": { + "body": "TypeScript reports this error: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.", + "category": "Error", + "code": 1252, + "message": "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.", + "source": "generated" + }, + "1253": { + "body": "TypeScript reports this error: Abstract properties can only appear within an abstract class.", + "category": "Error", + "code": 1253, + "message": "Abstract properties can only appear within an abstract class.", + "source": "generated" + }, + "1254": { + "body": "You can't use runtime code in a declaration file.", + "category": "Error", + "code": 1254, + "message": "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + "source": "curated" + }, + "1255": { + "body": "TypeScript reports this error: A definite assignment assertion '!' is not permitted in this context.", + "category": "Error", + "code": 1255, + "message": "A definite assignment assertion '!' is not permitted in this context.", + "source": "generated" + }, + "1257": { + "body": "TypeScript reports this error: A required element cannot follow an optional element.", + "category": "Error", + "code": 1257, + "message": "A required element cannot follow an optional element.", + "source": "generated" + }, + "1258": { + "body": "TypeScript reports this error: A default export must be at the top level of a file or module declaration.", + "category": "Error", + "code": 1258, + "message": "A default export must be at the top level of a file or module declaration.", + "source": "generated" + }, + "1259": { + "body": "TypeScript reports this error: Module '{0}' can only be default-imported using the '{1}' flag", + "category": "Error", + "code": 1259, + "message": "Module '{0}' can only be default-imported using the '{1}' flag", + "source": "generated" + }, + "1260": { + "body": "TypeScript reports this error: Keywords cannot contain escape characters.", + "category": "Error", + "code": 1260, + "message": "Keywords cannot contain escape characters.", + "source": "generated" + }, + "1261": { + "body": "TypeScript reports this error: Already included file name '{0}' differs from file name '{1}' only in casing.", + "category": "Error", + "code": 1261, + "message": "Already included file name '{0}' differs from file name '{1}' only in casing.", + "source": "generated" + }, + "1262": { + "body": "TypeScript reports this error: Identifier expected. '{0}' is a reserved word at the top-level of a module.", + "category": "Error", + "code": 1262, + "message": "Identifier expected. '{0}' is a reserved word at the top-level of a module.", + "source": "generated" + }, + "1263": { + "body": "TypeScript reports this error: Declarations with initializers cannot also have definite assignment assertions.", + "category": "Error", + "code": 1263, + "message": "Declarations with initializers cannot also have definite assignment assertions.", + "source": "generated" + }, + "1264": { + "body": "TypeScript reports this error: Declarations with definite assignment assertions must also have type annotations.", + "category": "Error", + "code": 1264, + "message": "Declarations with definite assignment assertions must also have type annotations.", + "source": "generated" + }, + "1265": { + "body": "TypeScript reports this error: A rest element cannot follow another rest element.", + "category": "Error", + "code": 1265, + "message": "A rest element cannot follow another rest element.", + "source": "generated" + }, + "1266": { + "body": "TypeScript reports this error: An optional element cannot follow a rest element.", + "category": "Error", + "code": 1266, + "message": "An optional element cannot follow a rest element.", + "source": "generated" + }, + "1267": { + "body": "TypeScript reports this error: Property '{0}' cannot have an initializer because it is marked abstract.", + "category": "Error", + "code": 1267, + "message": "Property '{0}' cannot have an initializer because it is marked abstract.", + "source": "generated" + }, + "1268": { + "body": "Objects in TypeScript (and JavaScript!) can only have strings, numbers or symbols as keys. [Template literal types](https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html) are a way of constructing strings.", + "category": "Error", + "code": 1268, + "message": "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.", + "source": "curated" + }, + "1269": { + "body": "TypeScript reports this error: Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.", + "category": "Error", + "code": 1269, + "message": "Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.", + "source": "generated" + }, + "1270": { + "body": "TypeScript reports this error: Decorator function return type '{0}' is not assignable to type '{1}'.", + "category": "Error", + "code": 1270, + "message": "Decorator function return type '{0}' is not assignable to type '{1}'.", + "source": "generated" + }, + "1271": { + "body": "TypeScript reports this error: Decorator function return type is '{0}' but is expected to be 'void' or 'any'.", + "category": "Error", + "code": 1271, + "message": "Decorator function return type is '{0}' but is expected to be 'void' or 'any'.", + "source": "generated" + }, + "1272": { + "body": "TypeScript reports this error: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.", + "category": "Error", + "code": 1272, + "message": "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.", + "source": "generated" + }, + "1273": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a type parameter", + "category": "Error", + "code": 1273, + "message": "'{0}' modifier cannot appear on a type parameter", + "source": "generated" + }, + "1274": { + "body": "TypeScript reports this error: '{0}' modifier can only appear on a type parameter of a class, interface or type alias", + "category": "Error", + "code": 1274, + "message": "'{0}' modifier can only appear on a type parameter of a class, interface or type alias", + "source": "generated" + }, + "1275": { + "body": "TypeScript reports this error: 'accessor' modifier can only appear on a property declaration.", + "category": "Error", + "code": 1275, + "message": "'accessor' modifier can only appear on a property declaration.", + "source": "generated" + }, + "1276": { + "body": "TypeScript reports this error: An 'accessor' property cannot be declared optional.", + "category": "Error", + "code": 1276, + "message": "An 'accessor' property cannot be declared optional.", + "source": "generated" + }, + "1277": { + "body": "TypeScript reports this error: '{0}' modifier can only appear on a type parameter of a function, method or class", + "category": "Error", + "code": 1277, + "message": "'{0}' modifier can only appear on a type parameter of a function, method or class", + "source": "generated" + }, + "1278": { + "body": "TypeScript reports this error: The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.", + "category": "Error", + "code": 1278, + "message": "The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.", + "source": "generated" + }, + "1279": { + "body": "TypeScript reports this error: The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.", + "category": "Error", + "code": 1279, + "message": "The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.", + "source": "generated" + }, + "1280": { + "body": "TypeScript reports this error: Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.", + "category": "Error", + "code": 1280, + "message": "Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.", + "source": "generated" + }, + "1281": { + "body": "TypeScript reports this error: Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.", + "category": "Error", + "code": 1281, + "message": "Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.", + "source": "generated" + }, + "1282": { + "body": "TypeScript reports this error: An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.", + "category": "Error", + "code": 1282, + "message": "An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.", + "source": "generated" + }, + "1283": { + "body": "TypeScript reports this error: An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.", + "category": "Error", + "code": 1283, + "message": "An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.", + "source": "generated" + }, + "1284": { + "body": "TypeScript reports this error: An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.", + "category": "Error", + "code": 1284, + "message": "An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.", + "source": "generated" + }, + "1285": { + "body": "TypeScript reports this error: An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.", + "category": "Error", + "code": 1285, + "message": "An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.", + "source": "generated" + }, + "1286": { + "body": "TypeScript reports this error: ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'.", + "category": "Error", + "code": 1286, + "message": "ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'.", + "source": "generated" + }, + "1287": { + "body": "TypeScript reports this error: A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.", + "category": "Error", + "code": 1287, + "message": "A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.", + "source": "generated" + }, + "1288": { + "body": "TypeScript reports this error: An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.", + "category": "Error", + "code": 1288, + "message": "An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.", + "source": "generated" + }, + "1289": { + "body": "TypeScript reports this error: '{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.", + "category": "Error", + "code": 1289, + "message": "'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.", + "source": "generated" + }, + "1290": { + "body": "TypeScript reports this error: '{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.", + "category": "Error", + "code": 1290, + "message": "'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.", + "source": "generated" + }, + "1291": { + "body": "TypeScript reports this error: '{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.", + "category": "Error", + "code": 1291, + "message": "'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.", + "source": "generated" + }, + "1292": { + "body": "TypeScript reports this error: '{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.", + "category": "Error", + "code": 1292, + "message": "'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.", + "source": "generated" + }, + "1293": { + "body": "TypeScript reports this error: ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.", + "category": "Error", + "code": 1293, + "message": "ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.", + "source": "generated" + }, + "1294": { + "body": "TypeScript reports this error: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.", + "category": "Error", + "code": 1294, + "message": "This syntax is not allowed when 'erasableSyntaxOnly' is enabled.", + "source": "generated" + }, + "1295": { + "body": "TypeScript reports this error: ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript.", + "category": "Error", + "code": 1295, + "message": "ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript.", + "source": "generated" + }, + "1300": { + "body": "TypeScript reports this error: 'with' statements are not allowed in an async function block.", + "category": "Error", + "code": 1300, + "message": "'with' statements are not allowed in an async function block.", + "source": "generated" + }, + "1308": { + "body": "TypeScript reports this error: 'await' expressions are only allowed within async functions and at the top levels of modules.", + "category": "Error", + "code": 1308, + "message": "'await' expressions are only allowed within async functions and at the top levels of modules.", + "source": "generated" + }, + "1309": { + "body": "TypeScript reports this error: The current file is a CommonJS module and cannot use 'await' at the top level.", + "category": "Error", + "code": 1309, + "message": "The current file is a CommonJS module and cannot use 'await' at the top level.", + "source": "generated" + }, + "1312": { + "body": "TypeScript reports this error: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.", + "category": "Error", + "code": 1312, + "message": "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.", + "source": "generated" + }, + "1313": { + "body": "An if statement shouldn't be empty", + "category": "Error", + "code": 1313, + "message": "The body of an 'if' statement cannot be the empty statement.", + "source": "curated" + }, + "1314": { + "body": "TypeScript reports this error: Global module exports may only appear in module files.", + "category": "Error", + "code": 1314, + "message": "Global module exports may only appear in module files.", + "source": "generated" + }, + "1315": { + "body": "TypeScript reports this error: Global module exports may only appear in declaration files.", + "category": "Error", + "code": 1315, + "message": "Global module exports may only appear in declaration files.", + "source": "generated" + }, + "1316": { + "body": "TypeScript reports this error: Global module exports may only appear at top level.", + "category": "Error", + "code": 1316, + "message": "Global module exports may only appear at top level.", + "source": "generated" + }, + "1317": { + "body": "TypeScript reports this error: A parameter property cannot be declared using a rest parameter.", + "category": "Error", + "code": 1317, + "message": "A parameter property cannot be declared using a rest parameter.", + "source": "generated" + }, + "1318": { + "body": "TypeScript reports this error: An abstract accessor cannot have an implementation.", + "category": "Error", + "code": 1318, + "message": "An abstract accessor cannot have an implementation.", + "source": "generated" + }, + "1319": { + "body": "TypeScript reports this error: A default export can only be used in an ECMAScript-style module.", + "category": "Error", + "code": 1319, + "message": "A default export can only be used in an ECMAScript-style module.", + "source": "generated" + }, + "1320": { + "body": "TypeScript reports this error: Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.", + "category": "Error", + "code": 1320, + "message": "Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.", + "source": "generated" + }, + "1321": { + "body": "TypeScript reports this error: Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.", + "category": "Error", + "code": 1321, + "message": "Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.", + "source": "generated" + }, + "1322": { + "body": "TypeScript reports this error: Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.", + "category": "Error", + "code": 1322, + "message": "Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.", + "source": "generated" + }, + "1323": { + "body": "TypeScript reports this error: Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'.", + "category": "Error", + "code": 1323, + "message": "Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'.", + "source": "generated" + }, + "1324": { + "body": "TypeScript reports this error: Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'.", + "category": "Error", + "code": 1324, + "message": "Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'.", + "source": "generated" + }, + "1325": { + "body": "TypeScript reports this error: Argument of dynamic import cannot be spread element.", + "category": "Error", + "code": 1325, + "message": "Argument of dynamic import cannot be spread element.", + "source": "generated" + }, + "1326": { + "body": "TypeScript reports this error: This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.", + "category": "Error", + "code": 1326, + "message": "This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.", + "source": "generated" + }, + "1327": { + "body": "TypeScript reports this error: String literal with double quotes expected.", + "category": "Error", + "code": 1327, + "message": "String literal with double quotes expected.", + "source": "generated" + }, + "1328": { + "body": "TypeScript reports this error: Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.", + "category": "Error", + "code": 1328, + "message": "Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.", + "source": "generated" + }, + "1329": { + "body": "TypeScript reports this error: '{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?", + "category": "Error", + "code": 1329, + "message": "'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?", + "source": "generated" + }, + "1330": { + "body": "TypeScript reports this error: A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.", + "category": "Error", + "code": 1330, + "message": "A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.", + "source": "generated" + }, + "1331": { + "body": "TypeScript reports this error: A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.", + "category": "Error", + "code": 1331, + "message": "A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.", + "source": "generated" + }, + "1332": { + "body": "TypeScript reports this error: A variable whose type is a 'unique symbol' type must be 'const'.", + "category": "Error", + "code": 1332, + "message": "A variable whose type is a 'unique symbol' type must be 'const'.", + "source": "generated" + }, + "1333": { + "body": "TypeScript reports this error: 'unique symbol' types may not be used on a variable declaration with a binding name.", + "category": "Error", + "code": 1333, + "message": "'unique symbol' types may not be used on a variable declaration with a binding name.", + "source": "generated" + }, + "1334": { + "body": "TypeScript reports this error: 'unique symbol' types are only allowed on variables in a variable statement.", + "category": "Error", + "code": 1334, + "message": "'unique symbol' types are only allowed on variables in a variable statement.", + "source": "generated" + }, + "1335": { + "body": "TypeScript reports this error: 'unique symbol' types are not allowed here.", + "category": "Error", + "code": 1335, + "message": "'unique symbol' types are not allowed here.", + "source": "generated" + }, + "1337": { + "body": "TypeScript reports this error: An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.", + "category": "Error", + "code": 1337, + "message": "An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.", + "source": "generated" + }, + "1338": { + "body": "TypeScript reports this error: 'infer' declarations are only permitted in the 'extends' clause of a conditional type.", + "category": "Error", + "code": 1338, + "message": "'infer' declarations are only permitted in the 'extends' clause of a conditional type.", + "source": "generated" + }, + "1339": { + "body": "TypeScript reports this error: Module '{0}' does not refer to a value, but is used as a value here.", + "category": "Error", + "code": 1339, + "message": "Module '{0}' does not refer to a value, but is used as a value here.", + "source": "generated" + }, + "1340": { + "body": "TypeScript reports this error: Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?", + "category": "Error", + "code": 1340, + "message": "Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?", + "source": "generated" + }, + "1341": { + "body": "TypeScript reports this error: Class constructor may not be an accessor.", + "category": "Error", + "code": 1341, + "message": "Class constructor may not be an accessor.", + "source": "generated" + }, + "1343": { + "body": "TypeScript reports this error: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'.", + "category": "Error", + "code": 1343, + "message": "The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'.", + "source": "generated" + }, + "1344": { + "body": "TypeScript reports this error: 'A label is not allowed here.", + "category": "Error", + "code": 1344, + "message": "'A label is not allowed here.", + "source": "generated" + }, + "1345": { + "body": "TypeScript reports this error: An expression of type 'void' cannot be tested for truthiness.", + "category": "Error", + "code": 1345, + "message": "An expression of type 'void' cannot be tested for truthiness.", + "source": "generated" + }, + "1346": { + "body": "TypeScript reports this error: This parameter is not allowed with 'use strict' directive.", + "category": "Error", + "code": 1346, + "message": "This parameter is not allowed with 'use strict' directive.", + "source": "generated" + }, + "1347": { + "body": "TypeScript reports this error: 'use strict' directive cannot be used with non-simple parameter list.", + "category": "Error", + "code": 1347, + "message": "'use strict' directive cannot be used with non-simple parameter list.", + "source": "generated" + }, + "1348": { + "body": "TypeScript reports this error: Non-simple parameter declared here.", + "category": "Error", + "code": 1348, + "message": "Non-simple parameter declared here.", + "source": "generated" + }, + "1349": { + "body": "TypeScript reports this error: 'use strict' directive used here.", + "category": "Error", + "code": 1349, + "message": "'use strict' directive used here.", + "source": "generated" + }, + "1350": { + "body": "TypeScript reports: Print the final configuration instead of building.", + "category": "Message", + "code": 1350, + "message": "Print the final configuration instead of building.", + "source": "generated" + }, + "1351": { + "body": "TypeScript reports this error: An identifier or keyword cannot immediately follow a numeric literal.", + "category": "Error", + "code": 1351, + "message": "An identifier or keyword cannot immediately follow a numeric literal.", + "source": "generated" + }, + "1352": { + "body": "TypeScript reports this error: A bigint literal cannot use exponential notation.", + "category": "Error", + "code": 1352, + "message": "A bigint literal cannot use exponential notation.", + "source": "generated" + }, + "1353": { + "body": "TypeScript reports this error: A bigint literal must be an integer.", + "category": "Error", + "code": 1353, + "message": "A bigint literal must be an integer.", + "source": "generated" + }, + "1354": { + "body": "TypeScript reports this error: 'readonly' type modifier is only permitted on array and tuple literal types.", + "category": "Error", + "code": 1354, + "message": "'readonly' type modifier is only permitted on array and tuple literal types.", + "source": "generated" + }, + "1355": { + "body": "TypeScript reports this error: A 'const' assertion can only be applied to references to enum members, or string, number, boolean, array, or object literals.", + "category": "Error", + "code": 1355, + "message": "A 'const' assertion can only be applied to references to enum members, or string, number, boolean, array, or object literals.", + "source": "generated" + }, + "1356": { + "body": "TypeScript reports this error: Did you mean to mark this function as 'async'?", + "category": "Error", + "code": 1356, + "message": "Did you mean to mark this function as 'async'?", + "source": "generated" + }, + "1357": { + "body": "TypeScript reports this error: An enum member name must be followed by a ',', '=', or '}'.", + "category": "Error", + "code": 1357, + "message": "An enum member name must be followed by a ',', '=', or '}'.", + "source": "generated" + }, + "1358": { + "body": "TypeScript reports this error: Tagged template expressions are not permitted in an optional chain.", + "category": "Error", + "code": 1358, + "message": "Tagged template expressions are not permitted in an optional chain.", + "source": "generated" + }, + "1359": { + "body": "TypeScript reports this error: Identifier expected. '{0}' is a reserved word that cannot be used here.", + "category": "Error", + "code": 1359, + "message": "Identifier expected. '{0}' is a reserved word that cannot be used here.", + "source": "generated" + }, + "1360": { + "body": "TypeScript reports this error: Type '{0}' does not satisfy the expected type '{1}'.", + "category": "Error", + "code": 1360, + "message": "Type '{0}' does not satisfy the expected type '{1}'.", + "source": "generated" + }, + "1361": { + "body": "TypeScript reports this error: '{0}' cannot be used as a value because it was imported using 'import type'.", + "category": "Error", + "code": 1361, + "message": "'{0}' cannot be used as a value because it was imported using 'import type'.", + "source": "generated" + }, + "1362": { + "body": "TypeScript reports this error: '{0}' cannot be used as a value because it was exported using 'export type'.", + "category": "Error", + "code": 1362, + "message": "'{0}' cannot be used as a value because it was exported using 'export type'.", + "source": "generated" + }, + "1363": { + "body": "TypeScript reports this error: A type-only import can specify a default import or named bindings, but not both.", + "category": "Error", + "code": 1363, + "message": "A type-only import can specify a default import or named bindings, but not both.", + "source": "generated" + }, + "1364": { + "body": "TypeScript reports: Convert to type-only export", + "category": "Message", + "code": 1364, + "message": "Convert to type-only export", + "source": "generated" + }, + "1365": { + "body": "TypeScript reports: Convert all re-exported types to type-only exports", + "category": "Message", + "code": 1365, + "message": "Convert all re-exported types to type-only exports", + "source": "generated" + }, + "1366": { + "body": "TypeScript reports: Split into two separate import declarations", + "category": "Message", + "code": 1366, + "message": "Split into two separate import declarations", + "source": "generated" + }, + "1367": { + "body": "TypeScript reports: Split all invalid type-only imports", + "category": "Message", + "code": 1367, + "message": "Split all invalid type-only imports", + "source": "generated" + }, + "1368": { + "body": "TypeScript reports this error: Class constructor may not be a generator.", + "category": "Error", + "code": 1368, + "message": "Class constructor may not be a generator.", + "source": "generated" + }, + "1369": { + "body": "TypeScript reports: Did you mean '{0}'?", + "category": "Message", + "code": 1369, + "message": "Did you mean '{0}'?", + "source": "generated" + }, + "1375": { + "body": "TypeScript reports this error: 'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "category": "Error", + "code": 1375, + "message": "'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "source": "generated" + }, + "1376": { + "body": "TypeScript reports: '{0}' was imported here.", + "category": "Message", + "code": 1376, + "message": "'{0}' was imported here.", + "source": "generated" + }, + "1377": { + "body": "TypeScript reports: '{0}' was exported here.", + "category": "Message", + "code": 1377, + "message": "'{0}' was exported here.", + "source": "generated" + }, + "1378": { + "body": "TypeScript reports this error: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "category": "Error", + "code": 1378, + "message": "Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "source": "generated" + }, + "1379": { + "body": "TypeScript reports this error: An import alias cannot reference a declaration that was exported using 'export type'.", + "category": "Error", + "code": 1379, + "message": "An import alias cannot reference a declaration that was exported using 'export type'.", + "source": "generated" + }, + "1380": { + "body": "TypeScript reports this error: An import alias cannot reference a declaration that was imported using 'import type'.", + "category": "Error", + "code": 1380, + "message": "An import alias cannot reference a declaration that was imported using 'import type'.", + "source": "generated" + }, + "1381": { + "body": "TypeScript reports this error: Unexpected token. Did you mean `{'}'}` or `}`?", + "category": "Error", + "code": 1381, + "message": "Unexpected token. Did you mean `{'}'}` or `}`?", + "source": "generated" + }, + "1382": { + "body": "TypeScript reports this error: Unexpected token. Did you mean `{'>'}` or `>`?", + "category": "Error", + "code": 1382, + "message": "Unexpected token. Did you mean `{'>'}` or `>`?", + "source": "generated" + }, + "1385": { + "body": "TypeScript reports this error: Function type notation must be parenthesized when used in a union type.", + "category": "Error", + "code": 1385, + "message": "Function type notation must be parenthesized when used in a union type.", + "source": "generated" + }, + "1386": { + "body": "TypeScript reports this error: Constructor type notation must be parenthesized when used in a union type.", + "category": "Error", + "code": 1386, + "message": "Constructor type notation must be parenthesized when used in a union type.", + "source": "generated" + }, + "1387": { + "body": "TypeScript reports this error: Function type notation must be parenthesized when used in an intersection type.", + "category": "Error", + "code": 1387, + "message": "Function type notation must be parenthesized when used in an intersection type.", + "source": "generated" + }, + "1388": { + "body": "TypeScript reports this error: Constructor type notation must be parenthesized when used in an intersection type.", + "category": "Error", + "code": 1388, + "message": "Constructor type notation must be parenthesized when used in an intersection type.", + "source": "generated" + }, + "1389": { + "body": "TypeScript reports this error: '{0}' is not allowed as a variable declaration name.", + "category": "Error", + "code": 1389, + "message": "'{0}' is not allowed as a variable declaration name.", + "source": "generated" + }, + "1390": { + "body": "TypeScript reports this error: '{0}' is not allowed as a parameter name.", + "category": "Error", + "code": 1390, + "message": "'{0}' is not allowed as a parameter name.", + "source": "generated" + }, + "1392": { + "body": "TypeScript reports this error: An import alias cannot use 'import type'", + "category": "Error", + "code": 1392, + "message": "An import alias cannot use 'import type'", + "source": "generated" + }, + "1393": { + "body": "TypeScript reports: Imported via {0} from file '{1}'", + "category": "Message", + "code": 1393, + "message": "Imported via {0} from file '{1}'", + "source": "generated" + }, + "1394": { + "body": "TypeScript reports: Imported via {0} from file '{1}' with packageId '{2}'", + "category": "Message", + "code": 1394, + "message": "Imported via {0} from file '{1}' with packageId '{2}'", + "source": "generated" + }, + "1395": { + "body": "TypeScript reports: Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions", + "category": "Message", + "code": 1395, + "message": "Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions", + "source": "generated" + }, + "1396": { + "body": "TypeScript reports: Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions", + "category": "Message", + "code": 1396, + "message": "Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions", + "source": "generated" + }, + "1397": { + "body": "TypeScript reports: Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions", + "category": "Message", + "code": 1397, + "message": "Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions", + "source": "generated" + }, + "1398": { + "body": "TypeScript reports: Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions", + "category": "Message", + "code": 1398, + "message": "Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions", + "source": "generated" + }, + "1399": { + "body": "TypeScript reports: File is included via import here.", + "category": "Message", + "code": 1399, + "message": "File is included via import here.", + "source": "generated" + }, + "1400": { + "body": "TypeScript reports: Referenced via '{0}' from file '{1}'", + "category": "Message", + "code": 1400, + "message": "Referenced via '{0}' from file '{1}'", + "source": "generated" + }, + "1401": { + "body": "TypeScript reports: File is included via reference here.", + "category": "Message", + "code": 1401, + "message": "File is included via reference here.", + "source": "generated" + }, + "1402": { + "body": "TypeScript reports: Type library referenced via '{0}' from file '{1}'", + "category": "Message", + "code": 1402, + "message": "Type library referenced via '{0}' from file '{1}'", + "source": "generated" + }, + "1403": { + "body": "TypeScript reports: Type library referenced via '{0}' from file '{1}' with packageId '{2}'", + "category": "Message", + "code": 1403, + "message": "Type library referenced via '{0}' from file '{1}' with packageId '{2}'", + "source": "generated" + }, + "1404": { + "body": "TypeScript reports: File is included via type library reference here.", + "category": "Message", + "code": 1404, + "message": "File is included via type library reference here.", + "source": "generated" + }, + "1405": { + "body": "TypeScript reports: Library referenced via '{0}' from file '{1}'", + "category": "Message", + "code": 1405, + "message": "Library referenced via '{0}' from file '{1}'", + "source": "generated" + }, + "1406": { + "body": "TypeScript reports: File is included via library reference here.", + "category": "Message", + "code": 1406, + "message": "File is included via library reference here.", + "source": "generated" + }, + "1407": { + "body": "TypeScript reports: Matched by include pattern '{0}' in '{1}'", + "category": "Message", + "code": 1407, + "message": "Matched by include pattern '{0}' in '{1}'", + "source": "generated" + }, + "1408": { + "body": "TypeScript reports: File is matched by include pattern specified here.", + "category": "Message", + "code": 1408, + "message": "File is matched by include pattern specified here.", + "source": "generated" + }, + "1409": { + "body": "TypeScript reports: Part of 'files' list in tsconfig.json", + "category": "Message", + "code": 1409, + "message": "Part of 'files' list in tsconfig.json", + "source": "generated" + }, + "1410": { + "body": "TypeScript reports: File is matched by 'files' list specified here.", + "category": "Message", + "code": 1410, + "message": "File is matched by 'files' list specified here.", + "source": "generated" + }, + "1411": { + "body": "TypeScript reports: Output from referenced project '{0}' included because '{1}' specified", + "category": "Message", + "code": 1411, + "message": "Output from referenced project '{0}' included because '{1}' specified", + "source": "generated" + }, + "1412": { + "body": "TypeScript reports: Output from referenced project '{0}' included because '--module' is specified as 'none'", + "category": "Message", + "code": 1412, + "message": "Output from referenced project '{0}' included because '--module' is specified as 'none'", + "source": "generated" + }, + "1413": { + "body": "TypeScript reports: File is output from referenced project specified here.", + "category": "Message", + "code": 1413, + "message": "File is output from referenced project specified here.", + "source": "generated" + }, + "1414": { + "body": "TypeScript reports: Source from referenced project '{0}' included because '{1}' specified", + "category": "Message", + "code": 1414, + "message": "Source from referenced project '{0}' included because '{1}' specified", + "source": "generated" + }, + "1415": { + "body": "TypeScript reports: Source from referenced project '{0}' included because '--module' is specified as 'none'", + "category": "Message", + "code": 1415, + "message": "Source from referenced project '{0}' included because '--module' is specified as 'none'", + "source": "generated" + }, + "1416": { + "body": "TypeScript reports: File is source from referenced project specified here.", + "category": "Message", + "code": 1416, + "message": "File is source from referenced project specified here.", + "source": "generated" + }, + "1417": { + "body": "TypeScript reports: Entry point of type library '{0}' specified in compilerOptions", + "category": "Message", + "code": 1417, + "message": "Entry point of type library '{0}' specified in compilerOptions", + "source": "generated" + }, + "1418": { + "body": "TypeScript reports: Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'", + "category": "Message", + "code": 1418, + "message": "Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'", + "source": "generated" + }, + "1419": { + "body": "TypeScript reports: File is entry point of type library specified here.", + "category": "Message", + "code": 1419, + "message": "File is entry point of type library specified here.", + "source": "generated" + }, + "1420": { + "body": "TypeScript reports: Entry point for implicit type library '{0}'", + "category": "Message", + "code": 1420, + "message": "Entry point for implicit type library '{0}'", + "source": "generated" + }, + "1421": { + "body": "TypeScript reports: Entry point for implicit type library '{0}' with packageId '{1}'", + "category": "Message", + "code": 1421, + "message": "Entry point for implicit type library '{0}' with packageId '{1}'", + "source": "generated" + }, + "1422": { + "body": "TypeScript reports: Library '{0}' specified in compilerOptions", + "category": "Message", + "code": 1422, + "message": "Library '{0}' specified in compilerOptions", + "source": "generated" + }, + "1423": { + "body": "TypeScript reports: File is library specified here.", + "category": "Message", + "code": 1423, + "message": "File is library specified here.", + "source": "generated" + }, + "1424": { + "body": "TypeScript reports: Default library", + "category": "Message", + "code": 1424, + "message": "Default library", + "source": "generated" + }, + "1425": { + "body": "TypeScript reports: Default library for target '{0}'", + "category": "Message", + "code": 1425, + "message": "Default library for target '{0}'", + "source": "generated" + }, + "1426": { + "body": "TypeScript reports: File is default library for target specified here.", + "category": "Message", + "code": 1426, + "message": "File is default library for target specified here.", + "source": "generated" + }, + "1427": { + "body": "TypeScript reports: Root file specified for compilation", + "category": "Message", + "code": 1427, + "message": "Root file specified for compilation", + "source": "generated" + }, + "1428": { + "body": "TypeScript reports: File is output of project reference source '{0}'", + "category": "Message", + "code": 1428, + "message": "File is output of project reference source '{0}'", + "source": "generated" + }, + "1429": { + "body": "TypeScript reports: File redirects to file '{0}'", + "category": "Message", + "code": 1429, + "message": "File redirects to file '{0}'", + "source": "generated" + }, + "1430": { + "body": "TypeScript reports: The file is in the program because:", + "category": "Message", + "code": 1430, + "message": "The file is in the program because:", + "source": "generated" + }, + "1431": { + "body": "TypeScript reports this error: 'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "category": "Error", + "code": 1431, + "message": "'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "source": "generated" + }, + "1432": { + "body": "TypeScript reports this error: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "category": "Error", + "code": 1432, + "message": "Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "source": "generated" + }, + "1433": { + "body": "TypeScript reports this error: Neither decorators nor modifiers may be applied to 'this' parameters.", + "category": "Error", + "code": 1433, + "message": "Neither decorators nor modifiers may be applied to 'this' parameters.", + "source": "generated" + }, + "1434": { + "body": "There's a syntax error in your code, so I can't tell exactly what's wrong.", + "category": "Error", + "code": 1434, + "message": "Unexpected keyword or identifier.", + "source": "curated" + }, + "1435": { + "body": "TypeScript reports this error: Unknown keyword or identifier. Did you mean '{0}'?", + "category": "Error", + "code": 1435, + "message": "Unknown keyword or identifier. Did you mean '{0}'?", + "source": "generated" + }, + "1436": { + "body": "TypeScript reports this error: Decorators must precede the name and all keywords of property declarations.", + "category": "Error", + "code": 1436, + "message": "Decorators must precede the name and all keywords of property declarations.", + "source": "generated" + }, + "1437": { + "body": "TypeScript reports this error: Namespace must be given a name.", + "category": "Error", + "code": 1437, + "message": "Namespace must be given a name.", + "source": "generated" + }, + "1438": { + "body": "TypeScript reports this error: Interface must be given a name.", + "category": "Error", + "code": 1438, + "message": "Interface must be given a name.", + "source": "generated" + }, + "1439": { + "body": "TypeScript reports this error: Type alias must be given a name.", + "category": "Error", + "code": 1439, + "message": "Type alias must be given a name.", + "source": "generated" + }, + "1440": { + "body": "TypeScript reports this error: Variable declaration not allowed at this location.", + "category": "Error", + "code": 1440, + "message": "Variable declaration not allowed at this location.", + "source": "generated" + }, + "1441": { + "body": "TypeScript reports this error: Cannot start a function call in a type annotation.", + "category": "Error", + "code": 1441, + "message": "Cannot start a function call in a type annotation.", + "source": "generated" + }, + "1442": { + "body": "TypeScript reports this error: Expected '=' for property initializer.", + "category": "Error", + "code": 1442, + "message": "Expected '=' for property initializer.", + "source": "generated" + }, + "1443": { + "body": "TypeScript reports this error: Module declaration names may only use ' or \" quoted strings.", + "category": "Error", + "code": 1443, + "message": "Module declaration names may only use ' or \" quoted strings.", + "source": "generated" + }, + "1448": { + "body": "TypeScript reports this error: '{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.", + "category": "Error", + "code": 1448, + "message": "'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.", + "source": "generated" + }, + "1449": { + "body": "TypeScript reports: Preserve unused imported values in the JavaScript output that would otherwise be removed.", + "category": "Message", + "code": 1449, + "message": "Preserve unused imported values in the JavaScript output that would otherwise be removed.", + "source": "generated" + }, + "1450": { + "body": "TypeScript reports: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments", + "category": "Message", + "code": 1450, + "message": "Dynamic imports can only accept a module specifier and an optional set of attributes as arguments", + "source": "generated" + }, + "1451": { + "body": "TypeScript reports this error: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression", + "category": "Error", + "code": 1451, + "message": "Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression", + "source": "generated" + }, + "1453": { + "body": "TypeScript reports this error: `resolution-mode` should be either `require` or `import`.", + "category": "Error", + "code": 1453, + "message": "`resolution-mode` should be either `require` or `import`.", + "source": "generated" + }, + "1454": { + "body": "TypeScript reports this error: `resolution-mode` can only be set for type-only imports.", + "category": "Error", + "code": 1454, + "message": "`resolution-mode` can only be set for type-only imports.", + "source": "generated" + }, + "1455": { + "body": "TypeScript reports this error: `resolution-mode` is the only valid key for type import assertions.", + "category": "Error", + "code": 1455, + "message": "`resolution-mode` is the only valid key for type import assertions.", + "source": "generated" + }, + "1456": { + "body": "TypeScript reports this error: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.", + "category": "Error", + "code": 1456, + "message": "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.", + "source": "generated" + }, + "1457": { + "body": "TypeScript reports: Matched by default include pattern '**/*'", + "category": "Message", + "code": 1457, + "message": "Matched by default include pattern '**/*'", + "source": "generated" + }, + "1458": { + "body": "TypeScript reports: File is ECMAScript module because '{0}' has field \"type\" with value \"module\"", + "category": "Message", + "code": 1458, + "message": "File is ECMAScript module because '{0}' has field \"type\" with value \"module\"", + "source": "generated" + }, + "1459": { + "body": "TypeScript reports: File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"", + "category": "Message", + "code": 1459, + "message": "File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"", + "source": "generated" + }, + "1460": { + "body": "TypeScript reports: File is CommonJS module because '{0}' does not have field \"type\"", + "category": "Message", + "code": 1460, + "message": "File is CommonJS module because '{0}' does not have field \"type\"", + "source": "generated" + }, + "1461": { + "body": "TypeScript reports: File is CommonJS module because 'package.json' was not found", + "category": "Message", + "code": 1461, + "message": "File is CommonJS module because 'package.json' was not found", + "source": "generated" + }, + "1463": { + "body": "TypeScript reports this error: 'resolution-mode' is the only valid key for type import attributes.", + "category": "Error", + "code": 1463, + "message": "'resolution-mode' is the only valid key for type import attributes.", + "source": "generated" + }, + "1464": { + "body": "TypeScript reports this error: Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.", + "category": "Error", + "code": 1464, + "message": "Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.", + "source": "generated" + }, + "1470": { + "body": "TypeScript reports this error: The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.", + "category": "Error", + "code": 1470, + "message": "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.", + "source": "generated" + }, + "1471": { + "body": "TypeScript reports this error: Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.", + "category": "Error", + "code": 1471, + "message": "Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.", + "source": "generated" + }, + "1472": { + "body": "TypeScript reports this error: 'catch' or 'finally' expected.", + "category": "Error", + "code": 1472, + "message": "'catch' or 'finally' expected.", + "source": "generated" + }, + "1473": { + "body": "TypeScript reports this error: An import declaration can only be used at the top level of a module.", + "category": "Error", + "code": 1473, + "message": "An import declaration can only be used at the top level of a module.", + "source": "generated" + }, + "1474": { + "body": "TypeScript reports this error: An export declaration can only be used at the top level of a module.", + "category": "Error", + "code": 1474, + "message": "An export declaration can only be used at the top level of a module.", + "source": "generated" + }, + "1475": { + "body": "TypeScript reports: Control what method is used to detect module-format JS files.", + "category": "Message", + "code": 1475, + "message": "Control what method is used to detect module-format JS files.", + "source": "generated" + }, + "1476": { + "body": "TypeScript reports: \"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.", + "category": "Message", + "code": 1476, + "message": "\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.", + "source": "generated" + }, + "1477": { + "body": "TypeScript reports this error: An instantiation expression cannot be followed by a property access.", + "category": "Error", + "code": 1477, + "message": "An instantiation expression cannot be followed by a property access.", + "source": "generated" + }, + "1478": { + "body": "TypeScript reports this error: Identifier or string literal expected.", + "category": "Error", + "code": 1478, + "message": "Identifier or string literal expected.", + "source": "generated" + }, + "1479": { + "body": "TypeScript reports this error: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.", + "category": "Error", + "code": 1479, + "message": "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.", + "source": "generated" + }, + "1480": { + "body": "TypeScript reports: To convert this file to an ECMAScript module, change its file extension to '{0}' or create a local package.json file with `{ \"type\": \"module\" }`.", + "category": "Message", + "code": 1480, + "message": "To convert this file to an ECMAScript module, change its file extension to '{0}' or create a local package.json file with `{ \"type\": \"module\" }`.", + "source": "generated" + }, + "1481": { + "body": "TypeScript reports: To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field `\"type\": \"module\"` to '{1}'.", + "category": "Message", + "code": 1481, + "message": "To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field `\"type\": \"module\"` to '{1}'.", + "source": "generated" + }, + "1482": { + "body": "TypeScript reports: To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to '{0}'.", + "category": "Message", + "code": 1482, + "message": "To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to '{0}'.", + "source": "generated" + }, + "1483": { + "body": "TypeScript reports: To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.", + "category": "Message", + "code": 1483, + "message": "To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.", + "source": "generated" + }, + "1484": { + "body": "TypeScript reports this error: '{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.", + "category": "Error", + "code": 1484, + "message": "'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.", + "source": "generated" + }, + "1485": { + "body": "TypeScript reports this error: '{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.", + "category": "Error", + "code": 1485, + "message": "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.", + "source": "generated" + }, + "1486": { + "body": "TypeScript reports this error: Decorator used before 'export' here.", + "category": "Error", + "code": 1486, + "message": "Decorator used before 'export' here.", + "source": "generated" + }, + "1487": { + "body": "TypeScript reports this error: Octal escape sequences are not allowed. Use the syntax '{0}'.", + "category": "Error", + "code": 1487, + "message": "Octal escape sequences are not allowed. Use the syntax '{0}'.", + "source": "generated" + }, + "1488": { + "body": "TypeScript reports this error: Escape sequence '{0}' is not allowed.", + "category": "Error", + "code": 1488, + "message": "Escape sequence '{0}' is not allowed.", + "source": "generated" + }, + "1489": { + "body": "TypeScript reports this error: Decimals with leading zeros are not allowed.", + "category": "Error", + "code": 1489, + "message": "Decimals with leading zeros are not allowed.", + "source": "generated" + }, + "1490": { + "body": "TypeScript reports this error: File appears to be binary.", + "category": "Error", + "code": 1490, + "message": "File appears to be binary.", + "source": "generated" + }, + "1491": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on a 'using' declaration.", + "category": "Error", + "code": 1491, + "message": "'{0}' modifier cannot appear on a 'using' declaration.", + "source": "generated" + }, + "1492": { + "body": "TypeScript reports this error: '{0}' declarations may not have binding patterns.", + "category": "Error", + "code": 1492, + "message": "'{0}' declarations may not have binding patterns.", + "source": "generated" + }, + "1493": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement cannot be a 'using' declaration.", + "category": "Error", + "code": 1493, + "message": "The left-hand side of a 'for...in' statement cannot be a 'using' declaration.", + "source": "generated" + }, + "1494": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.", + "category": "Error", + "code": 1494, + "message": "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.", + "source": "generated" + }, + "1495": { + "body": "TypeScript reports this error: '{0}' modifier cannot appear on an 'await using' declaration.", + "category": "Error", + "code": 1495, + "message": "'{0}' modifier cannot appear on an 'await using' declaration.", + "source": "generated" + }, + "1496": { + "body": "TypeScript reports this error: Identifier, string literal, or number literal expected.", + "category": "Error", + "code": 1496, + "message": "Identifier, string literal, or number literal expected.", + "source": "generated" + }, + "1497": { + "body": "TypeScript reports this error: Expression must be enclosed in parentheses to be used as a decorator.", + "category": "Error", + "code": 1497, + "message": "Expression must be enclosed in parentheses to be used as a decorator.", + "source": "generated" + }, + "1498": { + "body": "TypeScript reports this error: Invalid syntax in decorator.", + "category": "Error", + "code": 1498, + "message": "Invalid syntax in decorator.", + "source": "generated" + }, + "1499": { + "body": "TypeScript reports this error: Unknown regular expression flag.", + "category": "Error", + "code": 1499, + "message": "Unknown regular expression flag.", + "source": "generated" + }, + "1500": { + "body": "TypeScript reports this error: Duplicate regular expression flag.", + "category": "Error", + "code": 1500, + "message": "Duplicate regular expression flag.", + "source": "generated" + }, + "1501": { + "body": "TypeScript reports this error: This regular expression flag is only available when targeting '{0}' or later.", + "category": "Error", + "code": 1501, + "message": "This regular expression flag is only available when targeting '{0}' or later.", + "source": "generated" + }, + "1502": { + "body": "TypeScript reports this error: The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.", + "category": "Error", + "code": 1502, + "message": "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.", + "source": "generated" + }, + "1503": { + "body": "TypeScript reports this error: Named capturing groups are only available when targeting 'ES2018' or later.", + "category": "Error", + "code": 1503, + "message": "Named capturing groups are only available when targeting 'ES2018' or later.", + "source": "generated" + }, + "1504": { + "body": "TypeScript reports this error: Subpattern flags must be present when there is a minus sign.", + "category": "Error", + "code": 1504, + "message": "Subpattern flags must be present when there is a minus sign.", + "source": "generated" + }, + "1505": { + "body": "TypeScript reports this error: Incomplete quantifier. Digit expected.", + "category": "Error", + "code": 1505, + "message": "Incomplete quantifier. Digit expected.", + "source": "generated" + }, + "1506": { + "body": "TypeScript reports this error: Numbers out of order in quantifier.", + "category": "Error", + "code": 1506, + "message": "Numbers out of order in quantifier.", + "source": "generated" + }, + "1507": { + "body": "TypeScript reports this error: There is nothing available for repetition.", + "category": "Error", + "code": 1507, + "message": "There is nothing available for repetition.", + "source": "generated" + }, + "1508": { + "body": "TypeScript reports this error: Unexpected '{0}'. Did you mean to escape it with backslash?", + "category": "Error", + "code": 1508, + "message": "Unexpected '{0}'. Did you mean to escape it with backslash?", + "source": "generated" + }, + "1509": { + "body": "TypeScript reports this error: This regular expression flag cannot be toggled within a subpattern.", + "category": "Error", + "code": 1509, + "message": "This regular expression flag cannot be toggled within a subpattern.", + "source": "generated" + }, + "1510": { + "body": "TypeScript reports this error: '\\k' must be followed by a capturing group name enclosed in angle brackets.", + "category": "Error", + "code": 1510, + "message": "'\\k' must be followed by a capturing group name enclosed in angle brackets.", + "source": "generated" + }, + "1511": { + "body": "TypeScript reports this error: '\\q' is only available inside character class.", + "category": "Error", + "code": 1511, + "message": "'\\q' is only available inside character class.", + "source": "generated" + }, + "1512": { + "body": "TypeScript reports this error: '\\c' must be followed by an ASCII letter.", + "category": "Error", + "code": 1512, + "message": "'\\c' must be followed by an ASCII letter.", + "source": "generated" + }, + "1513": { + "body": "TypeScript reports this error: Undetermined character escape.", + "category": "Error", + "code": 1513, + "message": "Undetermined character escape.", + "source": "generated" + }, + "1514": { + "body": "TypeScript reports this error: Expected a capturing group name.", + "category": "Error", + "code": 1514, + "message": "Expected a capturing group name.", + "source": "generated" + }, + "1515": { + "body": "TypeScript reports this error: Named capturing groups with the same name must be mutually exclusive to each other.", + "category": "Error", + "code": 1515, + "message": "Named capturing groups with the same name must be mutually exclusive to each other.", + "source": "generated" + }, + "1516": { + "body": "TypeScript reports this error: A character class range must not be bounded by another character class.", + "category": "Error", + "code": 1516, + "message": "A character class range must not be bounded by another character class.", + "source": "generated" + }, + "1517": { + "body": "TypeScript reports this error: Range out of order in character class.", + "category": "Error", + "code": 1517, + "message": "Range out of order in character class.", + "source": "generated" + }, + "1518": { + "body": "TypeScript reports this error: Anything that would possibly match more than a single character is invalid inside a negated character class.", + "category": "Error", + "code": 1518, + "message": "Anything that would possibly match more than a single character is invalid inside a negated character class.", + "source": "generated" + }, + "1519": { + "body": "TypeScript reports this error: Operators must not be mixed within a character class. Wrap it in a nested class instead.", + "category": "Error", + "code": 1519, + "message": "Operators must not be mixed within a character class. Wrap it in a nested class instead.", + "source": "generated" + }, + "1520": { + "body": "TypeScript reports this error: Expected a class set operand.", + "category": "Error", + "code": 1520, + "message": "Expected a class set operand.", + "source": "generated" + }, + "1521": { + "body": "TypeScript reports this error: '\\q' must be followed by string alternatives enclosed in braces.", + "category": "Error", + "code": 1521, + "message": "'\\q' must be followed by string alternatives enclosed in braces.", + "source": "generated" + }, + "1522": { + "body": "TypeScript reports this error: A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?", + "category": "Error", + "code": 1522, + "message": "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?", + "source": "generated" + }, + "1523": { + "body": "TypeScript reports this error: Expected a Unicode property name.", + "category": "Error", + "code": 1523, + "message": "Expected a Unicode property name.", + "source": "generated" + }, + "1524": { + "body": "TypeScript reports this error: Unknown Unicode property name.", + "category": "Error", + "code": 1524, + "message": "Unknown Unicode property name.", + "source": "generated" + }, + "1525": { + "body": "TypeScript reports this error: Expected a Unicode property value.", + "category": "Error", + "code": 1525, + "message": "Expected a Unicode property value.", + "source": "generated" + }, + "1526": { + "body": "TypeScript reports this error: Unknown Unicode property value.", + "category": "Error", + "code": 1526, + "message": "Unknown Unicode property value.", + "source": "generated" + }, + "1527": { + "body": "TypeScript reports this error: Expected a Unicode property name or value.", + "category": "Error", + "code": 1527, + "message": "Expected a Unicode property name or value.", + "source": "generated" + }, + "1528": { + "body": "TypeScript reports this error: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.", + "category": "Error", + "code": 1528, + "message": "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.", + "source": "generated" + }, + "1529": { + "body": "TypeScript reports this error: Unknown Unicode property name or value.", + "category": "Error", + "code": 1529, + "message": "Unknown Unicode property name or value.", + "source": "generated" + }, + "1530": { + "body": "TypeScript reports this error: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.", + "category": "Error", + "code": 1530, + "message": "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.", + "source": "generated" + }, + "1531": { + "body": "TypeScript reports this error: '\\{0}' must be followed by a Unicode property value expression enclosed in braces.", + "category": "Error", + "code": 1531, + "message": "'\\{0}' must be followed by a Unicode property value expression enclosed in braces.", + "source": "generated" + }, + "1532": { + "body": "TypeScript reports this error: There is no capturing group named '{0}' in this regular expression.", + "category": "Error", + "code": 1532, + "message": "There is no capturing group named '{0}' in this regular expression.", + "source": "generated" + }, + "1533": { + "body": "TypeScript reports this error: This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.", + "category": "Error", + "code": 1533, + "message": "This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.", + "source": "generated" + }, + "1534": { + "body": "TypeScript reports this error: This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.", + "category": "Error", + "code": 1534, + "message": "This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.", + "source": "generated" + }, + "1535": { + "body": "TypeScript reports this error: This character cannot be escaped in a regular expression.", + "category": "Error", + "code": 1535, + "message": "This character cannot be escaped in a regular expression.", + "source": "generated" + }, + "1536": { + "body": "TypeScript reports this error: Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.", + "category": "Error", + "code": 1536, + "message": "Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.", + "source": "generated" + }, + "1537": { + "body": "TypeScript reports this error: Decimal escape sequences and backreferences are not allowed in a character class.", + "category": "Error", + "code": 1537, + "message": "Decimal escape sequences and backreferences are not allowed in a character class.", + "source": "generated" + }, + "1538": { + "body": "TypeScript reports this error: Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.", + "category": "Error", + "code": 1538, + "message": "Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.", + "source": "generated" + }, + "1539": { + "body": "TypeScript reports this error: A 'bigint' literal cannot be used as a property name.", + "category": "Error", + "code": 1539, + "message": "A 'bigint' literal cannot be used as a property name.", + "source": "generated" + }, + "1540": { + "body": "TypeScript reports this error: A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.", + "category": "Error", + "code": 1540, + "message": "A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.", + "source": "generated" + }, + "1541": { + "body": "TypeScript reports this error: Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.", + "category": "Error", + "code": 1541, + "message": "Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.", + "source": "generated" + }, + "1542": { + "body": "TypeScript reports this error: Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.", + "category": "Error", + "code": 1542, + "message": "Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.", + "source": "generated" + }, + "1543": { + "body": "TypeScript reports this error: Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.", + "category": "Error", + "code": 1543, + "message": "Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.", + "source": "generated" + }, + "1544": { + "body": "TypeScript reports this error: Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.", + "category": "Error", + "code": 1544, + "message": "Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.", + "source": "generated" + }, + "1545": { + "body": "TypeScript reports this error: 'using' declarations are not allowed in ambient contexts.", + "category": "Error", + "code": 1545, + "message": "'using' declarations are not allowed in ambient contexts.", + "source": "generated" + }, + "1546": { + "body": "TypeScript reports this error: 'await using' declarations are not allowed in ambient contexts.", + "category": "Error", + "code": 1546, + "message": "'await using' declarations are not allowed in ambient contexts.", + "source": "generated" + }, + "1547": { + "body": "TypeScript reports this error: 'using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.", + "category": "Error", + "code": 1547, + "message": "'using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.", + "source": "generated" + }, + "1548": { + "body": "TypeScript reports this error: 'await using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.", + "category": "Error", + "code": 1548, + "message": "'await using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.", + "source": "generated" + }, + "1549": { + "body": "TypeScript reports: Ignore the tsconfig found and build with commandline options and files.", + "category": "Message", + "code": 1549, + "message": "Ignore the tsconfig found and build with commandline options and files.", + "source": "generated" + }, + "2200": { + "body": "TypeScript reports this error: The types of '{0}' are incompatible between these types.", + "category": "Error", + "code": 2200, + "message": "The types of '{0}' are incompatible between these types.", + "source": "generated" + }, + "2201": { + "body": "TypeScript reports this error: The types returned by '{0}' are incompatible between these types.", + "category": "Error", + "code": 2201, + "message": "The types returned by '{0}' are incompatible between these types.", + "source": "generated" + }, + "2202": { + "body": "TypeScript reports this error: Call signature return types '{0}' and '{1}' are incompatible.", + "category": "Error", + "code": 2202, + "message": "Call signature return types '{0}' and '{1}' are incompatible.", + "source": "generated" + }, + "2203": { + "body": "TypeScript reports this error: Construct signature return types '{0}' and '{1}' are incompatible.", + "category": "Error", + "code": 2203, + "message": "Construct signature return types '{0}' and '{1}' are incompatible.", + "source": "generated" + }, + "2204": { + "body": "TypeScript reports this error: Call signatures with no arguments have incompatible return types '{0}' and '{1}'.", + "category": "Error", + "code": 2204, + "message": "Call signatures with no arguments have incompatible return types '{0}' and '{1}'.", + "source": "generated" + }, + "2205": { + "body": "TypeScript reports this error: Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.", + "category": "Error", + "code": 2205, + "message": "Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.", + "source": "generated" + }, + "2206": { + "body": "TypeScript reports this error: The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + "category": "Error", + "code": 2206, + "message": "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + "source": "generated" + }, + "2207": { + "body": "TypeScript reports this error: The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + "category": "Error", + "code": 2207, + "message": "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + "source": "generated" + }, + "2208": { + "body": "TypeScript reports this error: This type parameter might need an `extends {0}` constraint.", + "category": "Error", + "code": 2208, + "message": "This type parameter might need an `extends {0}` constraint.", + "source": "generated" + }, + "2209": { + "body": "TypeScript reports this error: The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.", + "category": "Error", + "code": 2209, + "message": "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.", + "source": "generated" + }, + "2210": { + "body": "TypeScript reports this error: The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.", + "category": "Error", + "code": 2210, + "message": "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.", + "source": "generated" + }, + "2211": { + "body": "TypeScript reports: Add `extends` constraint.", + "category": "Message", + "code": 2211, + "message": "Add `extends` constraint.", + "source": "generated" + }, + "2212": { + "body": "TypeScript reports: Add `extends` constraint to all type parameters", + "category": "Message", + "code": 2212, + "message": "Add `extends` constraint to all type parameters", + "source": "generated" + }, + "2300": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'.", + "category": "Error", + "code": 2300, + "message": "Duplicate identifier '{0}'.", + "source": "generated" + }, + "2301": { + "body": "TypeScript reports this error: Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", + "category": "Error", + "code": 2301, + "message": "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", + "source": "generated" + }, + "2302": { + "body": "TypeScript reports this error: Static members cannot reference class type parameters.", + "category": "Error", + "code": 2302, + "message": "Static members cannot reference class type parameters.", + "source": "generated" + }, + "2303": { + "body": "TypeScript reports this error: Circular definition of import alias '{0}'.", + "category": "Error", + "code": 2303, + "message": "Circular definition of import alias '{0}'.", + "source": "generated" + }, + "2304": { + "body": "I can't find the variable you're trying to access.", + "category": "Error", + "code": 2304, + "message": "Cannot find name '{0}'.", + "source": "curated" + }, + "2305": { + "body": "'{1}' is not one of the things exported from '{0}'.", + "category": "Error", + "code": 2305, + "message": "Module '{0}' has no exported member '{1}'.", + "source": "curated" + }, + "2306": { + "body": "TypeScript reports this error: File '{0}' is not a module.", + "category": "Error", + "code": 2306, + "message": "File '{0}' is not a module.", + "source": "generated" + }, + "2307": { + "body": "This could be one of two things - either '{0}' doesn't exist on your file system, or I can't find any type declarations for it.", + "category": "Error", + "code": 2307, + "message": "Cannot find module '{0}' or its corresponding type declarations.", + "source": "curated" + }, + "2308": { + "body": "TypeScript reports this error: Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.", + "category": "Error", + "code": 2308, + "message": "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.", + "source": "generated" + }, + "2309": { + "body": "TypeScript reports this error: An export assignment cannot be used in a module with other exported elements.", + "category": "Error", + "code": 2309, + "message": "An export assignment cannot be used in a module with other exported elements.", + "source": "generated" + }, + "2310": { + "body": "TypeScript reports this error: Type '{0}' recursively references itself as a base type.", + "category": "Error", + "code": 2310, + "message": "Type '{0}' recursively references itself as a base type.", + "source": "generated" + }, + "2311": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Did you mean to write this in an async function?", + "category": "Error", + "code": 2311, + "message": "Cannot find name '{0}'. Did you mean to write this in an async function?", + "source": "generated" + }, + "2312": { + "body": "You might be trying to use an interface to extend a union type. This isn't possible.", + "category": "Error", + "code": 2312, + "message": "An interface can only extend an object type or intersection of object types with statically known members.", + "source": "curated" + }, + "2313": { + "body": "TypeScript reports this error: Type parameter '{0}' has a circular constraint.", + "category": "Error", + "code": 2313, + "message": "Type parameter '{0}' has a circular constraint.", + "source": "generated" + }, + "2314": { + "body": "It looks like '{0}' requires '{1}' type arguments, which means you need to pass them in via a generic.", + "category": "Error", + "code": 2314, + "message": "Generic type '{0}' requires {1} type argument(s).", + "source": "curated" + }, + "2315": { + "body": "TypeScript reports this error: Type '{0}' is not generic.", + "category": "Error", + "code": 2315, + "message": "Type '{0}' is not generic.", + "source": "generated" + }, + "2316": { + "body": "TypeScript reports this error: Global type '{0}' must be a class or interface type.", + "category": "Error", + "code": 2316, + "message": "Global type '{0}' must be a class or interface type.", + "source": "generated" + }, + "2317": { + "body": "TypeScript reports this error: Global type '{0}' must have {1} type parameter(s).", + "category": "Error", + "code": 2317, + "message": "Global type '{0}' must have {1} type parameter(s).", + "source": "generated" + }, + "2318": { + "body": "TypeScript reports this error: Cannot find global type '{0}'.", + "category": "Error", + "code": 2318, + "message": "Cannot find global type '{0}'.", + "source": "generated" + }, + "2319": { + "body": "TypeScript reports this error: Named property '{0}' of types '{1}' and '{2}' are not identical.", + "category": "Error", + "code": 2319, + "message": "Named property '{0}' of types '{1}' and '{2}' are not identical.", + "source": "generated" + }, + "2320": { + "body": "TypeScript reports this error: Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.", + "category": "Error", + "code": 2320, + "message": "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.", + "source": "generated" + }, + "2321": { + "body": "TypeScript reports this error: Excessive stack depth comparing types '{0}' and '{1}'.", + "category": "Error", + "code": 2321, + "message": "Excessive stack depth comparing types '{0}' and '{1}'.", + "source": "generated" + }, + "2322": { + "body": "I was expecting a type matching '{1}', but instead you passed '{0}'.", + "category": "Error", + "code": 2322, + "message": "Type '{0}' is not assignable to type '{1}'.", + "source": "curated" + }, + "2323": { + "body": "TypeScript reports this error: Cannot redeclare exported variable '{0}'.", + "category": "Error", + "code": 2323, + "message": "Cannot redeclare exported variable '{0}'.", + "source": "generated" + }, + "2324": { + "body": "You haven't passed all the required properties to '{1}' - you've missed out '{0}'", + "category": "Error", + "code": 2324, + "message": "Property '{0}' is missing in type '{1}'.", + "source": "curated" + }, + "2325": { + "body": "TypeScript reports this error: Property '{0}' is private in type '{1}' but not in type '{2}'.", + "category": "Error", + "code": 2325, + "message": "Property '{0}' is private in type '{1}' but not in type '{2}'.", + "source": "generated" + }, + "2326": { + "body": "Two similar types have a property '{0}' which is different, making them incompatible.", + "category": "Error", + "code": 2326, + "message": "Types of property '{0}' are incompatible.", + "source": "curated" + }, + "2327": { + "body": "Property '{0}' in type '{2}' must exist.", + "category": "Error", + "code": 2327, + "message": "Property '{0}' is optional in type '{1}' but required in type '{2}'.", + "source": "curated" + }, + "2328": { + "body": "TypeScript reports this error: Types of parameters '{0}' and '{1}' are incompatible.", + "category": "Error", + "code": 2328, + "message": "Types of parameters '{0}' and '{1}' are incompatible.", + "source": "generated" + }, + "2329": { + "body": "TypeScript reports this error: Index signature for type '{0}' is missing in type '{1}'.", + "category": "Error", + "code": 2329, + "message": "Index signature for type '{0}' is missing in type '{1}'.", + "source": "generated" + }, + "2330": { + "body": "TypeScript reports this error: '{0}' and '{1}' index signatures are incompatible.", + "category": "Error", + "code": 2330, + "message": "'{0}' and '{1}' index signatures are incompatible.", + "source": "generated" + }, + "2331": { + "body": "TypeScript reports this error: 'this' cannot be referenced in a module or namespace body.", + "category": "Error", + "code": 2331, + "message": "'this' cannot be referenced in a module or namespace body.", + "source": "generated" + }, + "2332": { + "body": "TypeScript reports this error: 'this' cannot be referenced in current location.", + "category": "Error", + "code": 2332, + "message": "'this' cannot be referenced in current location.", + "source": "generated" + }, + "2334": { + "body": "TypeScript reports this error: 'this' cannot be referenced in a static property initializer.", + "category": "Error", + "code": 2334, + "message": "'this' cannot be referenced in a static property initializer.", + "source": "generated" + }, + "2335": { + "body": "TypeScript reports this error: 'super' can only be referenced in a derived class.", + "category": "Error", + "code": 2335, + "message": "'super' can only be referenced in a derived class.", + "source": "generated" + }, + "2336": { + "body": "TypeScript reports this error: 'super' cannot be referenced in constructor arguments.", + "category": "Error", + "code": 2336, + "message": "'super' cannot be referenced in constructor arguments.", + "source": "generated" + }, + "2337": { + "body": "TypeScript reports this error: Super calls are not permitted outside constructors or in nested functions inside constructors.", + "category": "Error", + "code": 2337, + "message": "Super calls are not permitted outside constructors or in nested functions inside constructors.", + "source": "generated" + }, + "2338": { + "body": "TypeScript reports this error: 'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.", + "category": "Error", + "code": 2338, + "message": "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.", + "source": "generated" + }, + "2339": { + "body": "You're trying to access '{0}' on an object that doesn't contain it. [Learn more](https://totaltypescript.com/concepts/property-does-not-exist-on-type).", + "category": "Error", + "code": 2339, + "message": "Property '{0}' does not exist on type '{1}'.", + "source": "curated" + }, + "2340": { + "body": "TypeScript reports this error: Only public and protected methods of the base class are accessible via the 'super' keyword.", + "category": "Error", + "code": 2340, + "message": "Only public and protected methods of the base class are accessible via the 'super' keyword.", + "source": "generated" + }, + "2341": { + "body": "TypeScript reports this error: Property '{0}' is private and only accessible within class '{1}'.", + "category": "Error", + "code": 2341, + "message": "Property '{0}' is private and only accessible within class '{1}'.", + "source": "generated" + }, + "2343": { + "body": "TypeScript reports this error: This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.", + "category": "Error", + "code": 2343, + "message": "This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.", + "source": "generated" + }, + "2344": { + "body": "You're trying to pass in '{0}' into a slot where I can see only '{1}' can be passed.", + "category": "Error", + "code": 2344, + "message": "Type '{0}' does not satisfy the constraint '{1}'.", + "source": "curated" + }, + "2345": { + "body": "I was expecting '{1}', but you passed '{0}'.", + "category": "Error", + "code": 2345, + "message": "Argument of type '{0}' is not assignable to parameter of type '{1}'.", + "source": "curated" + }, + "2346": { + "body": "TypeScript reports this error: Call target does not contain any signatures.", + "category": "Error", + "code": 2346, + "message": "Call target does not contain any signatures.", + "source": "generated" + }, + "2347": { + "body": "TypeScript reports this error: Untyped function calls may not accept type arguments.", + "category": "Error", + "code": 2347, + "message": "Untyped function calls may not accept type arguments.", + "source": "generated" + }, + "2348": { + "body": "TypeScript reports this error: Value of type '{0}' is not callable. Did you mean to include 'new'?", + "category": "Error", + "code": 2348, + "message": "Value of type '{0}' is not callable. Did you mean to include 'new'?", + "source": "generated" + }, + "2349": { + "body": "I can't call this expression because I can't call it like a function.", + "category": "Error", + "code": 2349, + "message": "This expression is not callable.", + "source": "curated" + }, + "2350": { + "body": "TypeScript reports this error: Only a void function can be called with the 'new' keyword.", + "category": "Error", + "code": 2350, + "message": "Only a void function can be called with the 'new' keyword.", + "source": "generated" + }, + "2351": { + "body": "TypeScript reports this error: This expression is not constructable.", + "category": "Error", + "code": 2351, + "message": "This expression is not constructable.", + "source": "generated" + }, + "2352": { + "body": "You can't use 'as' to convert '{0}' into a '{1}' - they don't share enough in common.", + "category": "Error", + "code": 2352, + "message": "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.", + "source": "curated" + }, + "2353": { + "body": "You can't pass property '{0}' to type '{1}'.", + "category": "Error", + "code": 2353, + "message": "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.", + "source": "curated" + }, + "2354": { + "body": "TypeScript reports this error: This syntax requires an imported helper but module '{0}' cannot be found.", + "category": "Error", + "code": 2354, + "message": "This syntax requires an imported helper but module '{0}' cannot be found.", + "source": "generated" + }, + "2355": { + "body": "This function says it returns a value, but at least one path does not return one.", + "category": "Error", + "code": 2355, + "message": "A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.", + "source": "curated" + }, + "2356": { + "body": "TypeScript reports this error: An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.", + "category": "Error", + "code": 2356, + "message": "An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.", + "source": "generated" + }, + "2357": { + "body": "TypeScript reports this error: The operand of an increment or decrement operator must be a variable or a property access.", + "category": "Error", + "code": 2357, + "message": "The operand of an increment or decrement operator must be a variable or a property access.", + "source": "generated" + }, + "2358": { + "body": "TypeScript reports this error: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.", + "category": "Error", + "code": 2358, + "message": "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.", + "source": "generated" + }, + "2359": { + "body": "TypeScript reports this error: The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.", + "category": "Error", + "code": 2359, + "message": "The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.", + "source": "generated" + }, + "2362": { + "body": "TypeScript reports this error: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.", + "category": "Error", + "code": 2362, + "message": "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.", + "source": "generated" + }, + "2363": { + "body": "TypeScript reports this error: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.", + "category": "Error", + "code": 2363, + "message": "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.", + "source": "generated" + }, + "2364": { + "body": "TypeScript reports this error: The left-hand side of an assignment expression must be a variable or a property access.", + "category": "Error", + "code": 2364, + "message": "The left-hand side of an assignment expression must be a variable or a property access.", + "source": "generated" + }, + "2365": { + "body": "You can't use '{0}' on the types '{1}' and '{2}'.", + "category": "Error", + "code": 2365, + "message": "Operator '{0}' cannot be applied to types '{1}' and '{2}'.", + "source": "curated" + }, + "2366": { + "body": "TypeScript reports this error: Function lacks ending return statement and return type does not include 'undefined'.", + "category": "Error", + "code": 2366, + "message": "Function lacks ending return statement and return type does not include 'undefined'.", + "source": "generated" + }, + "2367": { + "body": "TypeScript reports this error: This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.", + "category": "Error", + "code": 2367, + "message": "This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.", + "source": "generated" + }, + "2368": { + "body": "TypeScript reports this error: Type parameter name cannot be '{0}'.", + "category": "Error", + "code": 2368, + "message": "Type parameter name cannot be '{0}'.", + "source": "generated" + }, + "2369": { + "body": "TypeScript reports this error: A parameter property is only allowed in a constructor implementation.", + "category": "Error", + "code": 2369, + "message": "A parameter property is only allowed in a constructor implementation.", + "source": "generated" + }, + "2370": { + "body": "TypeScript reports this error: A rest parameter must be of an array type.", + "category": "Error", + "code": 2370, + "message": "A rest parameter must be of an array type.", + "source": "generated" + }, + "2371": { + "body": "TypeScript reports this error: A parameter initializer is only allowed in a function or constructor implementation.", + "category": "Error", + "code": 2371, + "message": "A parameter initializer is only allowed in a function or constructor implementation.", + "source": "generated" + }, + "2372": { + "body": "TypeScript reports this error: Parameter '{0}' cannot reference itself.", + "category": "Error", + "code": 2372, + "message": "Parameter '{0}' cannot reference itself.", + "source": "generated" + }, + "2373": { + "body": "TypeScript reports this error: Parameter '{0}' cannot reference identifier '{1}' declared after it.", + "category": "Error", + "code": 2373, + "message": "Parameter '{0}' cannot reference identifier '{1}' declared after it.", + "source": "generated" + }, + "2374": { + "body": "TypeScript reports this error: Duplicate index signature for type '{0}'.", + "category": "Error", + "code": 2374, + "message": "Duplicate index signature for type '{0}'.", + "source": "generated" + }, + "2375": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.", + "category": "Error", + "code": 2375, + "message": "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.", + "source": "generated" + }, + "2376": { + "body": "TypeScript reports this error: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.", + "category": "Error", + "code": 2376, + "message": "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.", + "source": "generated" + }, + "2377": { + "body": "TypeScript reports this error: Constructors for derived classes must contain a 'super' call.", + "category": "Error", + "code": 2377, + "message": "Constructors for derived classes must contain a 'super' call.", + "source": "generated" + }, + "2378": { + "body": "TypeScript reports this error: A 'get' accessor must return a value.", + "category": "Error", + "code": 2378, + "message": "A 'get' accessor must return a value.", + "source": "generated" + }, + "2379": { + "body": "TypeScript reports this error: Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.", + "category": "Error", + "code": 2379, + "message": "Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.", + "source": "generated" + }, + "2383": { + "body": "TypeScript reports this error: Overload signatures must all be exported or non-exported.", + "category": "Error", + "code": 2383, + "message": "Overload signatures must all be exported or non-exported.", + "source": "generated" + }, + "2384": { + "body": "TypeScript reports this error: Overload signatures must all be ambient or non-ambient.", + "category": "Error", + "code": 2384, + "message": "Overload signatures must all be ambient or non-ambient.", + "source": "generated" + }, + "2385": { + "body": "TypeScript reports this error: Overload signatures must all be public, private or protected.", + "category": "Error", + "code": 2385, + "message": "Overload signatures must all be public, private or protected.", + "source": "generated" + }, + "2386": { + "body": "TypeScript reports this error: Overload signatures must all be optional or required.", + "category": "Error", + "code": 2386, + "message": "Overload signatures must all be optional or required.", + "source": "generated" + }, + "2387": { + "body": "TypeScript reports this error: Function overload must be static.", + "category": "Error", + "code": 2387, + "message": "Function overload must be static.", + "source": "generated" + }, + "2388": { + "body": "TypeScript reports this error: Function overload must not be static.", + "category": "Error", + "code": 2388, + "message": "Function overload must not be static.", + "source": "generated" + }, + "2389": { + "body": "TypeScript reports this error: Function implementation name must be '{0}'.", + "category": "Error", + "code": 2389, + "message": "Function implementation name must be '{0}'.", + "source": "generated" + }, + "2390": { + "body": "TypeScript reports this error: Constructor implementation is missing.", + "category": "Error", + "code": 2390, + "message": "Constructor implementation is missing.", + "source": "generated" + }, + "2391": { + "body": "TypeScript reports this error: Function implementation is missing or not immediately following the declaration.", + "category": "Error", + "code": 2391, + "message": "Function implementation is missing or not immediately following the declaration.", + "source": "generated" + }, + "2392": { + "body": "TypeScript reports this error: Multiple constructor implementations are not allowed.", + "category": "Error", + "code": 2392, + "message": "Multiple constructor implementations are not allowed.", + "source": "generated" + }, + "2393": { + "body": "You've already declared a function with the same name.", + "category": "Error", + "code": 2393, + "message": "Duplicate function implementation.", + "source": "curated" + }, + "2394": { + "body": "TypeScript reports this error: This overload signature is not compatible with its implementation signature.", + "category": "Error", + "code": 2394, + "message": "This overload signature is not compatible with its implementation signature.", + "source": "generated" + }, + "2395": { + "body": "TypeScript reports this error: Individual declarations in merged declaration '{0}' must be all exported or all local.", + "category": "Error", + "code": 2395, + "message": "Individual declarations in merged declaration '{0}' must be all exported or all local.", + "source": "generated" + }, + "2396": { + "body": "TypeScript reports this error: Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.", + "category": "Error", + "code": 2396, + "message": "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.", + "source": "generated" + }, + "2397": { + "body": "TypeScript reports this error: Declaration name conflicts with built-in global identifier '{0}'.", + "category": "Error", + "code": 2397, + "message": "Declaration name conflicts with built-in global identifier '{0}'.", + "source": "generated" + }, + "2398": { + "body": "TypeScript reports this error: 'constructor' cannot be used as a parameter property name.", + "category": "Error", + "code": 2398, + "message": "'constructor' cannot be used as a parameter property name.", + "source": "generated" + }, + "2399": { + "body": "TypeScript reports this error: Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.", + "category": "Error", + "code": 2399, + "message": "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.", + "source": "generated" + }, + "2400": { + "body": "TypeScript reports this error: Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.", + "category": "Error", + "code": 2400, + "message": "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.", + "source": "generated" + }, + "2401": { + "body": "TypeScript reports this error: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.", + "category": "Error", + "code": 2401, + "message": "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.", + "source": "generated" + }, + "2402": { + "body": "TypeScript reports this error: Expression resolves to '_super' that compiler uses to capture base class reference.", + "category": "Error", + "code": 2402, + "message": "Expression resolves to '_super' that compiler uses to capture base class reference.", + "source": "generated" + }, + "2403": { + "body": "TypeScript reports this error: Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.", + "category": "Error", + "code": 2403, + "message": "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.", + "source": "generated" + }, + "2404": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement cannot use a type annotation.", + "category": "Error", + "code": 2404, + "message": "The left-hand side of a 'for...in' statement cannot use a type annotation.", + "source": "generated" + }, + "2405": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.", + "category": "Error", + "code": 2405, + "message": "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.", + "source": "generated" + }, + "2406": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement must be a variable or a property access.", + "category": "Error", + "code": 2406, + "message": "The left-hand side of a 'for...in' statement must be a variable or a property access.", + "source": "generated" + }, + "2407": { + "body": "TypeScript reports this error: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.", + "category": "Error", + "code": 2407, + "message": "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.", + "source": "generated" + }, + "2408": { + "body": "TypeScript reports this error: Setters cannot return a value.", + "category": "Error", + "code": 2408, + "message": "Setters cannot return a value.", + "source": "generated" + }, + "2409": { + "body": "TypeScript reports this error: Return type of constructor signature must be assignable to the instance type of the class.", + "category": "Error", + "code": 2409, + "message": "Return type of constructor signature must be assignable to the instance type of the class.", + "source": "generated" + }, + "2410": { + "body": "TypeScript reports this error: The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.", + "category": "Error", + "code": 2410, + "message": "The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.", + "source": "generated" + }, + "2411": { + "body": "TypeScript reports this error: Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.", + "category": "Error", + "code": 2411, + "message": "Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.", + "source": "generated" + }, + "2412": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.", + "category": "Error", + "code": 2412, + "message": "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.", + "source": "generated" + }, + "2413": { + "body": "TypeScript reports this error: '{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.", + "category": "Error", + "code": 2413, + "message": "'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.", + "source": "generated" + }, + "2414": { + "body": "You can't give a class the name of '{0}' because it's protected by TypeScript.", + "category": "Error", + "code": 2414, + "message": "Class name cannot be '{0}'.", + "source": "curated" + }, + "2415": { + "body": "TypeScript reports this error: Class '{0}' incorrectly extends base class '{1}'.", + "category": "Error", + "code": 2415, + "message": "Class '{0}' incorrectly extends base class '{1}'.", + "source": "generated" + }, + "2416": { + "body": "TypeScript reports this error: Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.", + "category": "Error", + "code": 2416, + "message": "Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.", + "source": "generated" + }, + "2417": { + "body": "TypeScript reports this error: Class static side '{0}' incorrectly extends base class static side '{1}'.", + "category": "Error", + "code": 2417, + "message": "Class static side '{0}' incorrectly extends base class static side '{1}'.", + "source": "generated" + }, + "2418": { + "body": "TypeScript reports this error: Type of computed property's value is '{0}', which is not assignable to type '{1}'.", + "category": "Error", + "code": 2418, + "message": "Type of computed property's value is '{0}', which is not assignable to type '{1}'.", + "source": "generated" + }, + "2419": { + "body": "TypeScript reports this error: Types of construct signatures are incompatible.", + "category": "Error", + "code": 2419, + "message": "Types of construct signatures are incompatible.", + "source": "generated" + }, + "2420": { + "body": "TypeScript reports this error: Class '{0}' incorrectly implements interface '{1}'.", + "category": "Error", + "code": 2420, + "message": "Class '{0}' incorrectly implements interface '{1}'.", + "source": "generated" + }, + "2422": { + "body": "TypeScript reports this error: A class can only implement an object type or intersection of object types with statically known members.", + "category": "Error", + "code": 2422, + "message": "A class can only implement an object type or intersection of object types with statically known members.", + "source": "generated" + }, + "2423": { + "body": "TypeScript reports this error: Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.", + "category": "Error", + "code": 2423, + "message": "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.", + "source": "generated" + }, + "2425": { + "body": "TypeScript reports this error: Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.", + "category": "Error", + "code": 2425, + "message": "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.", + "source": "generated" + }, + "2426": { + "body": "TypeScript reports this error: Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.", + "category": "Error", + "code": 2426, + "message": "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.", + "source": "generated" + }, + "2427": { + "body": "TypeScript reports this error: Interface name cannot be '{0}'.", + "category": "Error", + "code": 2427, + "message": "Interface name cannot be '{0}'.", + "source": "generated" + }, + "2428": { + "body": "TypeScript reports this error: All declarations of '{0}' must have identical type parameters.", + "category": "Error", + "code": 2428, + "message": "All declarations of '{0}' must have identical type parameters.", + "source": "generated" + }, + "2430": { + "body": "TypeScript reports this error: Interface '{0}' incorrectly extends interface '{1}'.", + "category": "Error", + "code": 2430, + "message": "Interface '{0}' incorrectly extends interface '{1}'.", + "source": "generated" + }, + "2431": { + "body": "TypeScript reports this error: Enum name cannot be '{0}'.", + "category": "Error", + "code": 2431, + "message": "Enum name cannot be '{0}'.", + "source": "generated" + }, + "2432": { + "body": "TypeScript reports this error: In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.", + "category": "Error", + "code": 2432, + "message": "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.", + "source": "generated" + }, + "2433": { + "body": "TypeScript reports this error: A namespace declaration cannot be in a different file from a class or function with which it is merged.", + "category": "Error", + "code": 2433, + "message": "A namespace declaration cannot be in a different file from a class or function with which it is merged.", + "source": "generated" + }, + "2434": { + "body": "TypeScript reports this error: A namespace declaration cannot be located prior to a class or function with which it is merged.", + "category": "Error", + "code": 2434, + "message": "A namespace declaration cannot be located prior to a class or function with which it is merged.", + "source": "generated" + }, + "2435": { + "body": "TypeScript reports this error: Ambient modules cannot be nested in other modules or namespaces.", + "category": "Error", + "code": 2435, + "message": "Ambient modules cannot be nested in other modules or namespaces.", + "source": "generated" + }, + "2436": { + "body": "TypeScript reports this error: Ambient module declaration cannot specify relative module name.", + "category": "Error", + "code": 2436, + "message": "Ambient module declaration cannot specify relative module name.", + "source": "generated" + }, + "2437": { + "body": "TypeScript reports this error: Module '{0}' is hidden by a local declaration with the same name.", + "category": "Error", + "code": 2437, + "message": "Module '{0}' is hidden by a local declaration with the same name.", + "source": "generated" + }, + "2438": { + "body": "TypeScript reports this error: Import name cannot be '{0}'.", + "category": "Error", + "code": 2438, + "message": "Import name cannot be '{0}'.", + "source": "generated" + }, + "2439": { + "body": "TypeScript reports this error: Import or export declaration in an ambient module declaration cannot reference module through relative module name.", + "category": "Error", + "code": 2439, + "message": "Import or export declaration in an ambient module declaration cannot reference module through relative module name.", + "source": "generated" + }, + "2440": { + "body": "TypeScript reports this error: Import declaration conflicts with local declaration of '{0}'.", + "category": "Error", + "code": 2440, + "message": "Import declaration conflicts with local declaration of '{0}'.", + "source": "generated" + }, + "2441": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.", + "category": "Error", + "code": 2441, + "message": "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.", + "source": "generated" + }, + "2442": { + "body": "TypeScript reports this error: Types have separate declarations of a private property '{0}'.", + "category": "Error", + "code": 2442, + "message": "Types have separate declarations of a private property '{0}'.", + "source": "generated" + }, + "2443": { + "body": "TypeScript reports this error: Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.", + "category": "Error", + "code": 2443, + "message": "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.", + "source": "generated" + }, + "2444": { + "body": "TypeScript reports this error: Property '{0}' is protected in type '{1}' but public in type '{2}'.", + "category": "Error", + "code": 2444, + "message": "Property '{0}' is protected in type '{1}' but public in type '{2}'.", + "source": "generated" + }, + "2445": { + "body": "TypeScript reports this error: Property '{0}' is protected and only accessible within class '{1}' and its subclasses.", + "category": "Error", + "code": 2445, + "message": "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.", + "source": "generated" + }, + "2446": { + "body": "TypeScript reports this error: Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.", + "category": "Error", + "code": 2446, + "message": "Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.", + "source": "generated" + }, + "2447": { + "body": "TypeScript reports this error: The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.", + "category": "Error", + "code": 2447, + "message": "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.", + "source": "generated" + }, + "2448": { + "body": "TypeScript reports this error: Block-scoped variable '{0}' used before its declaration.", + "category": "Error", + "code": 2448, + "message": "Block-scoped variable '{0}' used before its declaration.", + "source": "generated" + }, + "2449": { + "body": "TypeScript reports this error: Class '{0}' used before its declaration.", + "category": "Error", + "code": 2449, + "message": "Class '{0}' used before its declaration.", + "source": "generated" + }, + "2450": { + "body": "TypeScript reports this error: Enum '{0}' used before its declaration.", + "category": "Error", + "code": 2450, + "message": "Enum '{0}' used before its declaration.", + "source": "generated" + }, + "2451": { + "body": "'{0}' has already been declared - you can't declare it again. [Learn more](https://www.totaltypescript.com/cannot-redeclare-block-scoped-variable).", + "category": "Error", + "code": 2451, + "message": "Cannot redeclare block-scoped variable '{0}'.", + "source": "curated" + }, + "2452": { + "body": "TypeScript reports this error: An enum member cannot have a numeric name.", + "category": "Error", + "code": 2452, + "message": "An enum member cannot have a numeric name.", + "source": "generated" + }, + "2454": { + "body": "TypeScript reports this error: Variable '{0}' is used before being assigned.", + "category": "Error", + "code": 2454, + "message": "Variable '{0}' is used before being assigned.", + "source": "generated" + }, + "2456": { + "body": "TypeScript reports this error: Type alias '{0}' circularly references itself.", + "category": "Error", + "code": 2456, + "message": "Type alias '{0}' circularly references itself.", + "source": "generated" + }, + "2457": { + "body": "TypeScript reports this error: Type alias name cannot be '{0}'.", + "category": "Error", + "code": 2457, + "message": "Type alias name cannot be '{0}'.", + "source": "generated" + }, + "2458": { + "body": "TypeScript reports this error: An AMD module cannot have multiple name assignments.", + "category": "Error", + "code": 2458, + "message": "An AMD module cannot have multiple name assignments.", + "source": "generated" + }, + "2459": { + "body": "TypeScript reports this error: Module '{0}' declares '{1}' locally, but it is not exported.", + "category": "Error", + "code": 2459, + "message": "Module '{0}' declares '{1}' locally, but it is not exported.", + "source": "generated" + }, + "2460": { + "body": "TypeScript reports this error: Module '{0}' declares '{1}' locally, but it is exported as '{2}'.", + "category": "Error", + "code": 2460, + "message": "Module '{0}' declares '{1}' locally, but it is exported as '{2}'.", + "source": "generated" + }, + "2461": { + "body": "TypeScript reports this error: Type '{0}' is not an array type.", + "category": "Error", + "code": 2461, + "message": "Type '{0}' is not an array type.", + "source": "generated" + }, + "2462": { + "body": "TypeScript reports this error: A rest element must be last in a destructuring pattern.", + "category": "Error", + "code": 2462, + "message": "A rest element must be last in a destructuring pattern.", + "source": "generated" + }, + "2463": { + "body": "TypeScript reports this error: A binding pattern parameter cannot be optional in an implementation signature.", + "category": "Error", + "code": 2463, + "message": "A binding pattern parameter cannot be optional in an implementation signature.", + "source": "generated" + }, + "2464": { + "body": "TypeScript reports this error: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.", + "category": "Error", + "code": 2464, + "message": "A computed property name must be of type 'string', 'number', 'symbol', or 'any'.", + "source": "generated" + }, + "2465": { + "body": "TypeScript reports this error: 'this' cannot be referenced in a computed property name.", + "category": "Error", + "code": 2465, + "message": "'this' cannot be referenced in a computed property name.", + "source": "generated" + }, + "2466": { + "body": "TypeScript reports this error: 'super' cannot be referenced in a computed property name.", + "category": "Error", + "code": 2466, + "message": "'super' cannot be referenced in a computed property name.", + "source": "generated" + }, + "2467": { + "body": "TypeScript reports this error: A computed property name cannot reference a type parameter from its containing type.", + "category": "Error", + "code": 2467, + "message": "A computed property name cannot reference a type parameter from its containing type.", + "source": "generated" + }, + "2468": { + "body": "TypeScript reports this error: Cannot find global value '{0}'.", + "category": "Error", + "code": 2468, + "message": "Cannot find global value '{0}'.", + "source": "generated" + }, + "2469": { + "body": "TypeScript reports this error: The '{0}' operator cannot be applied to type 'symbol'.", + "category": "Error", + "code": 2469, + "message": "The '{0}' operator cannot be applied to type 'symbol'.", + "source": "generated" + }, + "2472": { + "body": "TypeScript reports this error: Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.", + "category": "Error", + "code": 2472, + "message": "Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.", + "source": "generated" + }, + "2473": { + "body": "TypeScript reports this error: Enum declarations must all be const or non-const.", + "category": "Error", + "code": 2473, + "message": "Enum declarations must all be const or non-const.", + "source": "generated" + }, + "2474": { + "body": "TypeScript reports this error: const enum member initializers must be constant expressions.", + "category": "Error", + "code": 2474, + "message": "const enum member initializers must be constant expressions.", + "source": "generated" + }, + "2475": { + "body": "TypeScript reports this error: 'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.", + "category": "Error", + "code": 2475, + "message": "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.", + "source": "generated" + }, + "2476": { + "body": "TypeScript reports this error: A const enum member can only be accessed using a string literal.", + "category": "Error", + "code": 2476, + "message": "A const enum member can only be accessed using a string literal.", + "source": "generated" + }, + "2477": { + "body": "TypeScript reports this error: 'const' enum member initializer was evaluated to a non-finite value.", + "category": "Error", + "code": 2477, + "message": "'const' enum member initializer was evaluated to a non-finite value.", + "source": "generated" + }, + "2478": { + "body": "TypeScript reports this error: 'const' enum member initializer was evaluated to disallowed value 'NaN'.", + "category": "Error", + "code": 2478, + "message": "'const' enum member initializer was evaluated to disallowed value 'NaN'.", + "source": "generated" + }, + "2480": { + "body": "TypeScript reports this error: 'let' is not allowed to be used as a name in 'let' or 'const' declarations.", + "category": "Error", + "code": 2480, + "message": "'let' is not allowed to be used as a name in 'let' or 'const' declarations.", + "source": "generated" + }, + "2481": { + "body": "TypeScript reports this error: Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.", + "category": "Error", + "code": 2481, + "message": "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.", + "source": "generated" + }, + "2483": { + "body": "TypeScript reports this error: The left-hand side of a 'for...of' statement cannot use a type annotation.", + "category": "Error", + "code": 2483, + "message": "The left-hand side of a 'for...of' statement cannot use a type annotation.", + "source": "generated" + }, + "2484": { + "body": "TypeScript reports this error: Export declaration conflicts with exported declaration of '{0}'.", + "category": "Error", + "code": 2484, + "message": "Export declaration conflicts with exported declaration of '{0}'.", + "source": "generated" + }, + "2487": { + "body": "TypeScript reports this error: The left-hand side of a 'for...of' statement must be a variable or a property access.", + "category": "Error", + "code": 2487, + "message": "The left-hand side of a 'for...of' statement must be a variable or a property access.", + "source": "generated" + }, + "2488": { + "body": "Type '{0}' isn't iterable. To make it iterable, add a [`Symbol.iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator) key.", + "category": "Error", + "code": 2488, + "message": "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.", + "source": "curated" + }, + "2489": { + "body": "TypeScript reports this error: An iterator must have a 'next()' method.", + "category": "Error", + "code": 2489, + "message": "An iterator must have a 'next()' method.", + "source": "generated" + }, + "2490": { + "body": "TypeScript reports this error: The type returned by the '{0}()' method of an iterator must have a 'value' property.", + "category": "Error", + "code": 2490, + "message": "The type returned by the '{0}()' method of an iterator must have a 'value' property.", + "source": "generated" + }, + "2491": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement cannot be a destructuring pattern.", + "category": "Error", + "code": 2491, + "message": "The left-hand side of a 'for...in' statement cannot be a destructuring pattern.", + "source": "generated" + }, + "2492": { + "body": "TypeScript reports this error: Cannot redeclare identifier '{0}' in catch clause.", + "category": "Error", + "code": 2492, + "message": "Cannot redeclare identifier '{0}' in catch clause.", + "source": "generated" + }, + "2493": { + "body": "TypeScript reports this error: Tuple type '{0}' of length '{1}' has no element at index '{2}'.", + "category": "Error", + "code": 2493, + "message": "Tuple type '{0}' of length '{1}' has no element at index '{2}'.", + "source": "generated" + }, + "2494": { + "body": "TypeScript reports this error: Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.", + "category": "Error", + "code": 2494, + "message": "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.", + "source": "generated" + }, + "2495": { + "body": "TypeScript reports this error: Type '{0}' is not an array type or a string type.", + "category": "Error", + "code": 2495, + "message": "Type '{0}' is not an array type or a string type.", + "source": "generated" + }, + "2496": { + "body": "TypeScript reports this error: The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.", + "category": "Error", + "code": 2496, + "message": "The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.", + "source": "generated" + }, + "2497": { + "body": "TypeScript reports this error: This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.", + "category": "Error", + "code": 2497, + "message": "This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.", + "source": "generated" + }, + "2498": { + "body": "TypeScript reports this error: Module '{0}' uses 'export =' and cannot be used with 'export *'.", + "category": "Error", + "code": 2498, + "message": "Module '{0}' uses 'export =' and cannot be used with 'export *'.", + "source": "generated" + }, + "2499": { + "body": "TypeScript reports this error: An interface can only extend an identifier/qualified-name with optional type arguments.", + "category": "Error", + "code": 2499, + "message": "An interface can only extend an identifier/qualified-name with optional type arguments.", + "source": "generated" + }, + "2500": { + "body": "TypeScript reports this error: A class can only implement an identifier/qualified-name with optional type arguments.", + "category": "Error", + "code": 2500, + "message": "A class can only implement an identifier/qualified-name with optional type arguments.", + "source": "generated" + }, + "2501": { + "body": "TypeScript reports this error: A rest element cannot contain a binding pattern.", + "category": "Error", + "code": 2501, + "message": "A rest element cannot contain a binding pattern.", + "source": "generated" + }, + "2502": { + "body": "TypeScript reports this error: '{0}' is referenced directly or indirectly in its own type annotation.", + "category": "Error", + "code": 2502, + "message": "'{0}' is referenced directly or indirectly in its own type annotation.", + "source": "generated" + }, + "2503": { + "body": "TypeScript reports this error: Cannot find namespace '{0}'.", + "category": "Error", + "code": 2503, + "message": "Cannot find namespace '{0}'.", + "source": "generated" + }, + "2504": { + "body": "TypeScript reports this error: Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.", + "category": "Error", + "code": 2504, + "message": "Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.", + "source": "generated" + }, + "2505": { + "body": "TypeScript reports this error: A generator cannot have a 'void' type annotation.", + "category": "Error", + "code": 2505, + "message": "A generator cannot have a 'void' type annotation.", + "source": "generated" + }, + "2506": { + "body": "TypeScript reports this error: '{0}' is referenced directly or indirectly in its own base expression.", + "category": "Error", + "code": 2506, + "message": "'{0}' is referenced directly or indirectly in its own base expression.", + "source": "generated" + }, + "2507": { + "body": "TypeScript reports this error: Type '{0}' is not a constructor function type.", + "category": "Error", + "code": 2507, + "message": "Type '{0}' is not a constructor function type.", + "source": "generated" + }, + "2508": { + "body": "TypeScript reports this error: No base constructor has the specified number of type arguments.", + "category": "Error", + "code": 2508, + "message": "No base constructor has the specified number of type arguments.", + "source": "generated" + }, + "2509": { + "body": "TypeScript reports this error: Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.", + "category": "Error", + "code": 2509, + "message": "Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.", + "source": "generated" + }, + "2510": { + "body": "TypeScript reports this error: Base constructors must all have the same return type.", + "category": "Error", + "code": 2510, + "message": "Base constructors must all have the same return type.", + "source": "generated" + }, + "2511": { + "body": "TypeScript reports this error: Cannot create an instance of an abstract class.", + "category": "Error", + "code": 2511, + "message": "Cannot create an instance of an abstract class.", + "source": "generated" + }, + "2512": { + "body": "TypeScript reports this error: Overload signatures must all be abstract or non-abstract.", + "category": "Error", + "code": 2512, + "message": "Overload signatures must all be abstract or non-abstract.", + "source": "generated" + }, + "2513": { + "body": "TypeScript reports this error: Abstract method '{0}' in class '{1}' cannot be accessed via super expression.", + "category": "Error", + "code": 2513, + "message": "Abstract method '{0}' in class '{1}' cannot be accessed via super expression.", + "source": "generated" + }, + "2514": { + "body": "TypeScript reports this error: A tuple type cannot be indexed with a negative value.", + "category": "Error", + "code": 2514, + "message": "A tuple type cannot be indexed with a negative value.", + "source": "generated" + }, + "2515": { + "body": "TypeScript reports this error: Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.", + "category": "Error", + "code": 2515, + "message": "Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.", + "source": "generated" + }, + "2516": { + "body": "TypeScript reports this error: All declarations of an abstract method must be consecutive.", + "category": "Error", + "code": 2516, + "message": "All declarations of an abstract method must be consecutive.", + "source": "generated" + }, + "2517": { + "body": "TypeScript reports this error: Cannot assign an abstract constructor type to a non-abstract constructor type.", + "category": "Error", + "code": 2517, + "message": "Cannot assign an abstract constructor type to a non-abstract constructor type.", + "source": "generated" + }, + "2518": { + "body": "TypeScript reports this error: A 'this'-based type guard is not compatible with a parameter-based type guard.", + "category": "Error", + "code": 2518, + "message": "A 'this'-based type guard is not compatible with a parameter-based type guard.", + "source": "generated" + }, + "2519": { + "body": "TypeScript reports this error: An async iterator must have a 'next()' method.", + "category": "Error", + "code": 2519, + "message": "An async iterator must have a 'next()' method.", + "source": "generated" + }, + "2520": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.", + "category": "Error", + "code": 2520, + "message": "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.", + "source": "generated" + }, + "2522": { + "body": "TypeScript reports this error: The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.", + "category": "Error", + "code": 2522, + "message": "The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.", + "source": "generated" + }, + "2523": { + "body": "TypeScript reports this error: 'yield' expressions cannot be used in a parameter initializer.", + "category": "Error", + "code": 2523, + "message": "'yield' expressions cannot be used in a parameter initializer.", + "source": "generated" + }, + "2524": { + "body": "TypeScript reports this error: 'await' expressions cannot be used in a parameter initializer.", + "category": "Error", + "code": 2524, + "message": "'await' expressions cannot be used in a parameter initializer.", + "source": "generated" + }, + "2526": { + "body": "TypeScript reports this error: A 'this' type is available only in a non-static member of a class or interface.", + "category": "Error", + "code": 2526, + "message": "A 'this' type is available only in a non-static member of a class or interface.", + "source": "generated" + }, + "2527": { + "body": "TypeScript reports this error: The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.", + "category": "Error", + "code": 2527, + "message": "The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.", + "source": "generated" + }, + "2528": { + "body": "TypeScript reports this error: A module cannot have multiple default exports.", + "category": "Error", + "code": 2528, + "message": "A module cannot have multiple default exports.", + "source": "generated" + }, + "2529": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.", + "category": "Error", + "code": 2529, + "message": "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.", + "source": "generated" + }, + "2530": { + "body": "TypeScript reports this error: Property '{0}' is incompatible with index signature.", + "category": "Error", + "code": 2530, + "message": "Property '{0}' is incompatible with index signature.", + "source": "generated" + }, + "2531": { + "body": "TypeScript reports this error: Object is possibly 'null'.", + "category": "Error", + "code": 2531, + "message": "Object is possibly 'null'.", + "source": "generated" + }, + "2532": { + "body": "TypeScript reports this error: Object is possibly 'undefined'.", + "category": "Error", + "code": 2532, + "message": "Object is possibly 'undefined'.", + "source": "generated" + }, + "2533": { + "body": "TypeScript reports this error: Object is possibly 'null' or 'undefined'.", + "category": "Error", + "code": 2533, + "message": "Object is possibly 'null' or 'undefined'.", + "source": "generated" + }, + "2534": { + "body": "TypeScript reports this error: A function returning 'never' cannot have a reachable end point.", + "category": "Error", + "code": 2534, + "message": "A function returning 'never' cannot have a reachable end point.", + "source": "generated" + }, + "2536": { + "body": "TypeScript reports this error: Type '{0}' cannot be used to index type '{1}'.", + "category": "Error", + "code": 2536, + "message": "Type '{0}' cannot be used to index type '{1}'.", + "source": "generated" + }, + "2537": { + "body": "TypeScript reports this error: Type '{0}' has no matching index signature for type '{1}'.", + "category": "Error", + "code": 2537, + "message": "Type '{0}' has no matching index signature for type '{1}'.", + "source": "generated" + }, + "2538": { + "body": "TypeScript reports this error: Type '{0}' cannot be used as an index type.", + "category": "Error", + "code": 2538, + "message": "Type '{0}' cannot be used as an index type.", + "source": "generated" + }, + "2539": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is not a variable.", + "category": "Error", + "code": 2539, + "message": "Cannot assign to '{0}' because it is not a variable.", + "source": "generated" + }, + "2540": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is a read-only property.", + "category": "Error", + "code": 2540, + "message": "Cannot assign to '{0}' because it is a read-only property.", + "source": "generated" + }, + "2542": { + "body": "TypeScript reports this error: Index signature in type '{0}' only permits reading.", + "category": "Error", + "code": 2542, + "message": "Index signature in type '{0}' only permits reading.", + "source": "generated" + }, + "2543": { + "body": "TypeScript reports this error: Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.", + "category": "Error", + "code": 2543, + "message": "Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.", + "source": "generated" + }, + "2544": { + "body": "TypeScript reports this error: Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.", + "category": "Error", + "code": 2544, + "message": "Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.", + "source": "generated" + }, + "2545": { + "body": "TypeScript reports this error: A mixin class must have a constructor with a single rest parameter of type 'any[]'.", + "category": "Error", + "code": 2545, + "message": "A mixin class must have a constructor with a single rest parameter of type 'any[]'.", + "source": "generated" + }, + "2547": { + "body": "TypeScript reports this error: The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.", + "category": "Error", + "code": 2547, + "message": "The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.", + "source": "generated" + }, + "2548": { + "body": "TypeScript reports this error: Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.", + "category": "Error", + "code": 2548, + "message": "Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.", + "source": "generated" + }, + "2549": { + "body": "TypeScript reports this error: Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.", + "category": "Error", + "code": 2549, + "message": "Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.", + "source": "generated" + }, + "2550": { + "body": "TypeScript reports this error: Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.", + "category": "Error", + "code": 2550, + "message": "Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.", + "source": "generated" + }, + "2551": { + "body": "You're trying to access '{0}' on an object that doesn't contain it. Did you mean '{2}'?", + "category": "Error", + "code": 2551, + "message": "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?", + "source": "curated" + }, + "2552": { + "body": "You are trying to reference a function or variable which I can't find in the current scope.", + "category": "Error", + "code": 2552, + "message": "Cannot find name '{0}'. Did you mean '{1}'?", + "source": "curated" + }, + "2553": { + "body": "TypeScript reports this error: Computed values are not permitted in an enum with string valued members.", + "category": "Error", + "code": 2553, + "message": "Computed values are not permitted in an enum with string valued members.", + "source": "generated" + }, + "2554": { + "body": "The function you're trying to call needs {0} arguments, but you're passing {1}.", + "category": "Error", + "code": 2554, + "message": "Expected {0} arguments, but got {1}.", + "source": "curated" + }, + "2555": { + "body": "TypeScript reports this error: Expected at least {0} arguments, but got {1}.", + "category": "Error", + "code": 2555, + "message": "Expected at least {0} arguments, but got {1}.", + "source": "generated" + }, + "2556": { + "body": "You're spreading arguments into a function. To do that, either the argument needs to be a tuple OR the function needs to accept a dynamic number of arguments.", + "category": "Error", + "code": 2556, + "message": "A spread argument must either have a tuple type or be passed to a rest parameter.", + "source": "curated" + }, + "2558": { + "body": "TypeScript reports this error: Expected {0} type arguments, but got {1}.", + "category": "Error", + "code": 2558, + "message": "Expected {0} type arguments, but got {1}.", + "source": "generated" + }, + "2559": { + "body": "TypeScript reports this error: Type '{0}' has no properties in common with type '{1}'.", + "category": "Error", + "code": 2559, + "message": "Type '{0}' has no properties in common with type '{1}'.", + "source": "generated" + }, + "2560": { + "body": "TypeScript reports this error: Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?", + "category": "Error", + "code": 2560, + "message": "Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?", + "source": "generated" + }, + "2561": { + "body": "TypeScript reports this error: Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?", + "category": "Error", + "code": 2561, + "message": "Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?", + "source": "generated" + }, + "2562": { + "body": "TypeScript reports this error: Base class expressions cannot reference class type parameters.", + "category": "Error", + "code": 2562, + "message": "Base class expressions cannot reference class type parameters.", + "source": "generated" + }, + "2563": { + "body": "TypeScript reports this error: The containing function or module body is too large for control flow analysis.", + "category": "Error", + "code": 2563, + "message": "The containing function or module body is too large for control flow analysis.", + "source": "generated" + }, + "2564": { + "body": "TypeScript reports this error: Property '{0}' has no initializer and is not definitely assigned in the constructor.", + "category": "Error", + "code": 2564, + "message": "Property '{0}' has no initializer and is not definitely assigned in the constructor.", + "source": "generated" + }, + "2565": { + "body": "TypeScript reports this error: Property '{0}' is used before being assigned.", + "category": "Error", + "code": 2565, + "message": "Property '{0}' is used before being assigned.", + "source": "generated" + }, + "2566": { + "body": "TypeScript reports this error: A rest element cannot have a property name.", + "category": "Error", + "code": 2566, + "message": "A rest element cannot have a property name.", + "source": "generated" + }, + "2567": { + "body": "TypeScript reports this error: Enum declarations can only merge with namespace or other enum declarations.", + "category": "Error", + "code": 2567, + "message": "Enum declarations can only merge with namespace or other enum declarations.", + "source": "generated" + }, + "2568": { + "body": "TypeScript reports this error: Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?", + "category": "Error", + "code": 2568, + "message": "Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?", + "source": "generated" + }, + "2570": { + "body": "TypeScript reports this error: Could not find name '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 2570, + "message": "Could not find name '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "2571": { + "body": "I don't know what type this object is, so I've defaulted it to 'unknown'. [Learn more](https://www.totaltypescript.com/concepts/object-is-of-type-unknown).", + "category": "Error", + "code": 2571, + "message": "Object is of type 'unknown'.", + "source": "curated" + }, + "2574": { + "body": "TypeScript reports this error: A rest element type must be an array type.", + "category": "Error", + "code": 2574, + "message": "A rest element type must be an array type.", + "source": "generated" + }, + "2575": { + "body": "TypeScript reports this error: No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.", + "category": "Error", + "code": 2575, + "message": "No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.", + "source": "generated" + }, + "2576": { + "body": "TypeScript reports this error: Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?", + "category": "Error", + "code": 2576, + "message": "Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?", + "source": "generated" + }, + "2577": { + "body": "TypeScript reports this error: Return type annotation circularly references itself.", + "category": "Error", + "code": 2577, + "message": "Return type annotation circularly references itself.", + "source": "generated" + }, + "2578": { + "body": "TypeScript reports this error: Unused '@ts-expect-error' directive.", + "category": "Error", + "code": 2578, + "message": "Unused '@ts-expect-error' directive.", + "source": "generated" + }, + "2580": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.", + "category": "Error", + "code": 2580, + "message": "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.", + "source": "generated" + }, + "2581": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.", + "category": "Error", + "code": 2581, + "message": "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.", + "source": "generated" + }, + "2582": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.", + "category": "Error", + "code": 2582, + "message": "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.", + "source": "generated" + }, + "2583": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.", + "category": "Error", + "code": 2583, + "message": "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.", + "source": "generated" + }, + "2584": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.", + "category": "Error", + "code": 2584, + "message": "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.", + "source": "generated" + }, + "2585": { + "body": "TypeScript reports this error: '{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.", + "category": "Error", + "code": 2585, + "message": "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.", + "source": "generated" + }, + "2588": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is a constant.", + "category": "Error", + "code": 2588, + "message": "Cannot assign to '{0}' because it is a constant.", + "source": "generated" + }, + "2589": { + "body": "TypeScript reports this error: Type instantiation is excessively deep and possibly infinite.", + "category": "Error", + "code": 2589, + "message": "Type instantiation is excessively deep and possibly infinite.", + "source": "generated" + }, + "2590": { + "body": "This union type has become so large that TypeScript cannot represent it any more. The usual fix is to simplify the type so it produces fewer possible combinations.", + "category": "Error", + "code": 2590, + "message": "Expression produces a union type that is too complex to represent.", + "source": "curated" + }, + "2591": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.", + "category": "Error", + "code": 2591, + "message": "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.", + "source": "generated" + }, + "2592": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.", + "category": "Error", + "code": 2592, + "message": "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.", + "source": "generated" + }, + "2593": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.", + "category": "Error", + "code": 2593, + "message": "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.", + "source": "generated" + }, + "2594": { + "body": "TypeScript reports this error: This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.", + "category": "Error", + "code": 2594, + "message": "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.", + "source": "generated" + }, + "2595": { + "body": "TypeScript reports this error: '{0}' can only be imported by using a default import.", + "category": "Error", + "code": 2595, + "message": "'{0}' can only be imported by using a default import.", + "source": "generated" + }, + "2596": { + "body": "TypeScript reports this error: '{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.", + "category": "Error", + "code": 2596, + "message": "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.", + "source": "generated" + }, + "2597": { + "body": "TypeScript reports this error: '{0}' can only be imported by using a 'require' call or by using a default import.", + "category": "Error", + "code": 2597, + "message": "'{0}' can only be imported by using a 'require' call or by using a default import.", + "source": "generated" + }, + "2598": { + "body": "TypeScript reports this error: '{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.", + "category": "Error", + "code": 2598, + "message": "'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.", + "source": "generated" + }, + "2602": { + "body": "TypeScript reports this error: JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.", + "category": "Error", + "code": 2602, + "message": "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.", + "source": "generated" + }, + "2603": { + "body": "TypeScript reports this error: Property '{0}' in type '{1}' is not assignable to type '{2}'.", + "category": "Error", + "code": 2603, + "message": "Property '{0}' in type '{1}' is not assignable to type '{2}'.", + "source": "generated" + }, + "2604": { + "body": "'{0}' cannot be used as a JSX component because it isn't a function.", + "category": "Error", + "code": 2604, + "message": "JSX element type '{0}' does not have any construct or call signatures.", + "source": "curated" + }, + "2606": { + "body": "TypeScript reports this error: Property '{0}' of JSX spread attribute is not assignable to target property.", + "category": "Error", + "code": 2606, + "message": "Property '{0}' of JSX spread attribute is not assignable to target property.", + "source": "generated" + }, + "2607": { + "body": "TypeScript reports this error: JSX element class does not support attributes because it does not have a '{0}' property.", + "category": "Error", + "code": 2607, + "message": "JSX element class does not support attributes because it does not have a '{0}' property.", + "source": "generated" + }, + "2608": { + "body": "TypeScript reports this error: The global type 'JSX.{0}' may not have more than one property.", + "category": "Error", + "code": 2608, + "message": "The global type 'JSX.{0}' may not have more than one property.", + "source": "generated" + }, + "2609": { + "body": "TypeScript reports this error: JSX spread child must be an array type.", + "category": "Error", + "code": 2609, + "message": "JSX spread child must be an array type.", + "source": "generated" + }, + "2610": { + "body": "TypeScript reports this error: '{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.", + "category": "Error", + "code": 2610, + "message": "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.", + "source": "generated" + }, + "2611": { + "body": "TypeScript reports this error: '{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.", + "category": "Error", + "code": 2611, + "message": "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.", + "source": "generated" + }, + "2612": { + "body": "TypeScript reports this error: Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.", + "category": "Error", + "code": 2612, + "message": "Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.", + "source": "generated" + }, + "2613": { + "body": "TypeScript reports this error: Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?", + "category": "Error", + "code": 2613, + "message": "Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?", + "source": "generated" + }, + "2614": { + "body": "'{1}' is not one of the things exported from '{0}'. Did you mean to import '{1}' from '{0}' instead?", + "category": "Error", + "code": 2614, + "message": "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?", + "source": "curated" + }, + "2615": { + "body": "TypeScript reports this error: Type of property '{0}' circularly references itself in mapped type '{1}'.", + "category": "Error", + "code": 2615, + "message": "Type of property '{0}' circularly references itself in mapped type '{1}'.", + "source": "generated" + }, + "2616": { + "body": "TypeScript reports this error: '{0}' can only be imported by using 'import {1} = require({2})' or a default import.", + "category": "Error", + "code": 2616, + "message": "'{0}' can only be imported by using 'import {1} = require({2})' or a default import.", + "source": "generated" + }, + "2617": { + "body": "TypeScript reports this error: '{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.", + "category": "Error", + "code": 2617, + "message": "'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.", + "source": "generated" + }, + "2618": { + "body": "TypeScript reports this error: Source has {0} element(s) but target requires {1}.", + "category": "Error", + "code": 2618, + "message": "Source has {0} element(s) but target requires {1}.", + "source": "generated" + }, + "2619": { + "body": "TypeScript reports this error: Source has {0} element(s) but target allows only {1}.", + "category": "Error", + "code": 2619, + "message": "Source has {0} element(s) but target allows only {1}.", + "source": "generated" + }, + "2620": { + "body": "TypeScript reports this error: Target requires {0} element(s) but source may have fewer.", + "category": "Error", + "code": 2620, + "message": "Target requires {0} element(s) but source may have fewer.", + "source": "generated" + }, + "2621": { + "body": "TypeScript reports this error: Target allows only {0} element(s) but source may have more.", + "category": "Error", + "code": 2621, + "message": "Target allows only {0} element(s) but source may have more.", + "source": "generated" + }, + "2623": { + "body": "TypeScript reports this error: Source provides no match for required element at position {0} in target.", + "category": "Error", + "code": 2623, + "message": "Source provides no match for required element at position {0} in target.", + "source": "generated" + }, + "2624": { + "body": "TypeScript reports this error: Source provides no match for variadic element at position {0} in target.", + "category": "Error", + "code": 2624, + "message": "Source provides no match for variadic element at position {0} in target.", + "source": "generated" + }, + "2625": { + "body": "TypeScript reports this error: Variadic element at position {0} in source does not match element at position {1} in target.", + "category": "Error", + "code": 2625, + "message": "Variadic element at position {0} in source does not match element at position {1} in target.", + "source": "generated" + }, + "2626": { + "body": "TypeScript reports this error: Type at position {0} in source is not compatible with type at position {1} in target.", + "category": "Error", + "code": 2626, + "message": "Type at position {0} in source is not compatible with type at position {1} in target.", + "source": "generated" + }, + "2627": { + "body": "TypeScript reports this error: Type at positions {0} through {1} in source is not compatible with type at position {2} in target.", + "category": "Error", + "code": 2627, + "message": "Type at positions {0} through {1} in source is not compatible with type at position {2} in target.", + "source": "generated" + }, + "2628": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is an enum.", + "category": "Error", + "code": 2628, + "message": "Cannot assign to '{0}' because it is an enum.", + "source": "generated" + }, + "2629": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is a class.", + "category": "Error", + "code": 2629, + "message": "Cannot assign to '{0}' because it is a class.", + "source": "generated" + }, + "2630": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is a function.", + "category": "Error", + "code": 2630, + "message": "Cannot assign to '{0}' because it is a function.", + "source": "generated" + }, + "2631": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is a namespace.", + "category": "Error", + "code": 2631, + "message": "Cannot assign to '{0}' because it is a namespace.", + "source": "generated" + }, + "2632": { + "body": "TypeScript reports this error: Cannot assign to '{0}' because it is an import.", + "category": "Error", + "code": 2632, + "message": "Cannot assign to '{0}' because it is an import.", + "source": "generated" + }, + "2633": { + "body": "TypeScript reports this error: JSX property access expressions cannot include JSX namespace names", + "category": "Error", + "code": 2633, + "message": "JSX property access expressions cannot include JSX namespace names", + "source": "generated" + }, + "2634": { + "body": "TypeScript reports this error: '{0}' index signatures are incompatible.", + "category": "Error", + "code": 2634, + "message": "'{0}' index signatures are incompatible.", + "source": "generated" + }, + "2635": { + "body": "TypeScript reports this error: Type '{0}' has no signatures for which the type argument list is applicable.", + "category": "Error", + "code": 2635, + "message": "Type '{0}' has no signatures for which the type argument list is applicable.", + "source": "generated" + }, + "2636": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}' as implied by variance annotation.", + "category": "Error", + "code": 2636, + "message": "Type '{0}' is not assignable to type '{1}' as implied by variance annotation.", + "source": "generated" + }, + "2637": { + "body": "TypeScript reports this error: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.", + "category": "Error", + "code": 2637, + "message": "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.", + "source": "generated" + }, + "2638": { + "body": "TypeScript reports this error: Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.", + "category": "Error", + "code": 2638, + "message": "Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.", + "source": "generated" + }, + "2639": { + "body": "TypeScript reports this error: React components cannot include JSX namespace names", + "category": "Error", + "code": 2639, + "message": "React components cannot include JSX namespace names", + "source": "generated" + }, + "2649": { + "body": "TypeScript reports this error: Cannot augment module '{0}' with value exports because it resolves to a non-module entity.", + "category": "Error", + "code": 2649, + "message": "Cannot augment module '{0}' with value exports because it resolves to a non-module entity.", + "source": "generated" + }, + "2650": { + "body": "TypeScript reports this error: Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.", + "category": "Error", + "code": 2650, + "message": "Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.", + "source": "generated" + }, + "2651": { + "body": "TypeScript reports this error: A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.", + "category": "Error", + "code": 2651, + "message": "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.", + "source": "generated" + }, + "2652": { + "body": "TypeScript reports this error: Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.", + "category": "Error", + "code": 2652, + "message": "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.", + "source": "generated" + }, + "2653": { + "body": "TypeScript reports this error: Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.", + "category": "Error", + "code": 2653, + "message": "Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.", + "source": "generated" + }, + "2654": { + "body": "TypeScript reports this error: Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.", + "category": "Error", + "code": 2654, + "message": "Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.", + "source": "generated" + }, + "2655": { + "body": "TypeScript reports this error: Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.", + "category": "Error", + "code": 2655, + "message": "Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.", + "source": "generated" + }, + "2656": { + "body": "TypeScript reports this error: Non-abstract class expression is missing implementations for the following members of '{0}': {1}.", + "category": "Error", + "code": 2656, + "message": "Non-abstract class expression is missing implementations for the following members of '{0}': {1}.", + "source": "generated" + }, + "2657": { + "body": "TypeScript reports this error: JSX expressions must have one parent element.", + "category": "Error", + "code": 2657, + "message": "JSX expressions must have one parent element.", + "source": "generated" + }, + "2658": { + "body": "TypeScript reports this error: Type '{0}' provides no match for the signature '{1}'.", + "category": "Error", + "code": 2658, + "message": "Type '{0}' provides no match for the signature '{1}'.", + "source": "generated" + }, + "2659": { + "body": "TypeScript reports this error: 'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.", + "category": "Error", + "code": 2659, + "message": "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.", + "source": "generated" + }, + "2660": { + "body": "TypeScript reports this error: 'super' can only be referenced in members of derived classes or object literal expressions.", + "category": "Error", + "code": 2660, + "message": "'super' can only be referenced in members of derived classes or object literal expressions.", + "source": "generated" + }, + "2661": { + "body": "TypeScript reports this error: Cannot export '{0}'. Only local declarations can be exported from a module.", + "category": "Error", + "code": 2661, + "message": "Cannot export '{0}'. Only local declarations can be exported from a module.", + "source": "generated" + }, + "2662": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?", + "category": "Error", + "code": 2662, + "message": "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?", + "source": "generated" + }, + "2663": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?", + "category": "Error", + "code": 2663, + "message": "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?", + "source": "generated" + }, + "2664": { + "body": "TypeScript reports this error: Invalid module name in augmentation, module '{0}' cannot be found.", + "category": "Error", + "code": 2664, + "message": "Invalid module name in augmentation, module '{0}' cannot be found.", + "source": "generated" + }, + "2665": { + "body": "TypeScript reports this error: Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.", + "category": "Error", + "code": 2665, + "message": "Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.", + "source": "generated" + }, + "2666": { + "body": "TypeScript reports this error: Exports and export assignments are not permitted in module augmentations.", + "category": "Error", + "code": 2666, + "message": "Exports and export assignments are not permitted in module augmentations.", + "source": "generated" + }, + "2667": { + "body": "TypeScript reports this error: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.", + "category": "Error", + "code": 2667, + "message": "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.", + "source": "generated" + }, + "2668": { + "body": "TypeScript reports this error: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.", + "category": "Error", + "code": 2668, + "message": "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.", + "source": "generated" + }, + "2669": { + "body": "TypeScript reports this error: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.", + "category": "Error", + "code": 2669, + "message": "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.", + "source": "generated" + }, + "2670": { + "body": "TypeScript reports this error: Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.", + "category": "Error", + "code": 2670, + "message": "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.", + "source": "generated" + }, + "2671": { + "body": "TypeScript reports this error: Cannot augment module '{0}' because it resolves to a non-module entity.", + "category": "Error", + "code": 2671, + "message": "Cannot augment module '{0}' because it resolves to a non-module entity.", + "source": "generated" + }, + "2672": { + "body": "TypeScript reports this error: Cannot assign a '{0}' constructor type to a '{1}' constructor type.", + "category": "Error", + "code": 2672, + "message": "Cannot assign a '{0}' constructor type to a '{1}' constructor type.", + "source": "generated" + }, + "2673": { + "body": "TypeScript reports this error: Constructor of class '{0}' is private and only accessible within the class declaration.", + "category": "Error", + "code": 2673, + "message": "Constructor of class '{0}' is private and only accessible within the class declaration.", + "source": "generated" + }, + "2674": { + "body": "TypeScript reports this error: Constructor of class '{0}' is protected and only accessible within the class declaration.", + "category": "Error", + "code": 2674, + "message": "Constructor of class '{0}' is protected and only accessible within the class declaration.", + "source": "generated" + }, + "2675": { + "body": "TypeScript reports this error: Cannot extend a class '{0}'. Class constructor is marked as private.", + "category": "Error", + "code": 2675, + "message": "Cannot extend a class '{0}'. Class constructor is marked as private.", + "source": "generated" + }, + "2676": { + "body": "TypeScript reports this error: Accessors must both be abstract or non-abstract.", + "category": "Error", + "code": 2676, + "message": "Accessors must both be abstract or non-abstract.", + "source": "generated" + }, + "2677": { + "body": "TypeScript reports this error: A type predicate's type must be assignable to its parameter's type.", + "category": "Error", + "code": 2677, + "message": "A type predicate's type must be assignable to its parameter's type.", + "source": "generated" + }, + "2678": { + "body": "TypeScript reports this error: Type '{0}' is not comparable to type '{1}'.", + "category": "Error", + "code": 2678, + "message": "Type '{0}' is not comparable to type '{1}'.", + "source": "generated" + }, + "2679": { + "body": "TypeScript reports this error: A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.", + "category": "Error", + "code": 2679, + "message": "A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.", + "source": "generated" + }, + "2680": { + "body": "TypeScript reports this error: A '{0}' parameter must be the first parameter.", + "category": "Error", + "code": 2680, + "message": "A '{0}' parameter must be the first parameter.", + "source": "generated" + }, + "2681": { + "body": "TypeScript reports this error: A constructor cannot have a 'this' parameter.", + "category": "Error", + "code": 2681, + "message": "A constructor cannot have a 'this' parameter.", + "source": "generated" + }, + "2683": { + "body": "TypeScript reports this error: 'this' implicitly has type 'any' because it does not have a type annotation.", + "category": "Error", + "code": 2683, + "message": "'this' implicitly has type 'any' because it does not have a type annotation.", + "source": "generated" + }, + "2684": { + "body": "TypeScript reports this error: The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.", + "category": "Error", + "code": 2684, + "message": "The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.", + "source": "generated" + }, + "2685": { + "body": "TypeScript reports this error: The 'this' types of each signature are incompatible.", + "category": "Error", + "code": 2685, + "message": "The 'this' types of each signature are incompatible.", + "source": "generated" + }, + "2686": { + "body": "You might not have configured `jsx` in your `tsconfig.json` correctly. [Learn more](https://www.totaltypescript.com/react-refers-to-a-umd-global).", + "category": "Error", + "code": 2686, + "message": "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.", + "source": "curated" + }, + "2687": { + "body": "TypeScript reports this error: All declarations of '{0}' must have identical modifiers.", + "category": "Error", + "code": 2687, + "message": "All declarations of '{0}' must have identical modifiers.", + "source": "generated" + }, + "2688": { + "body": "TypeScript reports this error: Cannot find type definition file for '{0}'.", + "category": "Error", + "code": 2688, + "message": "Cannot find type definition file for '{0}'.", + "source": "generated" + }, + "2689": { + "body": "TypeScript reports this error: Cannot extend an interface '{0}'. Did you mean 'implements'?", + "category": "Error", + "code": 2689, + "message": "Cannot extend an interface '{0}'. Did you mean 'implements'?", + "source": "generated" + }, + "2690": { + "body": "TypeScript reports this error: '{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?", + "category": "Error", + "code": 2690, + "message": "'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?", + "source": "generated" + }, + "2692": { + "body": "TypeScript reports this error: '{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.", + "category": "Error", + "code": 2692, + "message": "'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.", + "source": "generated" + }, + "2693": { + "body": "TypeScript reports this error: '{0}' only refers to a type, but is being used as a value here.", + "category": "Error", + "code": 2693, + "message": "'{0}' only refers to a type, but is being used as a value here.", + "source": "generated" + }, + "2694": { + "body": "TypeScript reports this error: Namespace '{0}' has no exported member '{1}'.", + "category": "Error", + "code": 2694, + "message": "Namespace '{0}' has no exported member '{1}'.", + "source": "generated" + }, + "2695": { + "body": "TypeScript reports this error: Left side of comma operator is unused and has no side effects.", + "category": "Error", + "code": 2695, + "message": "Left side of comma operator is unused and has no side effects.", + "source": "generated" + }, + "2696": { + "body": "TypeScript reports this error: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?", + "category": "Error", + "code": 2696, + "message": "The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?", + "source": "generated" + }, + "2697": { + "body": "TypeScript reports this error: An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.", + "category": "Error", + "code": 2697, + "message": "An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.", + "source": "generated" + }, + "2698": { + "body": "TypeScript reports this error: Spread types may only be created from object types.", + "category": "Error", + "code": 2698, + "message": "Spread types may only be created from object types.", + "source": "generated" + }, + "2699": { + "body": "TypeScript reports this error: Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.", + "category": "Error", + "code": 2699, + "message": "Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.", + "source": "generated" + }, + "2700": { + "body": "TypeScript reports this error: Rest types may only be created from object types.", + "category": "Error", + "code": 2700, + "message": "Rest types may only be created from object types.", + "source": "generated" + }, + "2701": { + "body": "TypeScript reports this error: The target of an object rest assignment must be a variable or a property access.", + "category": "Error", + "code": 2701, + "message": "The target of an object rest assignment must be a variable or a property access.", + "source": "generated" + }, + "2702": { + "body": "TypeScript reports this error: '{0}' only refers to a type, but is being used as a namespace here.", + "category": "Error", + "code": 2702, + "message": "'{0}' only refers to a type, but is being used as a namespace here.", + "source": "generated" + }, + "2703": { + "body": "TypeScript reports this error: The operand of a 'delete' operator must be a property reference.", + "category": "Error", + "code": 2703, + "message": "The operand of a 'delete' operator must be a property reference.", + "source": "generated" + }, + "2704": { + "body": "TypeScript reports this error: The operand of a 'delete' operator cannot be a read-only property.", + "category": "Error", + "code": 2704, + "message": "The operand of a 'delete' operator cannot be a read-only property.", + "source": "generated" + }, + "2705": { + "body": "TypeScript reports this error: An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.", + "category": "Error", + "code": 2705, + "message": "An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.", + "source": "generated" + }, + "2706": { + "body": "TypeScript reports this error: Required type parameters may not follow optional type parameters.", + "category": "Error", + "code": 2706, + "message": "Required type parameters may not follow optional type parameters.", + "source": "generated" + }, + "2707": { + "body": "TypeScript reports this error: Generic type '{0}' requires between {1} and {2} type arguments.", + "category": "Error", + "code": 2707, + "message": "Generic type '{0}' requires between {1} and {2} type arguments.", + "source": "generated" + }, + "2708": { + "body": "TypeScript reports this error: Cannot use namespace '{0}' as a value.", + "category": "Error", + "code": 2708, + "message": "Cannot use namespace '{0}' as a value.", + "source": "generated" + }, + "2709": { + "body": "TypeScript reports this error: Cannot use namespace '{0}' as a type.", + "category": "Error", + "code": 2709, + "message": "Cannot use namespace '{0}' as a type.", + "source": "generated" + }, + "2710": { + "body": "TypeScript reports this error: '{0}' are specified twice. The attribute named '{0}' will be overwritten.", + "category": "Error", + "code": 2710, + "message": "'{0}' are specified twice. The attribute named '{0}' will be overwritten.", + "source": "generated" + }, + "2711": { + "body": "TypeScript reports this error: A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.", + "category": "Error", + "code": 2711, + "message": "A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.", + "source": "generated" + }, + "2712": { + "body": "TypeScript reports this error: A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.", + "category": "Error", + "code": 2712, + "message": "A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.", + "source": "generated" + }, + "2713": { + "body": "TypeScript reports this error: Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?", + "category": "Error", + "code": 2713, + "message": "Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?", + "source": "generated" + }, + "2714": { + "body": "TypeScript reports this error: The expression of an export assignment must be an identifier or qualified name in an ambient context.", + "category": "Error", + "code": 2714, + "message": "The expression of an export assignment must be an identifier or qualified name in an ambient context.", + "source": "generated" + }, + "2715": { + "body": "TypeScript reports this error: Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.", + "category": "Error", + "code": 2715, + "message": "Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.", + "source": "generated" + }, + "2716": { + "body": "TypeScript reports this error: Type parameter '{0}' has a circular default.", + "category": "Error", + "code": 2716, + "message": "Type parameter '{0}' has a circular default.", + "source": "generated" + }, + "2717": { + "body": "TypeScript reports this error: Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.", + "category": "Error", + "code": 2717, + "message": "Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.", + "source": "generated" + }, + "2718": { + "body": "TypeScript reports this error: Duplicate property '{0}'.", + "category": "Error", + "code": 2718, + "message": "Duplicate property '{0}'.", + "source": "generated" + }, + "2719": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.", + "category": "Error", + "code": 2719, + "message": "Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.", + "source": "generated" + }, + "2720": { + "body": "TypeScript reports this error: Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?", + "category": "Error", + "code": 2720, + "message": "Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?", + "source": "generated" + }, + "2721": { + "body": "TypeScript reports this error: Cannot invoke an object which is possibly 'null'.", + "category": "Error", + "code": 2721, + "message": "Cannot invoke an object which is possibly 'null'.", + "source": "generated" + }, + "2722": { + "body": "This function might be undefined. You'll need to check it's defined before calling it.", + "category": "Error", + "code": 2722, + "message": "Cannot invoke an object which is possibly 'undefined'.", + "source": "curated" + }, + "2723": { + "body": "TypeScript reports this error: Cannot invoke an object which is possibly 'null' or 'undefined'.", + "category": "Error", + "code": 2723, + "message": "Cannot invoke an object which is possibly 'null' or 'undefined'.", + "source": "generated" + }, + "2724": { + "body": "TypeScript reports this error: '{0}' has no exported member named '{1}'. Did you mean '{2}'?", + "category": "Error", + "code": 2724, + "message": "'{0}' has no exported member named '{1}'. Did you mean '{2}'?", + "source": "generated" + }, + "2725": { + "body": "TypeScript reports this error: Class name cannot be 'Object' when targeting ES5 and above with module {0}.", + "category": "Error", + "code": 2725, + "message": "Class name cannot be 'Object' when targeting ES5 and above with module {0}.", + "source": "generated" + }, + "2726": { + "body": "TypeScript reports this error: Cannot find lib definition for '{0}'.", + "category": "Error", + "code": 2726, + "message": "Cannot find lib definition for '{0}'.", + "source": "generated" + }, + "2727": { + "body": "TypeScript reports this error: Cannot find lib definition for '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 2727, + "message": "Cannot find lib definition for '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "2728": { + "body": "TypeScript reports: '{0}' is declared here.", + "category": "Message", + "code": 2728, + "message": "'{0}' is declared here.", + "source": "generated" + }, + "2729": { + "body": "TypeScript reports this error: Property '{0}' is used before its initialization.", + "category": "Error", + "code": 2729, + "message": "Property '{0}' is used before its initialization.", + "source": "generated" + }, + "2730": { + "body": "TypeScript reports this error: An arrow function cannot have a 'this' parameter.", + "category": "Error", + "code": 2730, + "message": "An arrow function cannot have a 'this' parameter.", + "source": "generated" + }, + "2731": { + "body": "TypeScript reports this error: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.", + "category": "Error", + "code": 2731, + "message": "Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.", + "source": "generated" + }, + "2732": { + "body": "TypeScript reports this error: Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.", + "category": "Error", + "code": 2732, + "message": "Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.", + "source": "generated" + }, + "2733": { + "body": "TypeScript reports this error: Property '{0}' was also declared here.", + "category": "Error", + "code": 2733, + "message": "Property '{0}' was also declared here.", + "source": "generated" + }, + "2734": { + "body": "TypeScript reports this error: Are you missing a semicolon?", + "category": "Error", + "code": 2734, + "message": "Are you missing a semicolon?", + "source": "generated" + }, + "2735": { + "body": "TypeScript reports this error: Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?", + "category": "Error", + "code": 2735, + "message": "Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?", + "source": "generated" + }, + "2736": { + "body": "TypeScript reports this error: Operator '{0}' cannot be applied to type '{1}'.", + "category": "Error", + "code": 2736, + "message": "Operator '{0}' cannot be applied to type '{1}'.", + "source": "generated" + }, + "2737": { + "body": "TypeScript reports this error: BigInt literals are not available when targeting lower than ES2020.", + "category": "Error", + "code": 2737, + "message": "BigInt literals are not available when targeting lower than ES2020.", + "source": "generated" + }, + "2738": { + "body": "TypeScript reports: An outer value of 'this' is shadowed by this container.", + "category": "Message", + "code": 2738, + "message": "An outer value of 'this' is shadowed by this container.", + "source": "generated" + }, + "2739": { + "body": "'{0}' is missing some required properties from type '{1}': {2}.", + "category": "Error", + "code": 2739, + "message": "Type '{0}' is missing the following properties from type '{1}': {2}", + "source": "curated" + }, + "2740": { + "body": "TypeScript reports this error: Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.", + "category": "Error", + "code": 2740, + "message": "Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.", + "source": "generated" + }, + "2741": { + "body": "You haven't passed all the required properties to '{2}' - '{1}' is missing the '{0}' property.", + "category": "Error", + "code": 2741, + "message": "Property '{0}' is missing in type '{1}' but required in type '{2}'.", + "source": "curated" + }, + "2742": { + "body": "TypeScript reports this error: The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.", + "category": "Error", + "code": 2742, + "message": "The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.", + "source": "generated" + }, + "2743": { + "body": "TypeScript reports this error: No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.", + "category": "Error", + "code": 2743, + "message": "No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.", + "source": "generated" + }, + "2744": { + "body": "TypeScript reports this error: Type parameter defaults can only reference previously declared type parameters.", + "category": "Error", + "code": 2744, + "message": "Type parameter defaults can only reference previously declared type parameters.", + "source": "generated" + }, + "2745": { + "body": "TypeScript reports this error: This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.", + "category": "Error", + "code": 2745, + "message": "This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.", + "source": "generated" + }, + "2746": { + "body": "TypeScript reports this error: This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.", + "category": "Error", + "code": 2746, + "message": "This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.", + "source": "generated" + }, + "2747": { + "body": "TypeScript reports this error: '{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.", + "category": "Error", + "code": 2747, + "message": "'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.", + "source": "generated" + }, + "2748": { + "body": "TypeScript reports this error: Cannot access ambient const enums when '{0}' is enabled.", + "category": "Error", + "code": 2748, + "message": "Cannot access ambient const enums when '{0}' is enabled.", + "source": "generated" + }, + "2749": { + "body": "You're trying to use a JavaScript variable where you should be passing a type.", + "category": "Error", + "code": 2749, + "message": "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?", + "source": "curated" + }, + "2750": { + "body": "TypeScript reports this error: The implementation signature is declared here.", + "category": "Error", + "code": 2750, + "message": "The implementation signature is declared here.", + "source": "generated" + }, + "2751": { + "body": "TypeScript reports this error: Circularity originates in type at this location.", + "category": "Error", + "code": 2751, + "message": "Circularity originates in type at this location.", + "source": "generated" + }, + "2752": { + "body": "TypeScript reports this error: The first export default is here.", + "category": "Error", + "code": 2752, + "message": "The first export default is here.", + "source": "generated" + }, + "2753": { + "body": "TypeScript reports this error: Another export default is here.", + "category": "Error", + "code": 2753, + "message": "Another export default is here.", + "source": "generated" + }, + "2754": { + "body": "TypeScript reports this error: 'super' may not use type arguments.", + "category": "Error", + "code": 2754, + "message": "'super' may not use type arguments.", + "source": "generated" + }, + "2755": { + "body": "TypeScript reports this error: No constituent of type '{0}' is callable.", + "category": "Error", + "code": 2755, + "message": "No constituent of type '{0}' is callable.", + "source": "generated" + }, + "2756": { + "body": "TypeScript reports this error: Not all constituents of type '{0}' are callable.", + "category": "Error", + "code": 2756, + "message": "Not all constituents of type '{0}' are callable.", + "source": "generated" + }, + "2757": { + "body": "TypeScript reports this error: Type '{0}' has no call signatures.", + "category": "Error", + "code": 2757, + "message": "Type '{0}' has no call signatures.", + "source": "generated" + }, + "2758": { + "body": "TypeScript reports this error: Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.", + "category": "Error", + "code": 2758, + "message": "Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.", + "source": "generated" + }, + "2759": { + "body": "TypeScript reports this error: No constituent of type '{0}' is constructable.", + "category": "Error", + "code": 2759, + "message": "No constituent of type '{0}' is constructable.", + "source": "generated" + }, + "2760": { + "body": "TypeScript reports this error: Not all constituents of type '{0}' are constructable.", + "category": "Error", + "code": 2760, + "message": "Not all constituents of type '{0}' are constructable.", + "source": "generated" + }, + "2761": { + "body": "Type '{0}' is not a class.", + "category": "Error", + "code": 2761, + "message": "Type '{0}' has no construct signatures.", + "source": "curated" + }, + "2762": { + "body": "TypeScript reports this error: Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.", + "category": "Error", + "code": 2762, + "message": "Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.", + "source": "generated" + }, + "2763": { + "body": "TypeScript reports this error: Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.", + "category": "Error", + "code": 2763, + "message": "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.", + "source": "generated" + }, + "2764": { + "body": "TypeScript reports this error: Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.", + "category": "Error", + "code": 2764, + "message": "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.", + "source": "generated" + }, + "2765": { + "body": "TypeScript reports this error: Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.", + "category": "Error", + "code": 2765, + "message": "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.", + "source": "generated" + }, + "2766": { + "body": "TypeScript reports this error: Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.", + "category": "Error", + "code": 2766, + "message": "Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.", + "source": "generated" + }, + "2767": { + "body": "TypeScript reports this error: The '{0}' property of an iterator must be a method.", + "category": "Error", + "code": 2767, + "message": "The '{0}' property of an iterator must be a method.", + "source": "generated" + }, + "2768": { + "body": "TypeScript reports this error: The '{0}' property of an async iterator must be a method.", + "category": "Error", + "code": 2768, + "message": "The '{0}' property of an async iterator must be a method.", + "source": "generated" + }, + "2769": { + "body": "TypeScript reports this error: No overload matches this call.", + "category": "Error", + "code": 2769, + "message": "No overload matches this call.", + "source": "generated" + }, + "2770": { + "body": "TypeScript reports this error: The last overload gave the following error.", + "category": "Error", + "code": 2770, + "message": "The last overload gave the following error.", + "source": "generated" + }, + "2771": { + "body": "TypeScript reports this error: The last overload is declared here.", + "category": "Error", + "code": 2771, + "message": "The last overload is declared here.", + "source": "generated" + }, + "2772": { + "body": "TypeScript reports this error: Overload {0} of {1}, '{2}', gave the following error.", + "category": "Error", + "code": 2772, + "message": "Overload {0} of {1}, '{2}', gave the following error.", + "source": "generated" + }, + "2773": { + "body": "TypeScript reports this error: Did you forget to use 'await'?", + "category": "Error", + "code": 2773, + "message": "Did you forget to use 'await'?", + "source": "generated" + }, + "2774": { + "body": "TypeScript reports this error: This condition will always return true since this function is always defined. Did you mean to call it instead?", + "category": "Error", + "code": 2774, + "message": "This condition will always return true since this function is always defined. Did you mean to call it instead?", + "source": "generated" + }, + "2775": { + "body": "You might be using an `asserts` keyword on an arrow function. If you are, change the function to use the `function` keyword.", + "category": "Error", + "code": 2775, + "message": "Assertions require every name in the call target to be declared with an explicit type annotation.", + "source": "curated" + }, + "2776": { + "body": "TypeScript reports this error: Assertions require the call target to be an identifier or qualified name.", + "category": "Error", + "code": 2776, + "message": "Assertions require the call target to be an identifier or qualified name.", + "source": "generated" + }, + "2777": { + "body": "TypeScript reports this error: The operand of an increment or decrement operator may not be an optional property access.", + "category": "Error", + "code": 2777, + "message": "The operand of an increment or decrement operator may not be an optional property access.", + "source": "generated" + }, + "2778": { + "body": "TypeScript reports this error: The target of an object rest assignment may not be an optional property access.", + "category": "Error", + "code": 2778, + "message": "The target of an object rest assignment may not be an optional property access.", + "source": "generated" + }, + "2779": { + "body": "TypeScript reports this error: The left-hand side of an assignment expression may not be an optional property access.", + "category": "Error", + "code": 2779, + "message": "The left-hand side of an assignment expression may not be an optional property access.", + "source": "generated" + }, + "2780": { + "body": "TypeScript reports this error: The left-hand side of a 'for...in' statement may not be an optional property access.", + "category": "Error", + "code": 2780, + "message": "The left-hand side of a 'for...in' statement may not be an optional property access.", + "source": "generated" + }, + "2781": { + "body": "TypeScript reports this error: The left-hand side of a 'for...of' statement may not be an optional property access.", + "category": "Error", + "code": 2781, + "message": "The left-hand side of a 'for...of' statement may not be an optional property access.", + "source": "generated" + }, + "2782": { + "body": "TypeScript reports: '{0}' needs an explicit type annotation.", + "category": "Message", + "code": 2782, + "message": "'{0}' needs an explicit type annotation.", + "source": "generated" + }, + "2783": { + "body": "'{0}' will be overwritten by the spread.", + "category": "Error", + "code": 2783, + "message": "'{0}' is specified more than once, so this usage will be overwritten.", + "source": "curated" + }, + "2784": { + "body": "TypeScript reports this error: 'get' and 'set' accessors cannot declare 'this' parameters.", + "category": "Error", + "code": 2784, + "message": "'get' and 'set' accessors cannot declare 'this' parameters.", + "source": "generated" + }, + "2785": { + "body": "TypeScript reports this error: This spread always overwrites this property.", + "category": "Error", + "code": 2785, + "message": "This spread always overwrites this property.", + "source": "generated" + }, + "2786": { + "body": "TypeScript reports this error: '{0}' cannot be used as a JSX component.", + "category": "Error", + "code": 2786, + "message": "'{0}' cannot be used as a JSX component.", + "source": "generated" + }, + "2787": { + "body": "TypeScript reports this error: Its return type '{0}' is not a valid JSX element.", + "category": "Error", + "code": 2787, + "message": "Its return type '{0}' is not a valid JSX element.", + "source": "generated" + }, + "2788": { + "body": "TypeScript reports this error: Its instance type '{0}' is not a valid JSX element.", + "category": "Error", + "code": 2788, + "message": "Its instance type '{0}' is not a valid JSX element.", + "source": "generated" + }, + "2789": { + "body": "TypeScript reports this error: Its element type '{0}' is not a valid JSX element.", + "category": "Error", + "code": 2789, + "message": "Its element type '{0}' is not a valid JSX element.", + "source": "generated" + }, + "2790": { + "body": "TypeScript reports this error: The operand of a 'delete' operator must be optional.", + "category": "Error", + "code": 2790, + "message": "The operand of a 'delete' operator must be optional.", + "source": "generated" + }, + "2791": { + "body": "TypeScript reports this error: Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.", + "category": "Error", + "code": 2791, + "message": "Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.", + "source": "generated" + }, + "2792": { + "body": "TypeScript reports this error: Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?", + "category": "Error", + "code": 2792, + "message": "Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?", + "source": "generated" + }, + "2793": { + "body": "TypeScript reports this error: The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.", + "category": "Error", + "code": 2793, + "message": "The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.", + "source": "generated" + }, + "2794": { + "body": "TypeScript reports this error: Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?", + "category": "Error", + "code": 2794, + "message": "Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?", + "source": "generated" + }, + "2795": { + "body": "TypeScript reports this error: The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.", + "category": "Error", + "code": 2795, + "message": "The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.", + "source": "generated" + }, + "2796": { + "body": "TypeScript reports this error: It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.", + "category": "Error", + "code": 2796, + "message": "It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.", + "source": "generated" + }, + "2797": { + "body": "TypeScript reports this error: A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.", + "category": "Error", + "code": 2797, + "message": "A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.", + "source": "generated" + }, + "2798": { + "body": "TypeScript reports this error: The declaration was marked as deprecated here.", + "category": "Error", + "code": 2798, + "message": "The declaration was marked as deprecated here.", + "source": "generated" + }, + "2799": { + "body": "TypeScript reports this error: Type produces a tuple type that is too large to represent.", + "category": "Error", + "code": 2799, + "message": "Type produces a tuple type that is too large to represent.", + "source": "generated" + }, + "2800": { + "body": "TypeScript reports this error: Expression produces a tuple type that is too large to represent.", + "category": "Error", + "code": 2800, + "message": "Expression produces a tuple type that is too large to represent.", + "source": "generated" + }, + "2801": { + "body": "TypeScript reports this error: This condition will always return true since this '{0}' is always defined.", + "category": "Error", + "code": 2801, + "message": "This condition will always return true since this '{0}' is always defined.", + "source": "generated" + }, + "2802": { + "body": "TypeScript reports this error: Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.", + "category": "Error", + "code": 2802, + "message": "Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.", + "source": "generated" + }, + "2803": { + "body": "TypeScript reports this error: Cannot assign to private method '{0}'. Private methods are not writable.", + "category": "Error", + "code": 2803, + "message": "Cannot assign to private method '{0}'. Private methods are not writable.", + "source": "generated" + }, + "2804": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.", + "category": "Error", + "code": 2804, + "message": "Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.", + "source": "generated" + }, + "2806": { + "body": "TypeScript reports this error: Private accessor was defined without a getter.", + "category": "Error", + "code": 2806, + "message": "Private accessor was defined without a getter.", + "source": "generated" + }, + "2807": { + "body": "TypeScript reports this error: This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.", + "category": "Error", + "code": 2807, + "message": "This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.", + "source": "generated" + }, + "2808": { + "body": "TypeScript reports this error: A get accessor must be at least as accessible as the setter", + "category": "Error", + "code": 2808, + "message": "A get accessor must be at least as accessible as the setter", + "source": "generated" + }, + "2809": { + "body": "TypeScript reports this error: Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.", + "category": "Error", + "code": 2809, + "message": "Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.", + "source": "generated" + }, + "2810": { + "body": "TypeScript reports this error: Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.", + "category": "Error", + "code": 2810, + "message": "Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.", + "source": "generated" + }, + "2811": { + "body": "TypeScript reports this error: Initializer for property '{0}'", + "category": "Error", + "code": 2811, + "message": "Initializer for property '{0}'", + "source": "generated" + }, + "2812": { + "body": "TypeScript reports this error: Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.", + "category": "Error", + "code": 2812, + "message": "Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.", + "source": "generated" + }, + "2813": { + "body": "TypeScript reports this error: Class declaration cannot implement overload list for '{0}'.", + "category": "Error", + "code": 2813, + "message": "Class declaration cannot implement overload list for '{0}'.", + "source": "generated" + }, + "2814": { + "body": "TypeScript reports this error: Function with bodies can only merge with classes that are ambient.", + "category": "Error", + "code": 2814, + "message": "Function with bodies can only merge with classes that are ambient.", + "source": "generated" + }, + "2815": { + "body": "TypeScript reports this error: 'arguments' cannot be referenced in property initializers or class static initialization blocks.", + "category": "Error", + "code": 2815, + "message": "'arguments' cannot be referenced in property initializers or class static initialization blocks.", + "source": "generated" + }, + "2816": { + "body": "TypeScript reports this error: Cannot use 'this' in a static property initializer of a decorated class.", + "category": "Error", + "code": 2816, + "message": "Cannot use 'this' in a static property initializer of a decorated class.", + "source": "generated" + }, + "2817": { + "body": "TypeScript reports this error: Property '{0}' has no initializer and is not definitely assigned in a class static block.", + "category": "Error", + "code": 2817, + "message": "Property '{0}' has no initializer and is not definitely assigned in a class static block.", + "source": "generated" + }, + "2818": { + "body": "TypeScript reports this error: Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.", + "category": "Error", + "code": 2818, + "message": "Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.", + "source": "generated" + }, + "2819": { + "body": "TypeScript reports this error: Namespace name cannot be '{0}'.", + "category": "Error", + "code": 2819, + "message": "Namespace name cannot be '{0}'.", + "source": "generated" + }, + "2820": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?", + "category": "Error", + "code": 2820, + "message": "Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?", + "source": "generated" + }, + "2821": { + "body": "TypeScript reports this error: Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.", + "category": "Error", + "code": 2821, + "message": "Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.", + "source": "generated" + }, + "2822": { + "body": "TypeScript reports this error: Import assertions cannot be used with type-only imports or exports.", + "category": "Error", + "code": 2822, + "message": "Import assertions cannot be used with type-only imports or exports.", + "source": "generated" + }, + "2823": { + "body": "TypeScript reports this error: Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.", + "category": "Error", + "code": 2823, + "message": "Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.", + "source": "generated" + }, + "2833": { + "body": "TypeScript reports this error: Cannot find namespace '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 2833, + "message": "Cannot find namespace '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "2834": { + "body": "TypeScript reports this error: Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.", + "category": "Error", + "code": 2834, + "message": "Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.", + "source": "generated" + }, + "2835": { + "body": "TypeScript reports this error: Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?", + "category": "Error", + "code": 2835, + "message": "Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?", + "source": "generated" + }, + "2836": { + "body": "TypeScript reports this error: Import assertions are not allowed on statements that compile to CommonJS 'require' calls.", + "category": "Error", + "code": 2836, + "message": "Import assertions are not allowed on statements that compile to CommonJS 'require' calls.", + "source": "generated" + }, + "2837": { + "body": "TypeScript reports this error: Import assertion values must be string literal expressions.", + "category": "Error", + "code": 2837, + "message": "Import assertion values must be string literal expressions.", + "source": "generated" + }, + "2838": { + "body": "TypeScript reports this error: All declarations of '{0}' must have identical constraints.", + "category": "Error", + "code": 2838, + "message": "All declarations of '{0}' must have identical constraints.", + "source": "generated" + }, + "2839": { + "body": "TypeScript reports this error: This condition will always return '{0}' since JavaScript compares objects by reference, not value.", + "category": "Error", + "code": 2839, + "message": "This condition will always return '{0}' since JavaScript compares objects by reference, not value.", + "source": "generated" + }, + "2840": { + "body": "TypeScript reports this error: An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.", + "category": "Error", + "code": 2840, + "message": "An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.", + "source": "generated" + }, + "2842": { + "body": "TypeScript reports this error: '{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?", + "category": "Error", + "code": 2842, + "message": "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?", + "source": "generated" + }, + "2843": { + "body": "TypeScript reports this error: We can only write a type for '{0}' by adding a type for the entire parameter here.", + "category": "Error", + "code": 2843, + "message": "We can only write a type for '{0}' by adding a type for the entire parameter here.", + "source": "generated" + }, + "2844": { + "body": "TypeScript reports this error: Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", + "category": "Error", + "code": 2844, + "message": "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.", + "source": "generated" + }, + "2845": { + "body": "TypeScript reports this error: This condition will always return '{0}'.", + "category": "Error", + "code": 2845, + "message": "This condition will always return '{0}'.", + "source": "generated" + }, + "2846": { + "body": "TypeScript reports this error: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?", + "category": "Error", + "code": 2846, + "message": "A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?", + "source": "generated" + }, + "2848": { + "body": "TypeScript reports this error: The right-hand side of an 'instanceof' expression must not be an instantiation expression.", + "category": "Error", + "code": 2848, + "message": "The right-hand side of an 'instanceof' expression must not be an instantiation expression.", + "source": "generated" + }, + "2849": { + "body": "TypeScript reports this error: Target signature provides too few arguments. Expected {0} or more, but got {1}.", + "category": "Error", + "code": 2849, + "message": "Target signature provides too few arguments. Expected {0} or more, but got {1}.", + "source": "generated" + }, + "2850": { + "body": "TypeScript reports this error: The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.", + "category": "Error", + "code": 2850, + "message": "The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.", + "source": "generated" + }, + "2851": { + "body": "TypeScript reports this error: The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.", + "category": "Error", + "code": 2851, + "message": "The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.", + "source": "generated" + }, + "2852": { + "body": "TypeScript reports this error: 'await using' statements are only allowed within async functions and at the top levels of modules.", + "category": "Error", + "code": 2852, + "message": "'await using' statements are only allowed within async functions and at the top levels of modules.", + "source": "generated" + }, + "2853": { + "body": "TypeScript reports this error: 'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "category": "Error", + "code": 2853, + "message": "'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.", + "source": "generated" + }, + "2854": { + "body": "TypeScript reports this error: Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "category": "Error", + "code": 2854, + "message": "Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.", + "source": "generated" + }, + "2855": { + "body": "TypeScript reports this error: Class field '{0}' defined by the parent class is not accessible in the child class via super.", + "category": "Error", + "code": 2855, + "message": "Class field '{0}' defined by the parent class is not accessible in the child class via super.", + "source": "generated" + }, + "2856": { + "body": "TypeScript reports this error: Import attributes are not allowed on statements that compile to CommonJS 'require' calls.", + "category": "Error", + "code": 2856, + "message": "Import attributes are not allowed on statements that compile to CommonJS 'require' calls.", + "source": "generated" + }, + "2857": { + "body": "TypeScript reports this error: Import attributes cannot be used with type-only imports or exports.", + "category": "Error", + "code": 2857, + "message": "Import attributes cannot be used with type-only imports or exports.", + "source": "generated" + }, + "2858": { + "body": "TypeScript reports this error: Import attribute values must be string literal expressions.", + "category": "Error", + "code": 2858, + "message": "Import attribute values must be string literal expressions.", + "source": "generated" + }, + "2859": { + "body": "TypeScript reports this error: Excessive complexity comparing types '{0}' and '{1}'.", + "category": "Error", + "code": 2859, + "message": "Excessive complexity comparing types '{0}' and '{1}'.", + "source": "generated" + }, + "2860": { + "body": "TypeScript reports this error: The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.", + "category": "Error", + "code": 2860, + "message": "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.", + "source": "generated" + }, + "2861": { + "body": "TypeScript reports this error: An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.", + "category": "Error", + "code": 2861, + "message": "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.", + "source": "generated" + }, + "2862": { + "body": "TypeScript reports this error: Type '{0}' is generic and can only be indexed for reading.", + "category": "Error", + "code": 2862, + "message": "Type '{0}' is generic and can only be indexed for reading.", + "source": "generated" + }, + "2863": { + "body": "TypeScript reports this error: A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.", + "category": "Error", + "code": 2863, + "message": "A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.", + "source": "generated" + }, + "2864": { + "body": "TypeScript reports this error: A class cannot implement a primitive type like '{0}'. It can only implement other named object types.", + "category": "Error", + "code": 2864, + "message": "A class cannot implement a primitive type like '{0}'. It can only implement other named object types.", + "source": "generated" + }, + "2865": { + "body": "TypeScript reports this error: Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.", + "category": "Error", + "code": 2865, + "message": "Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.", + "source": "generated" + }, + "2866": { + "body": "TypeScript reports this error: Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.", + "category": "Error", + "code": 2866, + "message": "Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.", + "source": "generated" + }, + "2867": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.", + "category": "Error", + "code": 2867, + "message": "Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.", + "source": "generated" + }, + "2868": { + "body": "TypeScript reports this error: Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.", + "category": "Error", + "code": 2868, + "message": "Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.", + "source": "generated" + }, + "2869": { + "body": "TypeScript reports this error: Right operand of ?? is unreachable because the left operand is never nullish.", + "category": "Error", + "code": 2869, + "message": "Right operand of ?? is unreachable because the left operand is never nullish.", + "source": "generated" + }, + "2870": { + "body": "TypeScript reports this error: This binary expression is never nullish. Are you missing parentheses?", + "category": "Error", + "code": 2870, + "message": "This binary expression is never nullish. Are you missing parentheses?", + "source": "generated" + }, + "2871": { + "body": "TypeScript reports this error: This expression is always nullish.", + "category": "Error", + "code": 2871, + "message": "This expression is always nullish.", + "source": "generated" + }, + "2872": { + "body": "TypeScript reports this error: This kind of expression is always truthy.", + "category": "Error", + "code": 2872, + "message": "This kind of expression is always truthy.", + "source": "generated" + }, + "2873": { + "body": "TypeScript reports this error: This kind of expression is always falsy.", + "category": "Error", + "code": 2873, + "message": "This kind of expression is always falsy.", + "source": "generated" + }, + "2874": { + "body": "TypeScript reports this error: This JSX tag requires '{0}' to be in scope, but it could not be found.", + "category": "Error", + "code": 2874, + "message": "This JSX tag requires '{0}' to be in scope, but it could not be found.", + "source": "generated" + }, + "2875": { + "body": "TypeScript reports this error: This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.", + "category": "Error", + "code": 2875, + "message": "This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.", + "source": "generated" + }, + "2876": { + "body": "TypeScript reports this error: This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".", + "category": "Error", + "code": 2876, + "message": "This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".", + "source": "generated" + }, + "2877": { + "body": "TypeScript reports this error: This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.", + "category": "Error", + "code": 2877, + "message": "This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.", + "source": "generated" + }, + "2878": { + "body": "TypeScript reports this error: This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.", + "category": "Error", + "code": 2878, + "message": "This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.", + "source": "generated" + }, + "2879": { + "body": "TypeScript reports this error: Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.", + "category": "Error", + "code": 2879, + "message": "Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.", + "source": "generated" + }, + "2880": { + "body": "TypeScript reports this error: Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'.", + "category": "Error", + "code": 2880, + "message": "Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'.", + "source": "generated" + }, + "2881": { + "body": "TypeScript reports this error: This expression is never nullish.", + "category": "Error", + "code": 2881, + "message": "This expression is never nullish.", + "source": "generated" + }, + "2882": { + "body": "TypeScript reports this error: Cannot find module or type declarations for side-effect import of '{0}'.", + "category": "Error", + "code": 2882, + "message": "Cannot find module or type declarations for side-effect import of '{0}'.", + "source": "generated" + }, + "2883": { + "body": "TypeScript reports this error: The inferred type of '{0}' cannot be named without a reference to '{2}' from '{1}'. This is likely not portable. A type annotation is necessary.", + "category": "Error", + "code": 2883, + "message": "The inferred type of '{0}' cannot be named without a reference to '{2}' from '{1}'. This is likely not portable. A type annotation is necessary.", + "source": "generated" + }, + "4000": { + "body": "TypeScript reports this error: Import declaration '{0}' is using private name '{1}'.", + "category": "Error", + "code": 4000, + "message": "Import declaration '{0}' is using private name '{1}'.", + "source": "generated" + }, + "4002": { + "body": "TypeScript reports this error: Type parameter '{0}' of exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4002, + "message": "Type parameter '{0}' of exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4004": { + "body": "TypeScript reports this error: Type parameter '{0}' of exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4004, + "message": "Type parameter '{0}' of exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4006": { + "body": "TypeScript reports this error: Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4006, + "message": "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4008": { + "body": "TypeScript reports this error: Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4008, + "message": "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4010": { + "body": "TypeScript reports this error: Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4010, + "message": "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4012": { + "body": "TypeScript reports this error: Type parameter '{0}' of public method from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4012, + "message": "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4014": { + "body": "TypeScript reports this error: Type parameter '{0}' of method from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4014, + "message": "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4016": { + "body": "TypeScript reports this error: Type parameter '{0}' of exported function has or is using private name '{1}'.", + "category": "Error", + "code": 4016, + "message": "Type parameter '{0}' of exported function has or is using private name '{1}'.", + "source": "generated" + }, + "4019": { + "body": "TypeScript reports this error: Implements clause of exported class '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4019, + "message": "Implements clause of exported class '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4020": { + "body": "TypeScript reports this error: 'extends' clause of exported class '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4020, + "message": "'extends' clause of exported class '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4021": { + "body": "TypeScript reports this error: 'extends' clause of exported class has or is using private name '{0}'.", + "category": "Error", + "code": 4021, + "message": "'extends' clause of exported class has or is using private name '{0}'.", + "source": "generated" + }, + "4022": { + "body": "TypeScript reports this error: 'extends' clause of exported interface '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4022, + "message": "'extends' clause of exported interface '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4023": { + "body": "TypeScript reports this error: Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4023, + "message": "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4024": { + "body": "TypeScript reports this error: Exported variable '{0}' has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4024, + "message": "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4025": { + "body": "TypeScript reports this error: Exported variable '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4025, + "message": "Exported variable '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4026": { + "body": "TypeScript reports this error: Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4026, + "message": "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4027": { + "body": "TypeScript reports this error: Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4027, + "message": "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4028": { + "body": "TypeScript reports this error: Public static property '{0}' of exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4028, + "message": "Public static property '{0}' of exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4029": { + "body": "TypeScript reports this error: Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4029, + "message": "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4030": { + "body": "TypeScript reports this error: Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4030, + "message": "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4031": { + "body": "TypeScript reports this error: Public property '{0}' of exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4031, + "message": "Public property '{0}' of exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4032": { + "body": "TypeScript reports this error: Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4032, + "message": "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4033": { + "body": "TypeScript reports this error: Property '{0}' of exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4033, + "message": "Property '{0}' of exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4034": { + "body": "TypeScript reports this error: Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4034, + "message": "Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4035": { + "body": "TypeScript reports this error: Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4035, + "message": "Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4036": { + "body": "TypeScript reports this error: Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4036, + "message": "Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4037": { + "body": "TypeScript reports this error: Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4037, + "message": "Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4038": { + "body": "TypeScript reports this error: Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4038, + "message": "Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4039": { + "body": "TypeScript reports this error: Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4039, + "message": "Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4040": { + "body": "TypeScript reports this error: Return type of public static getter '{0}' from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4040, + "message": "Return type of public static getter '{0}' from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4041": { + "body": "TypeScript reports this error: Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4041, + "message": "Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4042": { + "body": "TypeScript reports this error: Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4042, + "message": "Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4043": { + "body": "TypeScript reports this error: Return type of public getter '{0}' from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4043, + "message": "Return type of public getter '{0}' from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4044": { + "body": "TypeScript reports this error: Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4044, + "message": "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4045": { + "body": "TypeScript reports this error: Return type of constructor signature from exported interface has or is using private name '{0}'.", + "category": "Error", + "code": 4045, + "message": "Return type of constructor signature from exported interface has or is using private name '{0}'.", + "source": "generated" + }, + "4046": { + "body": "TypeScript reports this error: Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4046, + "message": "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4047": { + "body": "TypeScript reports this error: Return type of call signature from exported interface has or is using private name '{0}'.", + "category": "Error", + "code": 4047, + "message": "Return type of call signature from exported interface has or is using private name '{0}'.", + "source": "generated" + }, + "4048": { + "body": "TypeScript reports this error: Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4048, + "message": "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4049": { + "body": "TypeScript reports this error: Return type of index signature from exported interface has or is using private name '{0}'.", + "category": "Error", + "code": 4049, + "message": "Return type of index signature from exported interface has or is using private name '{0}'.", + "source": "generated" + }, + "4050": { + "body": "TypeScript reports this error: Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.", + "category": "Error", + "code": 4050, + "message": "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.", + "source": "generated" + }, + "4051": { + "body": "TypeScript reports this error: Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4051, + "message": "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4052": { + "body": "TypeScript reports this error: Return type of public static method from exported class has or is using private name '{0}'.", + "category": "Error", + "code": 4052, + "message": "Return type of public static method from exported class has or is using private name '{0}'.", + "source": "generated" + }, + "4053": { + "body": "TypeScript reports this error: Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.", + "category": "Error", + "code": 4053, + "message": "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.", + "source": "generated" + }, + "4054": { + "body": "TypeScript reports this error: Return type of public method from exported class has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4054, + "message": "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4055": { + "body": "TypeScript reports this error: Return type of public method from exported class has or is using private name '{0}'.", + "category": "Error", + "code": 4055, + "message": "Return type of public method from exported class has or is using private name '{0}'.", + "source": "generated" + }, + "4056": { + "body": "TypeScript reports this error: Return type of method from exported interface has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4056, + "message": "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4057": { + "body": "TypeScript reports this error: Return type of method from exported interface has or is using private name '{0}'.", + "category": "Error", + "code": 4057, + "message": "Return type of method from exported interface has or is using private name '{0}'.", + "source": "generated" + }, + "4058": { + "body": "TypeScript reports this error: Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.", + "category": "Error", + "code": 4058, + "message": "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.", + "source": "generated" + }, + "4059": { + "body": "TypeScript reports this error: Return type of exported function has or is using name '{0}' from private module '{1}'.", + "category": "Error", + "code": 4059, + "message": "Return type of exported function has or is using name '{0}' from private module '{1}'.", + "source": "generated" + }, + "4060": { + "body": "TypeScript reports this error: Return type of exported function has or is using private name '{0}'.", + "category": "Error", + "code": 4060, + "message": "Return type of exported function has or is using private name '{0}'.", + "source": "generated" + }, + "4061": { + "body": "TypeScript reports this error: Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4061, + "message": "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4062": { + "body": "TypeScript reports this error: Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4062, + "message": "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4063": { + "body": "TypeScript reports this error: Parameter '{0}' of constructor from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4063, + "message": "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4064": { + "body": "TypeScript reports this error: Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4064, + "message": "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4065": { + "body": "TypeScript reports this error: Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4065, + "message": "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4066": { + "body": "TypeScript reports this error: Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4066, + "message": "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4067": { + "body": "TypeScript reports this error: Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4067, + "message": "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4068": { + "body": "TypeScript reports this error: Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4068, + "message": "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4069": { + "body": "TypeScript reports this error: Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4069, + "message": "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4070": { + "body": "TypeScript reports this error: Parameter '{0}' of public static method from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4070, + "message": "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4071": { + "body": "TypeScript reports this error: Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4071, + "message": "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4072": { + "body": "TypeScript reports this error: Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4072, + "message": "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4073": { + "body": "TypeScript reports this error: Parameter '{0}' of public method from exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4073, + "message": "Parameter '{0}' of public method from exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4074": { + "body": "TypeScript reports this error: Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4074, + "message": "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4075": { + "body": "TypeScript reports this error: Parameter '{0}' of method from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4075, + "message": "Parameter '{0}' of method from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4076": { + "body": "TypeScript reports this error: Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4076, + "message": "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4077": { + "body": "TypeScript reports this error: Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4077, + "message": "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4078": { + "body": "TypeScript reports this error: Parameter '{0}' of exported function has or is using private name '{1}'.", + "category": "Error", + "code": 4078, + "message": "Parameter '{0}' of exported function has or is using private name '{1}'.", + "source": "generated" + }, + "4081": { + "body": "TypeScript reports this error: Exported type alias '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4081, + "message": "Exported type alias '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4082": { + "body": "TypeScript reports this error: Default export of the module has or is using private name '{0}'.", + "category": "Error", + "code": 4082, + "message": "Default export of the module has or is using private name '{0}'.", + "source": "generated" + }, + "4083": { + "body": "TypeScript reports this error: Type parameter '{0}' of exported type alias has or is using private name '{1}'.", + "category": "Error", + "code": 4083, + "message": "Type parameter '{0}' of exported type alias has or is using private name '{1}'.", + "source": "generated" + }, + "4084": { + "body": "TypeScript reports this error: Exported type alias '{0}' has or is using private name '{1}' from module {2}.", + "category": "Error", + "code": 4084, + "message": "Exported type alias '{0}' has or is using private name '{1}' from module {2}.", + "source": "generated" + }, + "4085": { + "body": "TypeScript reports this error: Extends clause for inferred type '{0}' has or is using private name '{1}'.", + "category": "Error", + "code": 4085, + "message": "Extends clause for inferred type '{0}' has or is using private name '{1}'.", + "source": "generated" + }, + "4091": { + "body": "TypeScript reports this error: Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4091, + "message": "Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4092": { + "body": "TypeScript reports this error: Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4092, + "message": "Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4094": { + "body": "TypeScript reports this error: Property '{0}' of exported anonymous class type may not be private or protected.", + "category": "Error", + "code": 4094, + "message": "Property '{0}' of exported anonymous class type may not be private or protected.", + "source": "generated" + }, + "4095": { + "body": "TypeScript reports this error: Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4095, + "message": "Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4096": { + "body": "TypeScript reports this error: Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4096, + "message": "Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4097": { + "body": "TypeScript reports this error: Public static method '{0}' of exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4097, + "message": "Public static method '{0}' of exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4098": { + "body": "TypeScript reports this error: Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "category": "Error", + "code": 4098, + "message": "Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.", + "source": "generated" + }, + "4099": { + "body": "TypeScript reports this error: Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4099, + "message": "Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4100": { + "body": "TypeScript reports this error: Public method '{0}' of exported class has or is using private name '{1}'.", + "category": "Error", + "code": 4100, + "message": "Public method '{0}' of exported class has or is using private name '{1}'.", + "source": "generated" + }, + "4101": { + "body": "TypeScript reports this error: Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4101, + "message": "Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4102": { + "body": "TypeScript reports this error: Method '{0}' of exported interface has or is using private name '{1}'.", + "category": "Error", + "code": 4102, + "message": "Method '{0}' of exported interface has or is using private name '{1}'.", + "source": "generated" + }, + "4103": { + "body": "TypeScript reports this error: Type parameter '{0}' of exported mapped object type is using private name '{1}'.", + "category": "Error", + "code": 4103, + "message": "Type parameter '{0}' of exported mapped object type is using private name '{1}'.", + "source": "generated" + }, + "4104": { + "body": "TypeScript reports this error: The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.", + "category": "Error", + "code": 4104, + "message": "The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.", + "source": "generated" + }, + "4105": { + "body": "TypeScript reports this error: Private or protected member '{0}' cannot be accessed on a type parameter.", + "category": "Error", + "code": 4105, + "message": "Private or protected member '{0}' cannot be accessed on a type parameter.", + "source": "generated" + }, + "4106": { + "body": "TypeScript reports this error: Parameter '{0}' of accessor has or is using private name '{1}'.", + "category": "Error", + "code": 4106, + "message": "Parameter '{0}' of accessor has or is using private name '{1}'.", + "source": "generated" + }, + "4107": { + "body": "TypeScript reports this error: Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.", + "category": "Error", + "code": 4107, + "message": "Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.", + "source": "generated" + }, + "4108": { + "body": "TypeScript reports this error: Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.", + "category": "Error", + "code": 4108, + "message": "Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.", + "source": "generated" + }, + "4109": { + "body": "TypeScript reports this error: Type arguments for '{0}' circularly reference themselves.", + "category": "Error", + "code": 4109, + "message": "Type arguments for '{0}' circularly reference themselves.", + "source": "generated" + }, + "4110": { + "body": "TypeScript reports this error: Tuple type arguments circularly reference themselves.", + "category": "Error", + "code": 4110, + "message": "Tuple type arguments circularly reference themselves.", + "source": "generated" + }, + "4111": { + "body": "TypeScript reports this error: Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].", + "category": "Error", + "code": 4111, + "message": "Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].", + "source": "generated" + }, + "4112": { + "body": "TypeScript reports this error: This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.", + "category": "Error", + "code": 4112, + "message": "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.", + "source": "generated" + }, + "4113": { + "body": "TypeScript reports this error: This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.", + "category": "Error", + "code": 4113, + "message": "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.", + "source": "generated" + }, + "4114": { + "body": "TypeScript reports this error: This member must have an 'override' modifier because it overrides a member in the base class '{0}'.", + "category": "Error", + "code": 4114, + "message": "This member must have an 'override' modifier because it overrides a member in the base class '{0}'.", + "source": "generated" + }, + "4115": { + "body": "TypeScript reports this error: This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.", + "category": "Error", + "code": 4115, + "message": "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.", + "source": "generated" + }, + "4116": { + "body": "TypeScript reports this error: This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.", + "category": "Error", + "code": 4116, + "message": "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.", + "source": "generated" + }, + "4117": { + "body": "TypeScript reports this error: This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 4117, + "message": "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "4118": { + "body": "TypeScript reports this error: The type of this node cannot be serialized because its property '{0}' cannot be serialized.", + "category": "Error", + "code": 4118, + "message": "The type of this node cannot be serialized because its property '{0}' cannot be serialized.", + "source": "generated" + }, + "4119": { + "body": "TypeScript reports this error: This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.", + "category": "Error", + "code": 4119, + "message": "This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.", + "source": "generated" + }, + "4120": { + "body": "TypeScript reports this error: This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.", + "category": "Error", + "code": 4120, + "message": "This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.", + "source": "generated" + }, + "4121": { + "body": "TypeScript reports this error: This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.", + "category": "Error", + "code": 4121, + "message": "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.", + "source": "generated" + }, + "4122": { + "body": "TypeScript reports this error: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.", + "category": "Error", + "code": 4122, + "message": "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.", + "source": "generated" + }, + "4123": { + "body": "TypeScript reports this error: This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 4123, + "message": "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "4124": { + "body": "TypeScript reports this error: Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.", + "category": "Error", + "code": 4124, + "message": "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.", + "source": "generated" + }, + "4125": { + "body": "TypeScript reports this error: Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.", + "category": "Error", + "code": 4125, + "message": "Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.", + "source": "generated" + }, + "4126": { + "body": "TypeScript reports this error: One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.", + "category": "Error", + "code": 4126, + "message": "One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.", + "source": "generated" + }, + "4127": { + "body": "TypeScript reports this error: This member cannot have an 'override' modifier because its name is dynamic.", + "category": "Error", + "code": 4127, + "message": "This member cannot have an 'override' modifier because its name is dynamic.", + "source": "generated" + }, + "4128": { + "body": "TypeScript reports this error: This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic.", + "category": "Error", + "code": 4128, + "message": "This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic.", + "source": "generated" + }, + "5001": { + "body": "TypeScript reports this error: The current host does not support the '{0}' option.", + "category": "Error", + "code": 5001, + "message": "The current host does not support the '{0}' option.", + "source": "generated" + }, + "5009": { + "body": "TypeScript reports this error: Cannot find the common subdirectory path for the input files.", + "category": "Error", + "code": 5009, + "message": "Cannot find the common subdirectory path for the input files.", + "source": "generated" + }, + "5010": { + "body": "TypeScript reports this error: File specification cannot end in a recursive directory wildcard ('**'): '{0}'.", + "category": "Error", + "code": 5010, + "message": "File specification cannot end in a recursive directory wildcard ('**'): '{0}'.", + "source": "generated" + }, + "5011": { + "body": "TypeScript reports this error: The common source directory of '{0}' is '{1}'. The 'rootDir' setting must be explicitly set to this or another path to adjust your output's file layout.", + "category": "Error", + "code": 5011, + "message": "The common source directory of '{0}' is '{1}'. The 'rootDir' setting must be explicitly set to this or another path to adjust your output's file layout.", + "source": "generated" + }, + "5012": { + "body": "TypeScript reports this error: Cannot read file '{0}': {1}.", + "category": "Error", + "code": 5012, + "message": "Cannot read file '{0}': {1}.", + "source": "generated" + }, + "5023": { + "body": "TypeScript reports this error: Unknown compiler option '{0}'.", + "category": "Error", + "code": 5023, + "message": "Unknown compiler option '{0}'.", + "source": "generated" + }, + "5024": { + "body": "TypeScript reports this error: Compiler option '{0}' requires a value of type {1}.", + "category": "Error", + "code": 5024, + "message": "Compiler option '{0}' requires a value of type {1}.", + "source": "generated" + }, + "5025": { + "body": "TypeScript reports this error: Unknown compiler option '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 5025, + "message": "Unknown compiler option '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "5033": { + "body": "TypeScript reports this error: Could not write file '{0}': {1}.", + "category": "Error", + "code": 5033, + "message": "Could not write file '{0}': {1}.", + "source": "generated" + }, + "5042": { + "body": "TypeScript reports this error: Option 'project' cannot be mixed with source files on a command line.", + "category": "Error", + "code": 5042, + "message": "Option 'project' cannot be mixed with source files on a command line.", + "source": "generated" + }, + "5047": { + "body": "TypeScript reports this error: Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.", + "category": "Error", + "code": 5047, + "message": "Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.", + "source": "generated" + }, + "5051": { + "body": "TypeScript reports this error: Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.", + "category": "Error", + "code": 5051, + "message": "Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.", + "source": "generated" + }, + "5052": { + "body": "TypeScript reports this error: Option '{0}' cannot be specified without specifying option '{1}'.", + "category": "Error", + "code": 5052, + "message": "Option '{0}' cannot be specified without specifying option '{1}'.", + "source": "generated" + }, + "5053": { + "body": "TypeScript reports this error: Option '{0}' cannot be specified with option '{1}'.", + "category": "Error", + "code": 5053, + "message": "Option '{0}' cannot be specified with option '{1}'.", + "source": "generated" + }, + "5054": { + "body": "TypeScript reports this error: A 'tsconfig.json' file is already defined at: '{0}'.", + "category": "Error", + "code": 5054, + "message": "A 'tsconfig.json' file is already defined at: '{0}'.", + "source": "generated" + }, + "5055": { + "body": "TypeScript reports this error: Cannot write file '{0}' because it would overwrite input file.", + "category": "Error", + "code": 5055, + "message": "Cannot write file '{0}' because it would overwrite input file.", + "source": "generated" + }, + "5056": { + "body": "TypeScript reports this error: Cannot write file '{0}' because it would be overwritten by multiple input files.", + "category": "Error", + "code": 5056, + "message": "Cannot write file '{0}' because it would be overwritten by multiple input files.", + "source": "generated" + }, + "5057": { + "body": "TypeScript reports this error: Cannot find a tsconfig.json file at the specified directory: '{0}'.", + "category": "Error", + "code": 5057, + "message": "Cannot find a tsconfig.json file at the specified directory: '{0}'.", + "source": "generated" + }, + "5058": { + "body": "TypeScript reports this error: The specified path does not exist: '{0}'.", + "category": "Error", + "code": 5058, + "message": "The specified path does not exist: '{0}'.", + "source": "generated" + }, + "5059": { + "body": "TypeScript reports this error: Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.", + "category": "Error", + "code": 5059, + "message": "Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.", + "source": "generated" + }, + "5061": { + "body": "TypeScript reports this error: Pattern '{0}' can have at most one '*' character.", + "category": "Error", + "code": 5061, + "message": "Pattern '{0}' can have at most one '*' character.", + "source": "generated" + }, + "5062": { + "body": "TypeScript reports this error: Substitution '{0}' in pattern '{1}' can have at most one '*' character.", + "category": "Error", + "code": 5062, + "message": "Substitution '{0}' in pattern '{1}' can have at most one '*' character.", + "source": "generated" + }, + "5063": { + "body": "TypeScript reports this error: Substitutions for pattern '{0}' should be an array.", + "category": "Error", + "code": 5063, + "message": "Substitutions for pattern '{0}' should be an array.", + "source": "generated" + }, + "5064": { + "body": "TypeScript reports this error: Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.", + "category": "Error", + "code": 5064, + "message": "Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.", + "source": "generated" + }, + "5065": { + "body": "TypeScript reports this error: File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.", + "category": "Error", + "code": 5065, + "message": "File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.", + "source": "generated" + }, + "5066": { + "body": "TypeScript reports this error: Substitutions for pattern '{0}' shouldn't be an empty array.", + "category": "Error", + "code": 5066, + "message": "Substitutions for pattern '{0}' shouldn't be an empty array.", + "source": "generated" + }, + "5067": { + "body": "TypeScript reports this error: Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.", + "category": "Error", + "code": 5067, + "message": "Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.", + "source": "generated" + }, + "5068": { + "body": "TypeScript reports this error: Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.", + "category": "Error", + "code": 5068, + "message": "Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.", + "source": "generated" + }, + "5069": { + "body": "TypeScript reports this error: Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.", + "category": "Error", + "code": 5069, + "message": "Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.", + "source": "generated" + }, + "5070": { + "body": "TypeScript reports this error: Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.", + "category": "Error", + "code": 5070, + "message": "Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.", + "source": "generated" + }, + "5071": { + "body": "TypeScript reports this error: Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.", + "category": "Error", + "code": 5071, + "message": "Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.", + "source": "generated" + }, + "5072": { + "body": "TypeScript reports this error: Unknown build option '{0}'.", + "category": "Error", + "code": 5072, + "message": "Unknown build option '{0}'.", + "source": "generated" + }, + "5073": { + "body": "TypeScript reports this error: Build option '{0}' requires a value of type {1}.", + "category": "Error", + "code": 5073, + "message": "Build option '{0}' requires a value of type {1}.", + "source": "generated" + }, + "5074": { + "body": "TypeScript reports this error: Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.", + "category": "Error", + "code": 5074, + "message": "Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.", + "source": "generated" + }, + "5075": { + "body": "You're passing a type '{0}' into a slot which is too narrow. It could be as wide as anything assignable to '{2}'.", + "category": "Error", + "code": 5075, + "message": "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.", + "source": "curated" + }, + "5076": { + "body": "TypeScript reports this error: '{0}' and '{1}' operations cannot be mixed without parentheses.", + "category": "Error", + "code": 5076, + "message": "'{0}' and '{1}' operations cannot be mixed without parentheses.", + "source": "generated" + }, + "5077": { + "body": "TypeScript reports this error: Unknown build option '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 5077, + "message": "Unknown build option '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "5078": { + "body": "TypeScript reports this error: Unknown watch option '{0}'.", + "category": "Error", + "code": 5078, + "message": "Unknown watch option '{0}'.", + "source": "generated" + }, + "5079": { + "body": "TypeScript reports this error: Unknown watch option '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 5079, + "message": "Unknown watch option '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "5080": { + "body": "TypeScript reports this error: Watch option '{0}' requires a value of type {1}.", + "category": "Error", + "code": 5080, + "message": "Watch option '{0}' requires a value of type {1}.", + "source": "generated" + }, + "5081": { + "body": "TypeScript reports this error: Cannot find a tsconfig.json file at the current directory: {0}.", + "category": "Error", + "code": 5081, + "message": "Cannot find a tsconfig.json file at the current directory: {0}.", + "source": "generated" + }, + "5082": { + "body": "TypeScript reports this error: '{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.", + "category": "Error", + "code": 5082, + "message": "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.", + "source": "generated" + }, + "5083": { + "body": "TypeScript reports this error: Cannot read file '{0}'.", + "category": "Error", + "code": 5083, + "message": "Cannot read file '{0}'.", + "source": "generated" + }, + "5085": { + "body": "TypeScript reports this error: A tuple member cannot be both optional and rest.", + "category": "Error", + "code": 5085, + "message": "A tuple member cannot be both optional and rest.", + "source": "generated" + }, + "5086": { + "body": "TypeScript reports this error: A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.", + "category": "Error", + "code": 5086, + "message": "A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.", + "source": "generated" + }, + "5087": { + "body": "TypeScript reports this error: A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.", + "category": "Error", + "code": 5087, + "message": "A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.", + "source": "generated" + }, + "5088": { + "body": "TypeScript reports this error: The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.", + "category": "Error", + "code": 5088, + "message": "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.", + "source": "generated" + }, + "5089": { + "body": "TypeScript reports this error: Option '{0}' cannot be specified when option 'jsx' is '{1}'.", + "category": "Error", + "code": 5089, + "message": "Option '{0}' cannot be specified when option 'jsx' is '{1}'.", + "source": "generated" + }, + "5090": { + "body": "TypeScript reports this error: Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?", + "category": "Error", + "code": 5090, + "message": "Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?", + "source": "generated" + }, + "5091": { + "body": "TypeScript reports this error: Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.", + "category": "Error", + "code": 5091, + "message": "Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.", + "source": "generated" + }, + "5092": { + "body": "TypeScript reports this error: The root value of a '{0}' file must be an object.", + "category": "Error", + "code": 5092, + "message": "The root value of a '{0}' file must be an object.", + "source": "generated" + }, + "5093": { + "body": "TypeScript reports this error: Compiler option '--{0}' may only be used with '--build'.", + "category": "Error", + "code": 5093, + "message": "Compiler option '--{0}' may only be used with '--build'.", + "source": "generated" + }, + "5094": { + "body": "TypeScript reports this error: Compiler option '--{0}' may not be used with '--build'.", + "category": "Error", + "code": 5094, + "message": "Compiler option '--{0}' may not be used with '--build'.", + "source": "generated" + }, + "5095": { + "body": "TypeScript reports this error: Option '{0}' can only be used when 'module' is set to 'preserve', 'commonjs', or 'es2015' or later.", + "category": "Error", + "code": 5095, + "message": "Option '{0}' can only be used when 'module' is set to 'preserve', 'commonjs', or 'es2015' or later.", + "source": "generated" + }, + "5096": { + "body": "TypeScript reports this error: Option 'allowImportingTsExtensions' can only be used when one of 'noEmit', 'emitDeclarationOnly', or 'rewriteRelativeImportExtensions' is set.", + "category": "Error", + "code": 5096, + "message": "Option 'allowImportingTsExtensions' can only be used when one of 'noEmit', 'emitDeclarationOnly', or 'rewriteRelativeImportExtensions' is set.", + "source": "generated" + }, + "5097": { + "body": "TypeScript reports this error: An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.", + "category": "Error", + "code": 5097, + "message": "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.", + "source": "generated" + }, + "5098": { + "body": "TypeScript reports this error: Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.", + "category": "Error", + "code": 5098, + "message": "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.", + "source": "generated" + }, + "5101": { + "body": "TypeScript reports this error: Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.", + "category": "Error", + "code": 5101, + "message": "Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.", + "source": "generated" + }, + "5102": { + "body": "TypeScript reports this error: Option '{0}' has been removed. Please remove it from your configuration.", + "category": "Error", + "code": 5102, + "message": "Option '{0}' has been removed. Please remove it from your configuration.", + "source": "generated" + }, + "5103": { + "body": "TypeScript reports this error: Invalid value for '--ignoreDeprecations'.", + "category": "Error", + "code": 5103, + "message": "Invalid value for '--ignoreDeprecations'.", + "source": "generated" + }, + "5104": { + "body": "TypeScript reports this error: Option '{0}' is redundant and cannot be specified with option '{1}'.", + "category": "Error", + "code": 5104, + "message": "Option '{0}' is redundant and cannot be specified with option '{1}'.", + "source": "generated" + }, + "5105": { + "body": "TypeScript reports this error: Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.", + "category": "Error", + "code": 5105, + "message": "Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.", + "source": "generated" + }, + "5106": { + "body": "TypeScript reports: Use '{0}' instead.", + "category": "Message", + "code": 5106, + "message": "Use '{0}' instead.", + "source": "generated" + }, + "5107": { + "body": "TypeScript reports this error: Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.", + "category": "Error", + "code": 5107, + "message": "Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.", + "source": "generated" + }, + "5108": { + "body": "TypeScript reports this error: Option '{0}={1}' has been removed. Please remove it from your configuration.", + "category": "Error", + "code": 5108, + "message": "Option '{0}={1}' has been removed. Please remove it from your configuration.", + "source": "generated" + }, + "5109": { + "body": "TypeScript reports this error: Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.", + "category": "Error", + "code": 5109, + "message": "Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.", + "source": "generated" + }, + "5110": { + "body": "TypeScript reports this error: Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.", + "category": "Error", + "code": 5110, + "message": "Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.", + "source": "generated" + }, + "5111": { + "body": "TypeScript reports: Visit https://aka.ms/ts6 for migration information.", + "category": "Message", + "code": 5111, + "message": "Visit https://aka.ms/ts6 for migration information.", + "source": "generated" + }, + "5112": { + "body": "TypeScript reports this error: tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error.", + "category": "Error", + "code": 5112, + "message": "tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error.", + "source": "generated" + }, + "6000": { + "body": "TypeScript reports: Generates a sourcemap for each corresponding '.d.ts' file.", + "category": "Message", + "code": 6000, + "message": "Generates a sourcemap for each corresponding '.d.ts' file.", + "source": "generated" + }, + "6001": { + "body": "TypeScript reports: Concatenate and emit output to single file.", + "category": "Message", + "code": 6001, + "message": "Concatenate and emit output to single file.", + "source": "generated" + }, + "6002": { + "body": "TypeScript reports: Generates corresponding '.d.ts' file.", + "category": "Message", + "code": 6002, + "message": "Generates corresponding '.d.ts' file.", + "source": "generated" + }, + "6004": { + "body": "TypeScript reports: Specify the location where debugger should locate TypeScript files instead of source locations.", + "category": "Message", + "code": 6004, + "message": "Specify the location where debugger should locate TypeScript files instead of source locations.", + "source": "generated" + }, + "6005": { + "body": "TypeScript reports: Watch input files.", + "category": "Message", + "code": 6005, + "message": "Watch input files.", + "source": "generated" + }, + "6006": { + "body": "TypeScript reports: Redirect output structure to the directory.", + "category": "Message", + "code": 6006, + "message": "Redirect output structure to the directory.", + "source": "generated" + }, + "6007": { + "body": "TypeScript reports: Do not erase const enum declarations in generated code.", + "category": "Message", + "code": 6007, + "message": "Do not erase const enum declarations in generated code.", + "source": "generated" + }, + "6008": { + "body": "TypeScript reports: Do not emit outputs if any errors were reported.", + "category": "Message", + "code": 6008, + "message": "Do not emit outputs if any errors were reported.", + "source": "generated" + }, + "6009": { + "body": "TypeScript reports: Do not emit comments to output.", + "category": "Message", + "code": 6009, + "message": "Do not emit comments to output.", + "source": "generated" + }, + "6010": { + "body": "TypeScript reports: Do not emit outputs.", + "category": "Message", + "code": 6010, + "message": "Do not emit outputs.", + "source": "generated" + }, + "6011": { + "body": "TypeScript reports: Allow default imports from modules with no default export. This does not affect code emit, just typechecking.", + "category": "Message", + "code": 6011, + "message": "Allow default imports from modules with no default export. This does not affect code emit, just typechecking.", + "source": "generated" + }, + "6012": { + "body": "TypeScript reports: Skip type checking of declaration files.", + "category": "Message", + "code": 6012, + "message": "Skip type checking of declaration files.", + "source": "generated" + }, + "6013": { + "body": "TypeScript reports: Do not resolve the real path of symlinks.", + "category": "Message", + "code": 6013, + "message": "Do not resolve the real path of symlinks.", + "source": "generated" + }, + "6014": { + "body": "TypeScript reports: Only emit '.d.ts' declaration files.", + "category": "Message", + "code": 6014, + "message": "Only emit '.d.ts' declaration files.", + "source": "generated" + }, + "6015": { + "body": "TypeScript reports: Specify ECMAScript target version.", + "category": "Message", + "code": 6015, + "message": "Specify ECMAScript target version.", + "source": "generated" + }, + "6016": { + "body": "TypeScript reports: Specify module code generation.", + "category": "Message", + "code": 6016, + "message": "Specify module code generation.", + "source": "generated" + }, + "6017": { + "body": "TypeScript reports: Print this message.", + "category": "Message", + "code": 6017, + "message": "Print this message.", + "source": "generated" + }, + "6019": { + "body": "TypeScript reports: Print the compiler's version.", + "category": "Message", + "code": 6019, + "message": "Print the compiler's version.", + "source": "generated" + }, + "6020": { + "body": "TypeScript reports: Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.", + "category": "Message", + "code": 6020, + "message": "Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.", + "source": "generated" + }, + "6023": { + "body": "TypeScript reports: Syntax: {0}", + "category": "Message", + "code": 6023, + "message": "Syntax: {0}", + "source": "generated" + }, + "6024": { + "body": "TypeScript reports: options", + "category": "Message", + "code": 6024, + "message": "options", + "source": "generated" + }, + "6025": { + "body": "TypeScript reports: file", + "category": "Message", + "code": 6025, + "message": "file", + "source": "generated" + }, + "6026": { + "body": "TypeScript reports: Examples: {0}", + "category": "Message", + "code": 6026, + "message": "Examples: {0}", + "source": "generated" + }, + "6027": { + "body": "TypeScript reports: Options:", + "category": "Message", + "code": 6027, + "message": "Options:", + "source": "generated" + }, + "6029": { + "body": "TypeScript reports: Version {0}", + "category": "Message", + "code": 6029, + "message": "Version {0}", + "source": "generated" + }, + "6030": { + "body": "TypeScript reports: Insert command line options and files from a file.", + "category": "Message", + "code": 6030, + "message": "Insert command line options and files from a file.", + "source": "generated" + }, + "6031": { + "body": "TypeScript reports: Starting compilation in watch mode...", + "category": "Message", + "code": 6031, + "message": "Starting compilation in watch mode...", + "source": "generated" + }, + "6032": { + "body": "TypeScript reports: File change detected. Starting incremental compilation...", + "category": "Message", + "code": 6032, + "message": "File change detected. Starting incremental compilation...", + "source": "generated" + }, + "6034": { + "body": "TypeScript reports: KIND", + "category": "Message", + "code": 6034, + "message": "KIND", + "source": "generated" + }, + "6035": { + "body": "TypeScript reports: FILE", + "category": "Message", + "code": 6035, + "message": "FILE", + "source": "generated" + }, + "6036": { + "body": "TypeScript reports: VERSION", + "category": "Message", + "code": 6036, + "message": "VERSION", + "source": "generated" + }, + "6037": { + "body": "TypeScript reports: LOCATION", + "category": "Message", + "code": 6037, + "message": "LOCATION", + "source": "generated" + }, + "6038": { + "body": "TypeScript reports: DIRECTORY", + "category": "Message", + "code": 6038, + "message": "DIRECTORY", + "source": "generated" + }, + "6039": { + "body": "TypeScript reports: STRATEGY", + "category": "Message", + "code": 6039, + "message": "STRATEGY", + "source": "generated" + }, + "6040": { + "body": "TypeScript reports: FILE OR DIRECTORY", + "category": "Message", + "code": 6040, + "message": "FILE OR DIRECTORY", + "source": "generated" + }, + "6041": { + "body": "TypeScript reports: Errors Files", + "category": "Message", + "code": 6041, + "message": "Errors Files", + "source": "generated" + }, + "6043": { + "body": "TypeScript reports: Generates corresponding '.map' file.", + "category": "Message", + "code": 6043, + "message": "Generates corresponding '.map' file.", + "source": "generated" + }, + "6044": { + "body": "TypeScript reports this error: Compiler option '{0}' expects an argument.", + "category": "Error", + "code": 6044, + "message": "Compiler option '{0}' expects an argument.", + "source": "generated" + }, + "6045": { + "body": "TypeScript reports this error: Unterminated quoted string in response file '{0}'.", + "category": "Error", + "code": 6045, + "message": "Unterminated quoted string in response file '{0}'.", + "source": "generated" + }, + "6046": { + "body": "TypeScript reports this error: Argument for '{0}' option must be: {1}.", + "category": "Error", + "code": 6046, + "message": "Argument for '{0}' option must be: {1}.", + "source": "generated" + }, + "6048": { + "body": "TypeScript reports this error: Locale must be of the form or -. For example '{0}' or '{1}'.", + "category": "Error", + "code": 6048, + "message": "Locale must be of the form or -. For example '{0}' or '{1}'.", + "source": "generated" + }, + "6050": { + "body": "TypeScript reports this error: Unable to open file '{0}'.", + "category": "Error", + "code": 6050, + "message": "Unable to open file '{0}'.", + "source": "generated" + }, + "6051": { + "body": "TypeScript reports this error: Corrupted locale file {0}.", + "category": "Error", + "code": 6051, + "message": "Corrupted locale file {0}.", + "source": "generated" + }, + "6052": { + "body": "TypeScript reports: Raise error on expressions and declarations with an implied 'any' type.", + "category": "Message", + "code": 6052, + "message": "Raise error on expressions and declarations with an implied 'any' type.", + "source": "generated" + }, + "6053": { + "body": "TypeScript reports this error: File '{0}' not found.", + "category": "Error", + "code": 6053, + "message": "File '{0}' not found.", + "source": "generated" + }, + "6054": { + "body": "TypeScript reports this error: File '{0}' has an unsupported extension. The only supported extensions are {1}.", + "category": "Error", + "code": 6054, + "message": "File '{0}' has an unsupported extension. The only supported extensions are {1}.", + "source": "generated" + }, + "6055": { + "body": "TypeScript reports: Suppress noImplicitAny errors for indexing objects lacking index signatures.", + "category": "Message", + "code": 6055, + "message": "Suppress noImplicitAny errors for indexing objects lacking index signatures.", + "source": "generated" + }, + "6056": { + "body": "TypeScript reports: Do not emit declarations for code that has an '@internal' annotation.", + "category": "Message", + "code": 6056, + "message": "Do not emit declarations for code that has an '@internal' annotation.", + "source": "generated" + }, + "6058": { + "body": "TypeScript reports: Specify the root directory of input files. Use to control the output directory structure with --outDir.", + "category": "Message", + "code": 6058, + "message": "Specify the root directory of input files. Use to control the output directory structure with --outDir.", + "source": "generated" + }, + "6059": { + "body": "TypeScript reports this error: File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.", + "category": "Error", + "code": 6059, + "message": "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.", + "source": "generated" + }, + "6060": { + "body": "TypeScript reports: Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).", + "category": "Message", + "code": 6060, + "message": "Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).", + "source": "generated" + }, + "6061": { + "body": "TypeScript reports: NEWLINE", + "category": "Message", + "code": 6061, + "message": "NEWLINE", + "source": "generated" + }, + "6064": { + "body": "TypeScript reports this error: Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.", + "category": "Error", + "code": 6064, + "message": "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.", + "source": "generated" + }, + "6065": { + "body": "TypeScript reports: Enables experimental support for ES7 decorators.", + "category": "Message", + "code": 6065, + "message": "Enables experimental support for ES7 decorators.", + "source": "generated" + }, + "6066": { + "body": "TypeScript reports: Enables experimental support for emitting type metadata for decorators.", + "category": "Message", + "code": 6066, + "message": "Enables experimental support for emitting type metadata for decorators.", + "source": "generated" + }, + "6070": { + "body": "TypeScript reports: Initializes a TypeScript project and creates a tsconfig.json file.", + "category": "Message", + "code": 6070, + "message": "Initializes a TypeScript project and creates a tsconfig.json file.", + "source": "generated" + }, + "6071": { + "body": "TypeScript reports: Successfully created a tsconfig.json file.", + "category": "Message", + "code": 6071, + "message": "Successfully created a tsconfig.json file.", + "source": "generated" + }, + "6072": { + "body": "TypeScript reports: Suppress excess property checks for object literals.", + "category": "Message", + "code": 6072, + "message": "Suppress excess property checks for object literals.", + "source": "generated" + }, + "6073": { + "body": "TypeScript reports: Stylize errors and messages using color and context (experimental).", + "category": "Message", + "code": 6073, + "message": "Stylize errors and messages using color and context (experimental).", + "source": "generated" + }, + "6074": { + "body": "TypeScript reports: Do not report errors on unused labels.", + "category": "Message", + "code": 6074, + "message": "Do not report errors on unused labels.", + "source": "generated" + }, + "6075": { + "body": "TypeScript reports: Report error when not all code paths in function return a value.", + "category": "Message", + "code": 6075, + "message": "Report error when not all code paths in function return a value.", + "source": "generated" + }, + "6076": { + "body": "TypeScript reports: Report errors for fallthrough cases in switch statement.", + "category": "Message", + "code": 6076, + "message": "Report errors for fallthrough cases in switch statement.", + "source": "generated" + }, + "6077": { + "body": "TypeScript reports: Do not report errors on unreachable code.", + "category": "Message", + "code": 6077, + "message": "Do not report errors on unreachable code.", + "source": "generated" + }, + "6078": { + "body": "TypeScript reports: Disallow inconsistently-cased references to the same file.", + "category": "Message", + "code": 6078, + "message": "Disallow inconsistently-cased references to the same file.", + "source": "generated" + }, + "6079": { + "body": "TypeScript reports: Specify library files to be included in the compilation.", + "category": "Message", + "code": 6079, + "message": "Specify library files to be included in the compilation.", + "source": "generated" + }, + "6080": { + "body": "TypeScript reports: Specify JSX code generation.", + "category": "Message", + "code": 6080, + "message": "Specify JSX code generation.", + "source": "generated" + }, + "6082": { + "body": "TypeScript reports this error: Only 'amd' and 'system' modules are supported alongside --{0}.", + "category": "Error", + "code": 6082, + "message": "Only 'amd' and 'system' modules are supported alongside --{0}.", + "source": "generated" + }, + "6083": { + "body": "TypeScript reports: Base directory to resolve non-absolute module names.", + "category": "Message", + "code": 6083, + "message": "Base directory to resolve non-absolute module names.", + "source": "generated" + }, + "6084": { + "body": "TypeScript reports: [Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit", + "category": "Message", + "code": 6084, + "message": "[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit", + "source": "generated" + }, + "6085": { + "body": "TypeScript reports: Enable tracing of the name resolution process.", + "category": "Message", + "code": 6085, + "message": "Enable tracing of the name resolution process.", + "source": "generated" + }, + "6086": { + "body": "TypeScript reports: ======== Resolving module '{0}' from '{1}'. ========", + "category": "Message", + "code": 6086, + "message": "======== Resolving module '{0}' from '{1}'. ========", + "source": "generated" + }, + "6087": { + "body": "TypeScript reports: Explicitly specified module resolution kind: '{0}'.", + "category": "Message", + "code": 6087, + "message": "Explicitly specified module resolution kind: '{0}'.", + "source": "generated" + }, + "6088": { + "body": "TypeScript reports: Module resolution kind is not specified, using '{0}'.", + "category": "Message", + "code": 6088, + "message": "Module resolution kind is not specified, using '{0}'.", + "source": "generated" + }, + "6089": { + "body": "TypeScript reports: ======== Module name '{0}' was successfully resolved to '{1}'. ========", + "category": "Message", + "code": 6089, + "message": "======== Module name '{0}' was successfully resolved to '{1}'. ========", + "source": "generated" + }, + "6090": { + "body": "TypeScript reports: ======== Module name '{0}' was not resolved. ========", + "category": "Message", + "code": 6090, + "message": "======== Module name '{0}' was not resolved. ========", + "source": "generated" + }, + "6091": { + "body": "TypeScript reports: 'paths' option is specified, looking for a pattern to match module name '{0}'.", + "category": "Message", + "code": 6091, + "message": "'paths' option is specified, looking for a pattern to match module name '{0}'.", + "source": "generated" + }, + "6092": { + "body": "TypeScript reports: Module name '{0}', matched pattern '{1}'.", + "category": "Message", + "code": 6092, + "message": "Module name '{0}', matched pattern '{1}'.", + "source": "generated" + }, + "6093": { + "body": "TypeScript reports: Trying substitution '{0}', candidate module location: '{1}'.", + "category": "Message", + "code": 6093, + "message": "Trying substitution '{0}', candidate module location: '{1}'.", + "source": "generated" + }, + "6094": { + "body": "TypeScript reports: Resolving module name '{0}' relative to base url '{1}' - '{2}'.", + "category": "Message", + "code": 6094, + "message": "Resolving module name '{0}' relative to base url '{1}' - '{2}'.", + "source": "generated" + }, + "6095": { + "body": "TypeScript reports: Loading module as file / folder, candidate module location '{0}', target file types: {1}.", + "category": "Message", + "code": 6095, + "message": "Loading module as file / folder, candidate module location '{0}', target file types: {1}.", + "source": "generated" + }, + "6096": { + "body": "TypeScript reports: File '{0}' does not exist.", + "category": "Message", + "code": 6096, + "message": "File '{0}' does not exist.", + "source": "generated" + }, + "6097": { + "body": "TypeScript reports: File '{0}' exists - use it as a name resolution result.", + "category": "Message", + "code": 6097, + "message": "File '{0}' exists - use it as a name resolution result.", + "source": "generated" + }, + "6098": { + "body": "TypeScript reports: Loading module '{0}' from 'node_modules' folder, target file types: {1}.", + "category": "Message", + "code": 6098, + "message": "Loading module '{0}' from 'node_modules' folder, target file types: {1}.", + "source": "generated" + }, + "6099": { + "body": "TypeScript reports: Found 'package.json' at '{0}'.", + "category": "Message", + "code": 6099, + "message": "Found 'package.json' at '{0}'.", + "source": "generated" + }, + "6100": { + "body": "TypeScript reports: 'package.json' does not have a '{0}' field.", + "category": "Message", + "code": 6100, + "message": "'package.json' does not have a '{0}' field.", + "source": "generated" + }, + "6101": { + "body": "TypeScript reports: 'package.json' has '{0}' field '{1}' that references '{2}'.", + "category": "Message", + "code": 6101, + "message": "'package.json' has '{0}' field '{1}' that references '{2}'.", + "source": "generated" + }, + "6102": { + "body": "TypeScript reports: Allow javascript files to be compiled.", + "category": "Message", + "code": 6102, + "message": "Allow javascript files to be compiled.", + "source": "generated" + }, + "6104": { + "body": "TypeScript reports: Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.", + "category": "Message", + "code": 6104, + "message": "Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.", + "source": "generated" + }, + "6105": { + "body": "TypeScript reports: Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.", + "category": "Message", + "code": 6105, + "message": "Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.", + "source": "generated" + }, + "6106": { + "body": "TypeScript reports: 'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.", + "category": "Message", + "code": 6106, + "message": "'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.", + "source": "generated" + }, + "6107": { + "body": "TypeScript reports: 'rootDirs' option is set, using it to resolve relative module name '{0}'.", + "category": "Message", + "code": 6107, + "message": "'rootDirs' option is set, using it to resolve relative module name '{0}'.", + "source": "generated" + }, + "6108": { + "body": "TypeScript reports: Longest matching prefix for '{0}' is '{1}'.", + "category": "Message", + "code": 6108, + "message": "Longest matching prefix for '{0}' is '{1}'.", + "source": "generated" + }, + "6109": { + "body": "TypeScript reports: Loading '{0}' from the root dir '{1}', candidate location '{2}'.", + "category": "Message", + "code": 6109, + "message": "Loading '{0}' from the root dir '{1}', candidate location '{2}'.", + "source": "generated" + }, + "6110": { + "body": "TypeScript reports: Trying other entries in 'rootDirs'.", + "category": "Message", + "code": 6110, + "message": "Trying other entries in 'rootDirs'.", + "source": "generated" + }, + "6111": { + "body": "TypeScript reports: Module resolution using 'rootDirs' has failed.", + "category": "Message", + "code": 6111, + "message": "Module resolution using 'rootDirs' has failed.", + "source": "generated" + }, + "6112": { + "body": "TypeScript reports: Do not emit 'use strict' directives in module output.", + "category": "Message", + "code": 6112, + "message": "Do not emit 'use strict' directives in module output.", + "source": "generated" + }, + "6113": { + "body": "TypeScript reports: Enable strict null checks.", + "category": "Message", + "code": 6113, + "message": "Enable strict null checks.", + "source": "generated" + }, + "6114": { + "body": "TypeScript reports this error: Unknown option 'excludes'. Did you mean 'exclude'?", + "category": "Error", + "code": 6114, + "message": "Unknown option 'excludes'. Did you mean 'exclude'?", + "source": "generated" + }, + "6115": { + "body": "TypeScript reports: Raise error on 'this' expressions with an implied 'any' type.", + "category": "Message", + "code": 6115, + "message": "Raise error on 'this' expressions with an implied 'any' type.", + "source": "generated" + }, + "6116": { + "body": "TypeScript reports: ======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========", + "category": "Message", + "code": 6116, + "message": "======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========", + "source": "generated" + }, + "6119": { + "body": "TypeScript reports: ======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========", + "category": "Message", + "code": 6119, + "message": "======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========", + "source": "generated" + }, + "6120": { + "body": "TypeScript reports: ======== Type reference directive '{0}' was not resolved. ========", + "category": "Message", + "code": 6120, + "message": "======== Type reference directive '{0}' was not resolved. ========", + "source": "generated" + }, + "6121": { + "body": "TypeScript reports: Resolving with primary search path '{0}'.", + "category": "Message", + "code": 6121, + "message": "Resolving with primary search path '{0}'.", + "source": "generated" + }, + "6122": { + "body": "TypeScript reports: Root directory cannot be determined, skipping primary search paths.", + "category": "Message", + "code": 6122, + "message": "Root directory cannot be determined, skipping primary search paths.", + "source": "generated" + }, + "6123": { + "body": "TypeScript reports: ======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========", + "category": "Message", + "code": 6123, + "message": "======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========", + "source": "generated" + }, + "6124": { + "body": "TypeScript reports: Type declaration files to be included in compilation.", + "category": "Message", + "code": 6124, + "message": "Type declaration files to be included in compilation.", + "source": "generated" + }, + "6125": { + "body": "TypeScript reports: Looking up in 'node_modules' folder, initial location '{0}'.", + "category": "Message", + "code": 6125, + "message": "Looking up in 'node_modules' folder, initial location '{0}'.", + "source": "generated" + }, + "6126": { + "body": "TypeScript reports: Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.", + "category": "Message", + "code": 6126, + "message": "Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.", + "source": "generated" + }, + "6127": { + "body": "TypeScript reports: ======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========", + "category": "Message", + "code": 6127, + "message": "======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========", + "source": "generated" + }, + "6128": { + "body": "TypeScript reports: ======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========", + "category": "Message", + "code": 6128, + "message": "======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========", + "source": "generated" + }, + "6130": { + "body": "TypeScript reports: Resolving real path for '{0}', result '{1}'.", + "category": "Message", + "code": 6130, + "message": "Resolving real path for '{0}', result '{1}'.", + "source": "generated" + }, + "6131": { + "body": "TypeScript reports this error: Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.", + "category": "Error", + "code": 6131, + "message": "Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.", + "source": "generated" + }, + "6132": { + "body": "TypeScript reports: File name '{0}' has a '{1}' extension - stripping it.", + "category": "Message", + "code": 6132, + "message": "File name '{0}' has a '{1}' extension - stripping it.", + "source": "generated" + }, + "6133": { + "body": "I noticed that '{0}' has been declared, but it's never used in the code.", + "category": "Error", + "code": 6133, + "message": "'{0}' is declared but its value is never read.", + "source": "curated" + }, + "6134": { + "body": "TypeScript reports: Report errors on unused locals.", + "category": "Message", + "code": 6134, + "message": "Report errors on unused locals.", + "source": "generated" + }, + "6135": { + "body": "TypeScript reports: Report errors on unused parameters.", + "category": "Message", + "code": 6135, + "message": "Report errors on unused parameters.", + "source": "generated" + }, + "6136": { + "body": "TypeScript reports: The maximum dependency depth to search under node_modules and load JavaScript files.", + "category": "Message", + "code": 6136, + "message": "The maximum dependency depth to search under node_modules and load JavaScript files.", + "source": "generated" + }, + "6137": { + "body": "TypeScript reports this error: Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.", + "category": "Error", + "code": 6137, + "message": "Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.", + "source": "generated" + }, + "6138": { + "body": "TypeScript reports this error: Property '{0}' is declared but its value is never read.", + "category": "Error", + "code": 6138, + "message": "Property '{0}' is declared but its value is never read.", + "source": "generated" + }, + "6139": { + "body": "TypeScript reports: Import emit helpers from 'tslib'.", + "category": "Message", + "code": 6139, + "message": "Import emit helpers from 'tslib'.", + "source": "generated" + }, + "6140": { + "body": "TypeScript reports this error: Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.", + "category": "Error", + "code": 6140, + "message": "Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.", + "source": "generated" + }, + "6141": { + "body": "TypeScript reports: Parse in strict mode and emit \"use strict\" for each source file.", + "category": "Message", + "code": 6141, + "message": "Parse in strict mode and emit \"use strict\" for each source file.", + "source": "generated" + }, + "6142": { + "body": "You can't import `.jsx` or `.tsx` files until you set `jsx` in your `tsconfig.json`.", + "category": "Error", + "code": 6142, + "message": "Module '{0}' was resolved to '{1}', but '--jsx' is not set.", + "source": "curated" + }, + "6144": { + "body": "TypeScript reports: Module '{0}' was resolved as locally declared ambient module in file '{1}'.", + "category": "Message", + "code": 6144, + "message": "Module '{0}' was resolved as locally declared ambient module in file '{1}'.", + "source": "generated" + }, + "6146": { + "body": "TypeScript reports: Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.", + "category": "Message", + "code": 6146, + "message": "Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.", + "source": "generated" + }, + "6147": { + "body": "TypeScript reports: Resolution for module '{0}' was found in cache from location '{1}'.", + "category": "Message", + "code": 6147, + "message": "Resolution for module '{0}' was found in cache from location '{1}'.", + "source": "generated" + }, + "6148": { + "body": "TypeScript reports: Directory '{0}' does not exist, skipping all lookups in it.", + "category": "Message", + "code": 6148, + "message": "Directory '{0}' does not exist, skipping all lookups in it.", + "source": "generated" + }, + "6149": { + "body": "TypeScript reports: Show diagnostic information.", + "category": "Message", + "code": 6149, + "message": "Show diagnostic information.", + "source": "generated" + }, + "6150": { + "body": "TypeScript reports: Show verbose diagnostic information.", + "category": "Message", + "code": 6150, + "message": "Show verbose diagnostic information.", + "source": "generated" + }, + "6151": { + "body": "TypeScript reports: Emit a single file with source maps instead of having a separate file.", + "category": "Message", + "code": 6151, + "message": "Emit a single file with source maps instead of having a separate file.", + "source": "generated" + }, + "6152": { + "body": "TypeScript reports: Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.", + "category": "Message", + "code": 6152, + "message": "Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.", + "source": "generated" + }, + "6153": { + "body": "TypeScript reports: Transpile each file as a separate module (similar to 'ts.transpileModule').", + "category": "Message", + "code": 6153, + "message": "Transpile each file as a separate module (similar to 'ts.transpileModule').", + "source": "generated" + }, + "6154": { + "body": "TypeScript reports: Print names of generated files part of the compilation.", + "category": "Message", + "code": 6154, + "message": "Print names of generated files part of the compilation.", + "source": "generated" + }, + "6155": { + "body": "TypeScript reports: Print names of files part of the compilation.", + "category": "Message", + "code": 6155, + "message": "Print names of files part of the compilation.", + "source": "generated" + }, + "6156": { + "body": "TypeScript reports: The locale used when displaying messages to the user (e.g. 'en-us')", + "category": "Message", + "code": 6156, + "message": "The locale used when displaying messages to the user (e.g. 'en-us')", + "source": "generated" + }, + "6157": { + "body": "TypeScript reports: Do not generate custom helper functions like '__extends' in compiled output.", + "category": "Message", + "code": 6157, + "message": "Do not generate custom helper functions like '__extends' in compiled output.", + "source": "generated" + }, + "6158": { + "body": "TypeScript reports: Do not include the default library file (lib.d.ts).", + "category": "Message", + "code": 6158, + "message": "Do not include the default library file (lib.d.ts).", + "source": "generated" + }, + "6159": { + "body": "TypeScript reports: Do not add triple-slash references or imported modules to the list of compiled files.", + "category": "Message", + "code": 6159, + "message": "Do not add triple-slash references or imported modules to the list of compiled files.", + "source": "generated" + }, + "6160": { + "body": "TypeScript reports: [Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.", + "category": "Message", + "code": 6160, + "message": "[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.", + "source": "generated" + }, + "6161": { + "body": "TypeScript reports: List of folders to include type definitions from.", + "category": "Message", + "code": 6161, + "message": "List of folders to include type definitions from.", + "source": "generated" + }, + "6162": { + "body": "TypeScript reports: Disable size limitations on JavaScript projects.", + "category": "Message", + "code": 6162, + "message": "Disable size limitations on JavaScript projects.", + "source": "generated" + }, + "6163": { + "body": "TypeScript reports: The character set of the input files.", + "category": "Message", + "code": 6163, + "message": "The character set of the input files.", + "source": "generated" + }, + "6164": { + "body": "TypeScript reports: Skipping module '{0}' that looks like an absolute URI, target file types: {1}.", + "category": "Message", + "code": 6164, + "message": "Skipping module '{0}' that looks like an absolute URI, target file types: {1}.", + "source": "generated" + }, + "6165": { + "body": "TypeScript reports: Do not truncate error messages.", + "category": "Message", + "code": 6165, + "message": "Do not truncate error messages.", + "source": "generated" + }, + "6166": { + "body": "TypeScript reports: Output directory for generated declaration files.", + "category": "Message", + "code": 6166, + "message": "Output directory for generated declaration files.", + "source": "generated" + }, + "6167": { + "body": "TypeScript reports: A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.", + "category": "Message", + "code": 6167, + "message": "A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.", + "source": "generated" + }, + "6168": { + "body": "TypeScript reports: List of root folders whose combined content represents the structure of the project at runtime.", + "category": "Message", + "code": 6168, + "message": "List of root folders whose combined content represents the structure of the project at runtime.", + "source": "generated" + }, + "6169": { + "body": "TypeScript reports: Show all compiler options.", + "category": "Message", + "code": 6169, + "message": "Show all compiler options.", + "source": "generated" + }, + "6170": { + "body": "TypeScript reports: [Deprecated] Use '--outFile' instead. Concatenate and emit output to single file", + "category": "Message", + "code": 6170, + "message": "[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file", + "source": "generated" + }, + "6171": { + "body": "TypeScript reports: Command-line Options", + "category": "Message", + "code": 6171, + "message": "Command-line Options", + "source": "generated" + }, + "6179": { + "body": "TypeScript reports: Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.", + "category": "Message", + "code": 6179, + "message": "Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.", + "source": "generated" + }, + "6180": { + "body": "TypeScript reports: Enable all strict type-checking options.", + "category": "Message", + "code": 6180, + "message": "Enable all strict type-checking options.", + "source": "generated" + }, + "6182": { + "body": "TypeScript reports: Scoped package detected, looking in '{0}'", + "category": "Message", + "code": 6182, + "message": "Scoped package detected, looking in '{0}'", + "source": "generated" + }, + "6183": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.", + "category": "Message", + "code": 6183, + "message": "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.", + "source": "generated" + }, + "6184": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.", + "category": "Message", + "code": 6184, + "message": "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.", + "source": "generated" + }, + "6186": { + "body": "TypeScript reports: Enable strict checking of function types.", + "category": "Message", + "code": 6186, + "message": "Enable strict checking of function types.", + "source": "generated" + }, + "6187": { + "body": "TypeScript reports: Enable strict checking of property initialization in classes.", + "category": "Message", + "code": 6187, + "message": "Enable strict checking of property initialization in classes.", + "source": "generated" + }, + "6188": { + "body": "TypeScript reports this error: Numeric separators are not allowed here.", + "category": "Error", + "code": 6188, + "message": "Numeric separators are not allowed here.", + "source": "generated" + }, + "6189": { + "body": "TypeScript reports this error: Multiple consecutive numeric separators are not permitted.", + "category": "Error", + "code": 6189, + "message": "Multiple consecutive numeric separators are not permitted.", + "source": "generated" + }, + "6191": { + "body": "TypeScript reports: Whether to keep outdated console output in watch mode instead of clearing the screen.", + "category": "Message", + "code": 6191, + "message": "Whether to keep outdated console output in watch mode instead of clearing the screen.", + "source": "generated" + }, + "6192": { + "body": "TypeScript reports this error: All imports in import declaration are unused.", + "category": "Error", + "code": 6192, + "message": "All imports in import declaration are unused.", + "source": "generated" + }, + "6193": { + "body": "TypeScript reports: Found 1 error. Watching for file changes.", + "category": "Message", + "code": 6193, + "message": "Found 1 error. Watching for file changes.", + "source": "generated" + }, + "6194": { + "body": "TypeScript reports: Found {0} errors. Watching for file changes.", + "category": "Message", + "code": 6194, + "message": "Found {0} errors. Watching for file changes.", + "source": "generated" + }, + "6195": { + "body": "TypeScript reports: Resolve 'keyof' to string valued property names only (no numbers or symbols).", + "category": "Message", + "code": 6195, + "message": "Resolve 'keyof' to string valued property names only (no numbers or symbols).", + "source": "generated" + }, + "6196": { + "body": "TypeScript reports this error: '{0}' is declared but never used.", + "category": "Error", + "code": 6196, + "message": "'{0}' is declared but never used.", + "source": "generated" + }, + "6197": { + "body": "TypeScript reports: Include modules imported with '.json' extension", + "category": "Message", + "code": 6197, + "message": "Include modules imported with '.json' extension", + "source": "generated" + }, + "6198": { + "body": "TypeScript reports this error: All destructured elements are unused.", + "category": "Error", + "code": 6198, + "message": "All destructured elements are unused.", + "source": "generated" + }, + "6199": { + "body": "TypeScript reports this error: All variables are unused.", + "category": "Error", + "code": 6199, + "message": "All variables are unused.", + "source": "generated" + }, + "6200": { + "body": "TypeScript reports this error: Definitions of the following identifiers conflict with those in another file: {0}", + "category": "Error", + "code": 6200, + "message": "Definitions of the following identifiers conflict with those in another file: {0}", + "source": "generated" + }, + "6201": { + "body": "TypeScript reports: Conflicts are in this file.", + "category": "Message", + "code": 6201, + "message": "Conflicts are in this file.", + "source": "generated" + }, + "6202": { + "body": "TypeScript reports this error: Project references may not form a circular graph. Cycle detected: {0}", + "category": "Error", + "code": 6202, + "message": "Project references may not form a circular graph. Cycle detected: {0}", + "source": "generated" + }, + "6203": { + "body": "TypeScript reports: '{0}' was also declared here.", + "category": "Message", + "code": 6203, + "message": "'{0}' was also declared here.", + "source": "generated" + }, + "6204": { + "body": "TypeScript reports: and here.", + "category": "Message", + "code": 6204, + "message": "and here.", + "source": "generated" + }, + "6205": { + "body": "TypeScript reports this error: All type parameters are unused.", + "category": "Error", + "code": 6205, + "message": "All type parameters are unused.", + "source": "generated" + }, + "6206": { + "body": "TypeScript reports: 'package.json' has a 'typesVersions' field with version-specific path mappings.", + "category": "Message", + "code": 6206, + "message": "'package.json' has a 'typesVersions' field with version-specific path mappings.", + "source": "generated" + }, + "6207": { + "body": "TypeScript reports: 'package.json' does not have a 'typesVersions' entry that matches version '{0}'.", + "category": "Message", + "code": 6207, + "message": "'package.json' does not have a 'typesVersions' entry that matches version '{0}'.", + "source": "generated" + }, + "6208": { + "body": "TypeScript reports: 'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.", + "category": "Message", + "code": 6208, + "message": "'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.", + "source": "generated" + }, + "6209": { + "body": "TypeScript reports: 'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.", + "category": "Message", + "code": 6209, + "message": "'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.", + "source": "generated" + }, + "6210": { + "body": "TypeScript reports: An argument for '{0}' was not provided.", + "category": "Message", + "code": 6210, + "message": "An argument for '{0}' was not provided.", + "source": "generated" + }, + "6211": { + "body": "TypeScript reports: An argument matching this binding pattern was not provided.", + "category": "Message", + "code": 6211, + "message": "An argument matching this binding pattern was not provided.", + "source": "generated" + }, + "6212": { + "body": "TypeScript reports: Did you mean to call this expression?", + "category": "Message", + "code": 6212, + "message": "Did you mean to call this expression?", + "source": "generated" + }, + "6213": { + "body": "TypeScript reports: Did you mean to use 'new' with this expression?", + "category": "Message", + "code": 6213, + "message": "Did you mean to use 'new' with this expression?", + "source": "generated" + }, + "6214": { + "body": "TypeScript reports: Enable strict 'bind', 'call', and 'apply' methods on functions.", + "category": "Message", + "code": 6214, + "message": "Enable strict 'bind', 'call', and 'apply' methods on functions.", + "source": "generated" + }, + "6215": { + "body": "TypeScript reports: Using compiler options of project reference redirect '{0}'.", + "category": "Message", + "code": 6215, + "message": "Using compiler options of project reference redirect '{0}'.", + "source": "generated" + }, + "6216": { + "body": "TypeScript reports: Found 1 error.", + "category": "Message", + "code": 6216, + "message": "Found 1 error.", + "source": "generated" + }, + "6217": { + "body": "TypeScript reports: Found {0} errors.", + "category": "Message", + "code": 6217, + "message": "Found {0} errors.", + "source": "generated" + }, + "6218": { + "body": "TypeScript reports: ======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========", + "category": "Message", + "code": 6218, + "message": "======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========", + "source": "generated" + }, + "6219": { + "body": "TypeScript reports: ======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========", + "category": "Message", + "code": 6219, + "message": "======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========", + "source": "generated" + }, + "6220": { + "body": "TypeScript reports: 'package.json' had a falsy '{0}' field.", + "category": "Message", + "code": 6220, + "message": "'package.json' had a falsy '{0}' field.", + "source": "generated" + }, + "6221": { + "body": "TypeScript reports: Disable use of source files instead of declaration files from referenced projects.", + "category": "Message", + "code": 6221, + "message": "Disable use of source files instead of declaration files from referenced projects.", + "source": "generated" + }, + "6222": { + "body": "TypeScript reports: Emit class fields with Define instead of Set.", + "category": "Message", + "code": 6222, + "message": "Emit class fields with Define instead of Set.", + "source": "generated" + }, + "6223": { + "body": "TypeScript reports: Generates a CPU profile.", + "category": "Message", + "code": 6223, + "message": "Generates a CPU profile.", + "source": "generated" + }, + "6224": { + "body": "TypeScript reports: Disable solution searching for this project.", + "category": "Message", + "code": 6224, + "message": "Disable solution searching for this project.", + "source": "generated" + }, + "6225": { + "body": "TypeScript reports: Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.", + "category": "Message", + "code": 6225, + "message": "Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.", + "source": "generated" + }, + "6226": { + "body": "TypeScript reports: Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.", + "category": "Message", + "code": 6226, + "message": "Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.", + "source": "generated" + }, + "6227": { + "body": "TypeScript reports: Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.", + "category": "Message", + "code": 6227, + "message": "Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.", + "source": "generated" + }, + "6229": { + "body": "TypeScript reports this error: Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.", + "category": "Error", + "code": 6229, + "message": "Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.", + "source": "generated" + }, + "6230": { + "body": "TypeScript reports this error: Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.", + "category": "Error", + "code": 6230, + "message": "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.", + "source": "generated" + }, + "6231": { + "body": "TypeScript reports this error: Could not resolve the path '{0}' with the extensions: {1}.", + "category": "Error", + "code": 6231, + "message": "Could not resolve the path '{0}' with the extensions: {1}.", + "source": "generated" + }, + "6232": { + "body": "TypeScript reports this error: Declaration augments declaration in another file. This cannot be serialized.", + "category": "Error", + "code": 6232, + "message": "Declaration augments declaration in another file. This cannot be serialized.", + "source": "generated" + }, + "6233": { + "body": "TypeScript reports this error: This is the declaration being augmented. Consider moving the augmenting declaration into the same file.", + "category": "Error", + "code": 6233, + "message": "This is the declaration being augmented. Consider moving the augmenting declaration into the same file.", + "source": "generated" + }, + "6234": { + "body": "TypeScript reports this error: This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?", + "category": "Error", + "code": 6234, + "message": "This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?", + "source": "generated" + }, + "6235": { + "body": "TypeScript reports: Disable loading referenced projects.", + "category": "Message", + "code": 6235, + "message": "Disable loading referenced projects.", + "source": "generated" + }, + "6236": { + "body": "TypeScript reports this error: Arguments for the rest parameter '{0}' were not provided.", + "category": "Error", + "code": 6236, + "message": "Arguments for the rest parameter '{0}' were not provided.", + "source": "generated" + }, + "6237": { + "body": "TypeScript reports: Generates an event trace and a list of types.", + "category": "Message", + "code": 6237, + "message": "Generates an event trace and a list of types.", + "source": "generated" + }, + "6238": { + "body": "TypeScript reports this error: Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react", + "category": "Error", + "code": 6238, + "message": "Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react", + "source": "generated" + }, + "6239": { + "body": "TypeScript reports: File '{0}' exists according to earlier cached lookups.", + "category": "Message", + "code": 6239, + "message": "File '{0}' exists according to earlier cached lookups.", + "source": "generated" + }, + "6240": { + "body": "TypeScript reports: File '{0}' does not exist according to earlier cached lookups.", + "category": "Message", + "code": 6240, + "message": "File '{0}' does not exist according to earlier cached lookups.", + "source": "generated" + }, + "6241": { + "body": "TypeScript reports: Resolution for type reference directive '{0}' was found in cache from location '{1}'.", + "category": "Message", + "code": 6241, + "message": "Resolution for type reference directive '{0}' was found in cache from location '{1}'.", + "source": "generated" + }, + "6242": { + "body": "TypeScript reports: ======== Resolving type reference directive '{0}', containing file '{1}'. ========", + "category": "Message", + "code": 6242, + "message": "======== Resolving type reference directive '{0}', containing file '{1}'. ========", + "source": "generated" + }, + "6243": { + "body": "TypeScript reports: Interpret optional property types as written, rather than adding 'undefined'.", + "category": "Message", + "code": 6243, + "message": "Interpret optional property types as written, rather than adding 'undefined'.", + "source": "generated" + }, + "6244": { + "body": "TypeScript reports: Modules", + "category": "Message", + "code": 6244, + "message": "Modules", + "source": "generated" + }, + "6245": { + "body": "TypeScript reports: File Management", + "category": "Message", + "code": 6245, + "message": "File Management", + "source": "generated" + }, + "6246": { + "body": "TypeScript reports: Emit", + "category": "Message", + "code": 6246, + "message": "Emit", + "source": "generated" + }, + "6247": { + "body": "TypeScript reports: JavaScript Support", + "category": "Message", + "code": 6247, + "message": "JavaScript Support", + "source": "generated" + }, + "6248": { + "body": "TypeScript reports: Type Checking", + "category": "Message", + "code": 6248, + "message": "Type Checking", + "source": "generated" + }, + "6249": { + "body": "TypeScript reports: Editor Support", + "category": "Message", + "code": 6249, + "message": "Editor Support", + "source": "generated" + }, + "6250": { + "body": "TypeScript reports: Watch and Build Modes", + "category": "Message", + "code": 6250, + "message": "Watch and Build Modes", + "source": "generated" + }, + "6251": { + "body": "TypeScript reports: Compiler Diagnostics", + "category": "Message", + "code": 6251, + "message": "Compiler Diagnostics", + "source": "generated" + }, + "6252": { + "body": "TypeScript reports: Interop Constraints", + "category": "Message", + "code": 6252, + "message": "Interop Constraints", + "source": "generated" + }, + "6253": { + "body": "TypeScript reports: Backwards Compatibility", + "category": "Message", + "code": 6253, + "message": "Backwards Compatibility", + "source": "generated" + }, + "6254": { + "body": "TypeScript reports: Language and Environment", + "category": "Message", + "code": 6254, + "message": "Language and Environment", + "source": "generated" + }, + "6255": { + "body": "TypeScript reports: Projects", + "category": "Message", + "code": 6255, + "message": "Projects", + "source": "generated" + }, + "6256": { + "body": "TypeScript reports: Output Formatting", + "category": "Message", + "code": 6256, + "message": "Output Formatting", + "source": "generated" + }, + "6257": { + "body": "TypeScript reports: Completeness", + "category": "Message", + "code": 6257, + "message": "Completeness", + "source": "generated" + }, + "6258": { + "body": "TypeScript reports this error: '{0}' should be set inside the 'compilerOptions' object of the config json file", + "category": "Error", + "code": 6258, + "message": "'{0}' should be set inside the 'compilerOptions' object of the config json file", + "source": "generated" + }, + "6259": { + "body": "TypeScript reports: Found 1 error in {0}", + "category": "Message", + "code": 6259, + "message": "Found 1 error in {0}", + "source": "generated" + }, + "6260": { + "body": "TypeScript reports: Found {0} errors in the same file, starting at: {1}", + "category": "Message", + "code": 6260, + "message": "Found {0} errors in the same file, starting at: {1}", + "source": "generated" + }, + "6261": { + "body": "TypeScript reports: Found {0} errors in {1} files.", + "category": "Message", + "code": 6261, + "message": "Found {0} errors in {1} files.", + "source": "generated" + }, + "6262": { + "body": "TypeScript reports: File name '{0}' has a '{1}' extension - looking up '{2}' instead.", + "category": "Message", + "code": 6262, + "message": "File name '{0}' has a '{1}' extension - looking up '{2}' instead.", + "source": "generated" + }, + "6263": { + "body": "TypeScript reports this error: Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.", + "category": "Error", + "code": 6263, + "message": "Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.", + "source": "generated" + }, + "6264": { + "body": "TypeScript reports: Enable importing files with any extension, provided a declaration file is present.", + "category": "Message", + "code": 6264, + "message": "Enable importing files with any extension, provided a declaration file is present.", + "source": "generated" + }, + "6265": { + "body": "TypeScript reports: Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.", + "category": "Message", + "code": 6265, + "message": "Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.", + "source": "generated" + }, + "6266": { + "body": "TypeScript reports this error: Option '{0}' can only be specified on command line.", + "category": "Error", + "code": 6266, + "message": "Option '{0}' can only be specified on command line.", + "source": "generated" + }, + "6270": { + "body": "TypeScript reports: Directory '{0}' has no containing package.json scope. Imports will not resolve.", + "category": "Message", + "code": 6270, + "message": "Directory '{0}' has no containing package.json scope. Imports will not resolve.", + "source": "generated" + }, + "6271": { + "body": "TypeScript reports: Import specifier '{0}' does not exist in package.json scope at path '{1}'.", + "category": "Message", + "code": 6271, + "message": "Import specifier '{0}' does not exist in package.json scope at path '{1}'.", + "source": "generated" + }, + "6272": { + "body": "TypeScript reports: Invalid import specifier '{0}' has no possible resolutions.", + "category": "Message", + "code": 6272, + "message": "Invalid import specifier '{0}' has no possible resolutions.", + "source": "generated" + }, + "6273": { + "body": "TypeScript reports: package.json scope '{0}' has no imports defined.", + "category": "Message", + "code": 6273, + "message": "package.json scope '{0}' has no imports defined.", + "source": "generated" + }, + "6274": { + "body": "TypeScript reports: package.json scope '{0}' explicitly maps specifier '{1}' to null.", + "category": "Message", + "code": 6274, + "message": "package.json scope '{0}' explicitly maps specifier '{1}' to null.", + "source": "generated" + }, + "6275": { + "body": "TypeScript reports: package.json scope '{0}' has invalid type for target of specifier '{1}'", + "category": "Message", + "code": 6275, + "message": "package.json scope '{0}' has invalid type for target of specifier '{1}'", + "source": "generated" + }, + "6276": { + "body": "TypeScript reports: Export specifier '{0}' does not exist in package.json scope at path '{1}'.", + "category": "Message", + "code": 6276, + "message": "Export specifier '{0}' does not exist in package.json scope at path '{1}'.", + "source": "generated" + }, + "6277": { + "body": "TypeScript reports: Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.", + "category": "Message", + "code": 6277, + "message": "Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.", + "source": "generated" + }, + "6278": { + "body": "TypeScript reports: There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.", + "category": "Message", + "code": 6278, + "message": "There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.", + "source": "generated" + }, + "6279": { + "body": "TypeScript reports: Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.", + "category": "Message", + "code": 6279, + "message": "Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.", + "source": "generated" + }, + "6280": { + "body": "TypeScript reports: There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.", + "category": "Message", + "code": 6280, + "message": "There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.", + "source": "generated" + }, + "6281": { + "body": "TypeScript reports: 'package.json' has a 'peerDependencies' field.", + "category": "Message", + "code": 6281, + "message": "'package.json' has a 'peerDependencies' field.", + "source": "generated" + }, + "6282": { + "body": "TypeScript reports: Found peerDependency '{0}' with '{1}' version.", + "category": "Message", + "code": 6282, + "message": "Found peerDependency '{0}' with '{1}' version.", + "source": "generated" + }, + "6283": { + "body": "TypeScript reports: Failed to find peerDependency '{0}'.", + "category": "Message", + "code": 6283, + "message": "Failed to find peerDependency '{0}'.", + "source": "generated" + }, + "6284": { + "body": "TypeScript reports: File Layout", + "category": "Message", + "code": 6284, + "message": "File Layout", + "source": "generated" + }, + "6285": { + "body": "TypeScript reports: Environment Settings", + "category": "Message", + "code": 6285, + "message": "Environment Settings", + "source": "generated" + }, + "6286": { + "body": "TypeScript reports: See also https://aka.ms/tsconfig/module", + "category": "Message", + "code": 6286, + "message": "See also https://aka.ms/tsconfig/module", + "source": "generated" + }, + "6287": { + "body": "TypeScript reports: For nodejs:", + "category": "Message", + "code": 6287, + "message": "For nodejs:", + "source": "generated" + }, + "6290": { + "body": "TypeScript reports: and npm install -D @types/node", + "category": "Message", + "code": 6290, + "message": "and npm install -D @types/node", + "source": "generated" + }, + "6291": { + "body": "TypeScript reports: Other Outputs", + "category": "Message", + "code": 6291, + "message": "Other Outputs", + "source": "generated" + }, + "6292": { + "body": "TypeScript reports: Stricter Typechecking Options", + "category": "Message", + "code": 6292, + "message": "Stricter Typechecking Options", + "source": "generated" + }, + "6293": { + "body": "TypeScript reports: Style Options", + "category": "Message", + "code": 6293, + "message": "Style Options", + "source": "generated" + }, + "6294": { + "body": "TypeScript reports: Recommended Options", + "category": "Message", + "code": 6294, + "message": "Recommended Options", + "source": "generated" + }, + "6302": { + "body": "TypeScript reports: Enable project compilation", + "category": "Message", + "code": 6302, + "message": "Enable project compilation", + "source": "generated" + }, + "6304": { + "body": "TypeScript reports this error: Composite projects may not disable declaration emit.", + "category": "Error", + "code": 6304, + "message": "Composite projects may not disable declaration emit.", + "source": "generated" + }, + "6305": { + "body": "TypeScript reports this error: Output file '{0}' has not been built from source file '{1}'.", + "category": "Error", + "code": 6305, + "message": "Output file '{0}' has not been built from source file '{1}'.", + "source": "generated" + }, + "6306": { + "body": "TypeScript reports this error: Referenced project '{0}' must have setting \"composite\": true.", + "category": "Error", + "code": 6306, + "message": "Referenced project '{0}' must have setting \"composite\": true.", + "source": "generated" + }, + "6307": { + "body": "TypeScript reports this error: File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.", + "category": "Error", + "code": 6307, + "message": "File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.", + "source": "generated" + }, + "6310": { + "body": "TypeScript reports this error: Referenced project '{0}' may not disable emit.", + "category": "Error", + "code": 6310, + "message": "Referenced project '{0}' may not disable emit.", + "source": "generated" + }, + "6350": { + "body": "TypeScript reports: Project '{0}' is out of date because output '{1}' is older than input '{2}'", + "category": "Message", + "code": 6350, + "message": "Project '{0}' is out of date because output '{1}' is older than input '{2}'", + "source": "generated" + }, + "6351": { + "body": "TypeScript reports: Project '{0}' is up to date because newest input '{1}' is older than output '{2}'", + "category": "Message", + "code": 6351, + "message": "Project '{0}' is up to date because newest input '{1}' is older than output '{2}'", + "source": "generated" + }, + "6352": { + "body": "TypeScript reports: Project '{0}' is out of date because output file '{1}' does not exist", + "category": "Message", + "code": 6352, + "message": "Project '{0}' is out of date because output file '{1}' does not exist", + "source": "generated" + }, + "6353": { + "body": "TypeScript reports: Project '{0}' is out of date because its dependency '{1}' is out of date", + "category": "Message", + "code": 6353, + "message": "Project '{0}' is out of date because its dependency '{1}' is out of date", + "source": "generated" + }, + "6354": { + "body": "TypeScript reports: Project '{0}' is up to date with .d.ts files from its dependencies", + "category": "Message", + "code": 6354, + "message": "Project '{0}' is up to date with .d.ts files from its dependencies", + "source": "generated" + }, + "6355": { + "body": "TypeScript reports: Projects in this build: {0}", + "category": "Message", + "code": 6355, + "message": "Projects in this build: {0}", + "source": "generated" + }, + "6356": { + "body": "TypeScript reports: A non-dry build would delete the following files: {0}", + "category": "Message", + "code": 6356, + "message": "A non-dry build would delete the following files: {0}", + "source": "generated" + }, + "6357": { + "body": "TypeScript reports: A non-dry build would build project '{0}'", + "category": "Message", + "code": 6357, + "message": "A non-dry build would build project '{0}'", + "source": "generated" + }, + "6358": { + "body": "TypeScript reports: Building project '{0}'...", + "category": "Message", + "code": 6358, + "message": "Building project '{0}'...", + "source": "generated" + }, + "6359": { + "body": "TypeScript reports: Updating output timestamps of project '{0}'...", + "category": "Message", + "code": 6359, + "message": "Updating output timestamps of project '{0}'...", + "source": "generated" + }, + "6361": { + "body": "TypeScript reports: Project '{0}' is up to date", + "category": "Message", + "code": 6361, + "message": "Project '{0}' is up to date", + "source": "generated" + }, + "6362": { + "body": "TypeScript reports: Skipping build of project '{0}' because its dependency '{1}' has errors", + "category": "Message", + "code": 6362, + "message": "Skipping build of project '{0}' because its dependency '{1}' has errors", + "source": "generated" + }, + "6363": { + "body": "TypeScript reports: Project '{0}' can't be built because its dependency '{1}' has errors", + "category": "Message", + "code": 6363, + "message": "Project '{0}' can't be built because its dependency '{1}' has errors", + "source": "generated" + }, + "6364": { + "body": "TypeScript reports: Build one or more projects and their dependencies, if out of date", + "category": "Message", + "code": 6364, + "message": "Build one or more projects and their dependencies, if out of date", + "source": "generated" + }, + "6365": { + "body": "TypeScript reports: Delete the outputs of all projects.", + "category": "Message", + "code": 6365, + "message": "Delete the outputs of all projects.", + "source": "generated" + }, + "6367": { + "body": "TypeScript reports: Show what would be built (or deleted, if specified with '--clean')", + "category": "Message", + "code": 6367, + "message": "Show what would be built (or deleted, if specified with '--clean')", + "source": "generated" + }, + "6369": { + "body": "TypeScript reports this error: Option '--build' must be the first command line argument.", + "category": "Error", + "code": 6369, + "message": "Option '--build' must be the first command line argument.", + "source": "generated" + }, + "6370": { + "body": "TypeScript reports this error: Options '{0}' and '{1}' cannot be combined.", + "category": "Error", + "code": 6370, + "message": "Options '{0}' and '{1}' cannot be combined.", + "source": "generated" + }, + "6371": { + "body": "TypeScript reports: Updating unchanged output timestamps of project '{0}'...", + "category": "Message", + "code": 6371, + "message": "Updating unchanged output timestamps of project '{0}'...", + "source": "generated" + }, + "6374": { + "body": "TypeScript reports: A non-dry build would update timestamps for output of project '{0}'", + "category": "Message", + "code": 6374, + "message": "A non-dry build would update timestamps for output of project '{0}'", + "source": "generated" + }, + "6377": { + "body": "TypeScript reports this error: Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'", + "category": "Error", + "code": 6377, + "message": "Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'", + "source": "generated" + }, + "6379": { + "body": "TypeScript reports this error: Composite projects may not disable incremental compilation.", + "category": "Error", + "code": 6379, + "message": "Composite projects may not disable incremental compilation.", + "source": "generated" + }, + "6380": { + "body": "TypeScript reports: Specify file to store incremental compilation information", + "category": "Message", + "code": 6380, + "message": "Specify file to store incremental compilation information", + "source": "generated" + }, + "6381": { + "body": "TypeScript reports: Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'", + "category": "Message", + "code": 6381, + "message": "Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'", + "source": "generated" + }, + "6382": { + "body": "TypeScript reports: Skipping build of project '{0}' because its dependency '{1}' was not built", + "category": "Message", + "code": 6382, + "message": "Skipping build of project '{0}' because its dependency '{1}' was not built", + "source": "generated" + }, + "6383": { + "body": "TypeScript reports: Project '{0}' can't be built because its dependency '{1}' was not built", + "category": "Message", + "code": 6383, + "message": "Project '{0}' can't be built because its dependency '{1}' was not built", + "source": "generated" + }, + "6384": { + "body": "TypeScript reports: Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.", + "category": "Message", + "code": 6384, + "message": "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.", + "source": "generated" + }, + "6385": { + "body": "TypeScript suggests: '{0}' is deprecated.", + "category": "Suggestion", + "code": 6385, + "message": "'{0}' is deprecated.", + "source": "generated" + }, + "6386": { + "body": "TypeScript reports: Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.", + "category": "Message", + "code": 6386, + "message": "Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.", + "source": "generated" + }, + "6387": { + "body": "TypeScript suggests: The signature '{0}' of '{1}' is deprecated.", + "category": "Suggestion", + "code": 6387, + "message": "The signature '{0}' of '{1}' is deprecated.", + "source": "generated" + }, + "6388": { + "body": "TypeScript reports: Project '{0}' is being forcibly rebuilt", + "category": "Message", + "code": 6388, + "message": "Project '{0}' is being forcibly rebuilt", + "source": "generated" + }, + "6389": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.", + "category": "Message", + "code": 6389, + "message": "Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.", + "source": "generated" + }, + "6390": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.", + "category": "Message", + "code": 6390, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.", + "source": "generated" + }, + "6391": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.", + "category": "Message", + "code": 6391, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.", + "source": "generated" + }, + "6392": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.", + "category": "Message", + "code": 6392, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.", + "source": "generated" + }, + "6393": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.", + "category": "Message", + "code": 6393, + "message": "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.", + "source": "generated" + }, + "6394": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.", + "category": "Message", + "code": 6394, + "message": "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.", + "source": "generated" + }, + "6395": { + "body": "TypeScript reports: Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.", + "category": "Message", + "code": 6395, + "message": "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.", + "source": "generated" + }, + "6396": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.", + "category": "Message", + "code": 6396, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.", + "source": "generated" + }, + "6397": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.", + "category": "Message", + "code": 6397, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.", + "source": "generated" + }, + "6398": { + "body": "TypeScript reports: Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.", + "category": "Message", + "code": 6398, + "message": "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.", + "source": "generated" + }, + "6399": { + "body": "TypeScript reports: Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted", + "category": "Message", + "code": 6399, + "message": "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted", + "source": "generated" + }, + "6400": { + "body": "TypeScript reports: Project '{0}' is up to date but needs to update timestamps of output files that are older than input files", + "category": "Message", + "code": 6400, + "message": "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files", + "source": "generated" + }, + "6401": { + "body": "TypeScript reports: Project '{0}' is out of date because there was error reading file '{1}'", + "category": "Message", + "code": 6401, + "message": "Project '{0}' is out of date because there was error reading file '{1}'", + "source": "generated" + }, + "6402": { + "body": "TypeScript reports: Resolving in {0} mode with conditions {1}.", + "category": "Message", + "code": 6402, + "message": "Resolving in {0} mode with conditions {1}.", + "source": "generated" + }, + "6403": { + "body": "TypeScript reports: Matched '{0}' condition '{1}'.", + "category": "Message", + "code": 6403, + "message": "Matched '{0}' condition '{1}'.", + "source": "generated" + }, + "6404": { + "body": "TypeScript reports: Using '{0}' subpath '{1}' with target '{2}'.", + "category": "Message", + "code": 6404, + "message": "Using '{0}' subpath '{1}' with target '{2}'.", + "source": "generated" + }, + "6405": { + "body": "TypeScript reports: Saw non-matching condition '{0}'.", + "category": "Message", + "code": 6405, + "message": "Saw non-matching condition '{0}'.", + "source": "generated" + }, + "6406": { + "body": "TypeScript reports: Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions", + "category": "Message", + "code": 6406, + "message": "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions", + "source": "generated" + }, + "6407": { + "body": "TypeScript reports: Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.", + "category": "Message", + "code": 6407, + "message": "Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.", + "source": "generated" + }, + "6408": { + "body": "TypeScript reports: Use the package.json 'exports' field when resolving package imports.", + "category": "Message", + "code": 6408, + "message": "Use the package.json 'exports' field when resolving package imports.", + "source": "generated" + }, + "6409": { + "body": "TypeScript reports: Use the package.json 'imports' field when resolving imports.", + "category": "Message", + "code": 6409, + "message": "Use the package.json 'imports' field when resolving imports.", + "source": "generated" + }, + "6410": { + "body": "TypeScript reports: Conditions to set in addition to the resolver-specific defaults when resolving imports.", + "category": "Message", + "code": 6410, + "message": "Conditions to set in addition to the resolver-specific defaults when resolving imports.", + "source": "generated" + }, + "6411": { + "body": "TypeScript reports: `true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.", + "category": "Message", + "code": 6411, + "message": "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.", + "source": "generated" + }, + "6412": { + "body": "TypeScript reports: Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.", + "category": "Message", + "code": 6412, + "message": "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.", + "source": "generated" + }, + "6413": { + "body": "TypeScript reports: Entering conditional exports.", + "category": "Message", + "code": 6413, + "message": "Entering conditional exports.", + "source": "generated" + }, + "6414": { + "body": "TypeScript reports: Resolved under condition '{0}'.", + "category": "Message", + "code": 6414, + "message": "Resolved under condition '{0}'.", + "source": "generated" + }, + "6415": { + "body": "TypeScript reports: Failed to resolve under condition '{0}'.", + "category": "Message", + "code": 6415, + "message": "Failed to resolve under condition '{0}'.", + "source": "generated" + }, + "6416": { + "body": "TypeScript reports: Exiting conditional exports.", + "category": "Message", + "code": 6416, + "message": "Exiting conditional exports.", + "source": "generated" + }, + "6417": { + "body": "TypeScript reports: Searching all ancestor node_modules directories for preferred extensions: {0}.", + "category": "Message", + "code": 6417, + "message": "Searching all ancestor node_modules directories for preferred extensions: {0}.", + "source": "generated" + }, + "6418": { + "body": "TypeScript reports: Searching all ancestor node_modules directories for fallback extensions: {0}.", + "category": "Message", + "code": 6418, + "message": "Searching all ancestor node_modules directories for fallback extensions: {0}.", + "source": "generated" + }, + "6419": { + "body": "TypeScript reports: Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.", + "category": "Message", + "code": 6419, + "message": "Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.", + "source": "generated" + }, + "6420": { + "body": "TypeScript reports: Project '{0}' is out of date because {1}.", + "category": "Message", + "code": 6420, + "message": "Project '{0}' is out of date because {1}.", + "source": "generated" + }, + "6421": { + "body": "TypeScript reports: Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.", + "category": "Message", + "code": 6421, + "message": "Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.", + "source": "generated" + }, + "6500": { + "body": "TypeScript reports: The expected type comes from property '{0}' which is declared here on type '{1}'", + "category": "Message", + "code": 6500, + "message": "The expected type comes from property '{0}' which is declared here on type '{1}'", + "source": "generated" + }, + "6501": { + "body": "TypeScript reports: The expected type comes from this index signature.", + "category": "Message", + "code": 6501, + "message": "The expected type comes from this index signature.", + "source": "generated" + }, + "6502": { + "body": "TypeScript reports: The expected type comes from the return type of this signature.", + "category": "Message", + "code": 6502, + "message": "The expected type comes from the return type of this signature.", + "source": "generated" + }, + "6503": { + "body": "TypeScript reports: Print names of files that are part of the compilation and then stop processing.", + "category": "Message", + "code": 6503, + "message": "Print names of files that are part of the compilation and then stop processing.", + "source": "generated" + }, + "6504": { + "body": "TypeScript reports this error: File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?", + "category": "Error", + "code": 6504, + "message": "File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?", + "source": "generated" + }, + "6505": { + "body": "TypeScript reports: Print names of files and the reason they are part of the compilation.", + "category": "Message", + "code": 6505, + "message": "Print names of files and the reason they are part of the compilation.", + "source": "generated" + }, + "6506": { + "body": "TypeScript reports: Consider adding a 'declare' modifier to this class.", + "category": "Message", + "code": 6506, + "message": "Consider adding a 'declare' modifier to this class.", + "source": "generated" + }, + "6600": { + "body": "TypeScript reports: Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files.", + "category": "Message", + "code": 6600, + "message": "Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files.", + "source": "generated" + }, + "6601": { + "body": "TypeScript reports: Allow 'import x from y' when a module doesn't have a default export.", + "category": "Message", + "code": 6601, + "message": "Allow 'import x from y' when a module doesn't have a default export.", + "source": "generated" + }, + "6602": { + "body": "TypeScript reports: Allow accessing UMD globals from modules.", + "category": "Message", + "code": 6602, + "message": "Allow accessing UMD globals from modules.", + "source": "generated" + }, + "6603": { + "body": "TypeScript reports: Disable error reporting for unreachable code.", + "category": "Message", + "code": 6603, + "message": "Disable error reporting for unreachable code.", + "source": "generated" + }, + "6604": { + "body": "TypeScript reports: Disable error reporting for unused labels.", + "category": "Message", + "code": 6604, + "message": "Disable error reporting for unused labels.", + "source": "generated" + }, + "6605": { + "body": "TypeScript reports: Ensure 'use strict' is always emitted.", + "category": "Message", + "code": 6605, + "message": "Ensure 'use strict' is always emitted.", + "source": "generated" + }, + "6606": { + "body": "TypeScript reports: Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.", + "category": "Message", + "code": 6606, + "message": "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.", + "source": "generated" + }, + "6607": { + "body": "TypeScript reports: Specify the base directory to resolve non-relative module names.", + "category": "Message", + "code": 6607, + "message": "Specify the base directory to resolve non-relative module names.", + "source": "generated" + }, + "6608": { + "body": "TypeScript reports: No longer supported. In early versions, manually set the text encoding for reading files.", + "category": "Message", + "code": 6608, + "message": "No longer supported. In early versions, manually set the text encoding for reading files.", + "source": "generated" + }, + "6609": { + "body": "TypeScript reports: Enable error reporting in type-checked JavaScript files.", + "category": "Message", + "code": 6609, + "message": "Enable error reporting in type-checked JavaScript files.", + "source": "generated" + }, + "6611": { + "body": "TypeScript reports: Enable constraints that allow a TypeScript project to be used with project references.", + "category": "Message", + "code": 6611, + "message": "Enable constraints that allow a TypeScript project to be used with project references.", + "source": "generated" + }, + "6612": { + "body": "TypeScript reports: Generate .d.ts files from TypeScript and JavaScript files in your project.", + "category": "Message", + "code": 6612, + "message": "Generate .d.ts files from TypeScript and JavaScript files in your project.", + "source": "generated" + }, + "6613": { + "body": "TypeScript reports: Specify the output directory for generated declaration files.", + "category": "Message", + "code": 6613, + "message": "Specify the output directory for generated declaration files.", + "source": "generated" + }, + "6614": { + "body": "TypeScript reports: Create sourcemaps for d.ts files.", + "category": "Message", + "code": 6614, + "message": "Create sourcemaps for d.ts files.", + "source": "generated" + }, + "6615": { + "body": "TypeScript reports: Output compiler performance information after building.", + "category": "Message", + "code": 6615, + "message": "Output compiler performance information after building.", + "source": "generated" + }, + "6616": { + "body": "TypeScript reports: Disables inference for type acquisition by looking at filenames in a project.", + "category": "Message", + "code": 6616, + "message": "Disables inference for type acquisition by looking at filenames in a project.", + "source": "generated" + }, + "6617": { + "body": "TypeScript reports: Reduce the number of projects loaded automatically by TypeScript.", + "category": "Message", + "code": 6617, + "message": "Reduce the number of projects loaded automatically by TypeScript.", + "source": "generated" + }, + "6618": { + "body": "TypeScript reports: Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.", + "category": "Message", + "code": 6618, + "message": "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.", + "source": "generated" + }, + "6619": { + "body": "TypeScript reports: Opt a project out of multi-project reference checking when editing.", + "category": "Message", + "code": 6619, + "message": "Opt a project out of multi-project reference checking when editing.", + "source": "generated" + }, + "6620": { + "body": "TypeScript reports: Disable preferring source files instead of declaration files when referencing composite projects.", + "category": "Message", + "code": 6620, + "message": "Disable preferring source files instead of declaration files when referencing composite projects.", + "source": "generated" + }, + "6621": { + "body": "TypeScript reports: Emit more compliant, but verbose and less performant JavaScript for iteration.", + "category": "Message", + "code": 6621, + "message": "Emit more compliant, but verbose and less performant JavaScript for iteration.", + "source": "generated" + }, + "6622": { + "body": "TypeScript reports: Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.", + "category": "Message", + "code": 6622, + "message": "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.", + "source": "generated" + }, + "6623": { + "body": "TypeScript reports: Only output d.ts files and not JavaScript files.", + "category": "Message", + "code": 6623, + "message": "Only output d.ts files and not JavaScript files.", + "source": "generated" + }, + "6624": { + "body": "TypeScript reports: Emit design-type metadata for decorated declarations in source files.", + "category": "Message", + "code": 6624, + "message": "Emit design-type metadata for decorated declarations in source files.", + "source": "generated" + }, + "6625": { + "body": "TypeScript reports: Disable the type acquisition for JavaScript projects", + "category": "Message", + "code": 6625, + "message": "Disable the type acquisition for JavaScript projects", + "source": "generated" + }, + "6626": { + "body": "TypeScript reports: Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.", + "category": "Message", + "code": 6626, + "message": "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.", + "source": "generated" + }, + "6627": { + "body": "TypeScript reports: Filters results from the `include` option.", + "category": "Message", + "code": 6627, + "message": "Filters results from the `include` option.", + "source": "generated" + }, + "6628": { + "body": "TypeScript reports: Remove a list of directories from the watch process.", + "category": "Message", + "code": 6628, + "message": "Remove a list of directories from the watch process.", + "source": "generated" + }, + "6629": { + "body": "TypeScript reports: Remove a list of files from the watch mode's processing.", + "category": "Message", + "code": 6629, + "message": "Remove a list of files from the watch mode's processing.", + "source": "generated" + }, + "6630": { + "body": "TypeScript reports: Enable experimental support for legacy experimental decorators.", + "category": "Message", + "code": 6630, + "message": "Enable experimental support for legacy experimental decorators.", + "source": "generated" + }, + "6631": { + "body": "TypeScript reports: Print files read during the compilation including why it was included.", + "category": "Message", + "code": 6631, + "message": "Print files read during the compilation including why it was included.", + "source": "generated" + }, + "6632": { + "body": "TypeScript reports: Output more detailed compiler performance information after building.", + "category": "Message", + "code": 6632, + "message": "Output more detailed compiler performance information after building.", + "source": "generated" + }, + "6633": { + "body": "TypeScript reports: Specify one or more path or node module references to base configuration files from which settings are inherited.", + "category": "Message", + "code": 6633, + "message": "Specify one or more path or node module references to base configuration files from which settings are inherited.", + "source": "generated" + }, + "6634": { + "body": "TypeScript reports: Specify what approach the watcher should use if the system runs out of native file watchers.", + "category": "Message", + "code": 6634, + "message": "Specify what approach the watcher should use if the system runs out of native file watchers.", + "source": "generated" + }, + "6635": { + "body": "TypeScript reports: Include a list of files. This does not support glob patterns, as opposed to `include`.", + "category": "Message", + "code": 6635, + "message": "Include a list of files. This does not support glob patterns, as opposed to `include`.", + "source": "generated" + }, + "6636": { + "body": "TypeScript reports: Build all projects, including those that appear to be up to date.", + "category": "Message", + "code": 6636, + "message": "Build all projects, including those that appear to be up to date.", + "source": "generated" + }, + "6637": { + "body": "TypeScript reports: Ensure that casing is correct in imports.", + "category": "Message", + "code": 6637, + "message": "Ensure that casing is correct in imports.", + "source": "generated" + }, + "6638": { + "body": "TypeScript reports: Emit a v8 CPU profile of the compiler run for debugging.", + "category": "Message", + "code": 6638, + "message": "Emit a v8 CPU profile of the compiler run for debugging.", + "source": "generated" + }, + "6639": { + "body": "TypeScript reports: Allow importing helper functions from tslib once per project, instead of including them per-file.", + "category": "Message", + "code": 6639, + "message": "Allow importing helper functions from tslib once per project, instead of including them per-file.", + "source": "generated" + }, + "6640": { + "body": "TypeScript reports: Skip building downstream projects on error in upstream project.", + "category": "Message", + "code": 6640, + "message": "Skip building downstream projects on error in upstream project.", + "source": "generated" + }, + "6641": { + "body": "TypeScript reports: Specify a list of glob patterns that match files to be included in compilation.", + "category": "Message", + "code": 6641, + "message": "Specify a list of glob patterns that match files to be included in compilation.", + "source": "generated" + }, + "6642": { + "body": "TypeScript reports: Save .tsbuildinfo files to allow for incremental compilation of projects.", + "category": "Message", + "code": 6642, + "message": "Save .tsbuildinfo files to allow for incremental compilation of projects.", + "source": "generated" + }, + "6643": { + "body": "TypeScript reports: Include sourcemap files inside the emitted JavaScript.", + "category": "Message", + "code": 6643, + "message": "Include sourcemap files inside the emitted JavaScript.", + "source": "generated" + }, + "6644": { + "body": "TypeScript reports: Include source code in the sourcemaps inside the emitted JavaScript.", + "category": "Message", + "code": 6644, + "message": "Include source code in the sourcemaps inside the emitted JavaScript.", + "source": "generated" + }, + "6645": { + "body": "TypeScript reports: Ensure that each file can be safely transpiled without relying on other imports.", + "category": "Message", + "code": 6645, + "message": "Ensure that each file can be safely transpiled without relying on other imports.", + "source": "generated" + }, + "6646": { + "body": "TypeScript reports: Specify what JSX code is generated.", + "category": "Message", + "code": 6646, + "message": "Specify what JSX code is generated.", + "source": "generated" + }, + "6647": { + "body": "TypeScript reports: Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.", + "category": "Message", + "code": 6647, + "message": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.", + "source": "generated" + }, + "6648": { + "body": "TypeScript reports: Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.", + "category": "Message", + "code": 6648, + "message": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.", + "source": "generated" + }, + "6649": { + "body": "TypeScript reports: Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.", + "category": "Message", + "code": 6649, + "message": "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.", + "source": "generated" + }, + "6650": { + "body": "TypeScript reports: Make keyof only return strings instead of string, numbers or symbols. Legacy option.", + "category": "Message", + "code": 6650, + "message": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.", + "source": "generated" + }, + "6651": { + "body": "TypeScript reports: Specify a set of bundled library declaration files that describe the target runtime environment.", + "category": "Message", + "code": 6651, + "message": "Specify a set of bundled library declaration files that describe the target runtime environment.", + "source": "generated" + }, + "6652": { + "body": "TypeScript reports: Print the names of emitted files after a compilation.", + "category": "Message", + "code": 6652, + "message": "Print the names of emitted files after a compilation.", + "source": "generated" + }, + "6653": { + "body": "TypeScript reports: Print all of the files read during the compilation.", + "category": "Message", + "code": 6653, + "message": "Print all of the files read during the compilation.", + "source": "generated" + }, + "6654": { + "body": "TypeScript reports: Set the language of the messaging from TypeScript. This does not affect emit.", + "category": "Message", + "code": 6654, + "message": "Set the language of the messaging from TypeScript. This does not affect emit.", + "source": "generated" + }, + "6655": { + "body": "TypeScript reports: Specify the location where debugger should locate map files instead of generated locations.", + "category": "Message", + "code": 6655, + "message": "Specify the location where debugger should locate map files instead of generated locations.", + "source": "generated" + }, + "6656": { + "body": "TypeScript reports: Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.", + "category": "Message", + "code": 6656, + "message": "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.", + "source": "generated" + }, + "6657": { + "body": "TypeScript reports: Specify what module code is generated.", + "category": "Message", + "code": 6657, + "message": "Specify what module code is generated.", + "source": "generated" + }, + "6658": { + "body": "TypeScript reports: Specify how TypeScript looks up a file from a given module specifier.", + "category": "Message", + "code": 6658, + "message": "Specify how TypeScript looks up a file from a given module specifier.", + "source": "generated" + }, + "6659": { + "body": "TypeScript reports: Set the newline character for emitting files.", + "category": "Message", + "code": 6659, + "message": "Set the newline character for emitting files.", + "source": "generated" + }, + "6660": { + "body": "TypeScript reports: Disable emitting files from a compilation.", + "category": "Message", + "code": 6660, + "message": "Disable emitting files from a compilation.", + "source": "generated" + }, + "6661": { + "body": "TypeScript reports: Disable generating custom helper functions like '__extends' in compiled output.", + "category": "Message", + "code": 6661, + "message": "Disable generating custom helper functions like '__extends' in compiled output.", + "source": "generated" + }, + "6662": { + "body": "TypeScript reports: Disable emitting files if any type checking errors are reported.", + "category": "Message", + "code": 6662, + "message": "Disable emitting files if any type checking errors are reported.", + "source": "generated" + }, + "6663": { + "body": "TypeScript reports: Disable truncating types in error messages.", + "category": "Message", + "code": 6663, + "message": "Disable truncating types in error messages.", + "source": "generated" + }, + "6664": { + "body": "TypeScript reports: Enable error reporting for fallthrough cases in switch statements.", + "category": "Message", + "code": 6664, + "message": "Enable error reporting for fallthrough cases in switch statements.", + "source": "generated" + }, + "6665": { + "body": "TypeScript reports: Enable error reporting for expressions and declarations with an implied 'any' type.", + "category": "Message", + "code": 6665, + "message": "Enable error reporting for expressions and declarations with an implied 'any' type.", + "source": "generated" + }, + "6666": { + "body": "TypeScript reports: Ensure overriding members in derived classes are marked with an override modifier.", + "category": "Message", + "code": 6666, + "message": "Ensure overriding members in derived classes are marked with an override modifier.", + "source": "generated" + }, + "6667": { + "body": "TypeScript reports: Enable error reporting for codepaths that do not explicitly return in a function.", + "category": "Message", + "code": 6667, + "message": "Enable error reporting for codepaths that do not explicitly return in a function.", + "source": "generated" + }, + "6668": { + "body": "TypeScript reports: Enable error reporting when 'this' is given the type 'any'.", + "category": "Message", + "code": 6668, + "message": "Enable error reporting when 'this' is given the type 'any'.", + "source": "generated" + }, + "6669": { + "body": "TypeScript reports: Disable adding 'use strict' directives in emitted JavaScript files.", + "category": "Message", + "code": 6669, + "message": "Disable adding 'use strict' directives in emitted JavaScript files.", + "source": "generated" + }, + "6670": { + "body": "TypeScript reports: Disable including any library files, including the default lib.d.ts.", + "category": "Message", + "code": 6670, + "message": "Disable including any library files, including the default lib.d.ts.", + "source": "generated" + }, + "6671": { + "body": "TypeScript reports: Enforces using indexed accessors for keys declared using an indexed type.", + "category": "Message", + "code": 6671, + "message": "Enforces using indexed accessors for keys declared using an indexed type.", + "source": "generated" + }, + "6672": { + "body": "TypeScript reports: Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.", + "category": "Message", + "code": 6672, + "message": "Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.", + "source": "generated" + }, + "6673": { + "body": "TypeScript reports: Disable strict checking of generic signatures in function types.", + "category": "Message", + "code": 6673, + "message": "Disable strict checking of generic signatures in function types.", + "source": "generated" + }, + "6674": { + "body": "TypeScript reports: Add 'undefined' to a type when accessed using an index.", + "category": "Message", + "code": 6674, + "message": "Add 'undefined' to a type when accessed using an index.", + "source": "generated" + }, + "6675": { + "body": "TypeScript reports: Enable error reporting when local variables aren't read.", + "category": "Message", + "code": 6675, + "message": "Enable error reporting when local variables aren't read.", + "source": "generated" + }, + "6676": { + "body": "TypeScript reports: Raise an error when a function parameter isn't read.", + "category": "Message", + "code": 6676, + "message": "Raise an error when a function parameter isn't read.", + "source": "generated" + }, + "6677": { + "body": "TypeScript reports: Deprecated setting. Use 'outFile' instead.", + "category": "Message", + "code": 6677, + "message": "Deprecated setting. Use 'outFile' instead.", + "source": "generated" + }, + "6678": { + "body": "TypeScript reports: Specify an output folder for all emitted files.", + "category": "Message", + "code": 6678, + "message": "Specify an output folder for all emitted files.", + "source": "generated" + }, + "6679": { + "body": "TypeScript reports: Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.", + "category": "Message", + "code": 6679, + "message": "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.", + "source": "generated" + }, + "6680": { + "body": "TypeScript reports: Specify a set of entries that re-map imports to additional lookup locations.", + "category": "Message", + "code": 6680, + "message": "Specify a set of entries that re-map imports to additional lookup locations.", + "source": "generated" + }, + "6681": { + "body": "TypeScript reports: Specify a list of language service plugins to include.", + "category": "Message", + "code": 6681, + "message": "Specify a list of language service plugins to include.", + "source": "generated" + }, + "6682": { + "body": "TypeScript reports: Disable erasing 'const enum' declarations in generated code.", + "category": "Message", + "code": 6682, + "message": "Disable erasing 'const enum' declarations in generated code.", + "source": "generated" + }, + "6683": { + "body": "TypeScript reports: Disable resolving symlinks to their realpath. This correlates to the same flag in node.", + "category": "Message", + "code": 6683, + "message": "Disable resolving symlinks to their realpath. This correlates to the same flag in node.", + "source": "generated" + }, + "6684": { + "body": "TypeScript reports: Disable wiping the console in watch mode.", + "category": "Message", + "code": 6684, + "message": "Disable wiping the console in watch mode.", + "source": "generated" + }, + "6685": { + "body": "TypeScript reports: Enable color and formatting in TypeScript's output to make compiler errors easier to read.", + "category": "Message", + "code": 6685, + "message": "Enable color and formatting in TypeScript's output to make compiler errors easier to read.", + "source": "generated" + }, + "6686": { + "body": "TypeScript reports: Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.", + "category": "Message", + "code": 6686, + "message": "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.", + "source": "generated" + }, + "6687": { + "body": "TypeScript reports: Specify an array of objects that specify paths for projects. Used in project references.", + "category": "Message", + "code": 6687, + "message": "Specify an array of objects that specify paths for projects. Used in project references.", + "source": "generated" + }, + "6688": { + "body": "TypeScript reports: Disable emitting comments.", + "category": "Message", + "code": 6688, + "message": "Disable emitting comments.", + "source": "generated" + }, + "6689": { + "body": "TypeScript reports: Enable importing .json files.", + "category": "Message", + "code": 6689, + "message": "Enable importing .json files.", + "source": "generated" + }, + "6690": { + "body": "TypeScript reports: Specify the root folder within your source files.", + "category": "Message", + "code": 6690, + "message": "Specify the root folder within your source files.", + "source": "generated" + }, + "6691": { + "body": "TypeScript reports: Allow multiple folders to be treated as one when resolving modules.", + "category": "Message", + "code": 6691, + "message": "Allow multiple folders to be treated as one when resolving modules.", + "source": "generated" + }, + "6692": { + "body": "TypeScript reports: Skip type checking .d.ts files that are included with TypeScript.", + "category": "Message", + "code": 6692, + "message": "Skip type checking .d.ts files that are included with TypeScript.", + "source": "generated" + }, + "6693": { + "body": "TypeScript reports: Skip type checking all .d.ts files.", + "category": "Message", + "code": 6693, + "message": "Skip type checking all .d.ts files.", + "source": "generated" + }, + "6694": { + "body": "TypeScript reports: Create source map files for emitted JavaScript files.", + "category": "Message", + "code": 6694, + "message": "Create source map files for emitted JavaScript files.", + "source": "generated" + }, + "6695": { + "body": "TypeScript reports: Specify the root path for debuggers to find the reference source code.", + "category": "Message", + "code": 6695, + "message": "Specify the root path for debuggers to find the reference source code.", + "source": "generated" + }, + "6697": { + "body": "TypeScript reports: Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.", + "category": "Message", + "code": 6697, + "message": "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.", + "source": "generated" + }, + "6698": { + "body": "TypeScript reports: When assigning functions, check to ensure parameters and the return values are subtype-compatible.", + "category": "Message", + "code": 6698, + "message": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.", + "source": "generated" + }, + "6699": { + "body": "TypeScript reports: When type checking, take into account 'null' and 'undefined'.", + "category": "Message", + "code": 6699, + "message": "When type checking, take into account 'null' and 'undefined'.", + "source": "generated" + }, + "6700": { + "body": "TypeScript reports: Check for class properties that are declared but not set in the constructor.", + "category": "Message", + "code": 6700, + "message": "Check for class properties that are declared but not set in the constructor.", + "source": "generated" + }, + "6701": { + "body": "TypeScript reports: Disable emitting declarations that have '@internal' in their JSDoc comments.", + "category": "Message", + "code": 6701, + "message": "Disable emitting declarations that have '@internal' in their JSDoc comments.", + "source": "generated" + }, + "6702": { + "body": "TypeScript reports: Disable reporting of excess property errors during the creation of object literals.", + "category": "Message", + "code": 6702, + "message": "Disable reporting of excess property errors during the creation of object literals.", + "source": "generated" + }, + "6703": { + "body": "TypeScript reports: Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.", + "category": "Message", + "code": 6703, + "message": "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.", + "source": "generated" + }, + "6704": { + "body": "TypeScript reports: Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.", + "category": "Message", + "code": 6704, + "message": "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.", + "source": "generated" + }, + "6705": { + "body": "TypeScript reports: Set the JavaScript language version for emitted JavaScript and include compatible library declarations.", + "category": "Message", + "code": 6705, + "message": "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.", + "source": "generated" + }, + "6706": { + "body": "TypeScript reports: Log paths used during the 'moduleResolution' process.", + "category": "Message", + "code": 6706, + "message": "Log paths used during the 'moduleResolution' process.", + "source": "generated" + }, + "6707": { + "body": "TypeScript reports: Specify the path to .tsbuildinfo incremental compilation file.", + "category": "Message", + "code": 6707, + "message": "Specify the path to .tsbuildinfo incremental compilation file.", + "source": "generated" + }, + "6709": { + "body": "TypeScript reports: Specify options for automatic acquisition of declaration files.", + "category": "Message", + "code": 6709, + "message": "Specify options for automatic acquisition of declaration files.", + "source": "generated" + }, + "6710": { + "body": "TypeScript reports: Specify multiple folders that act like './node_modules/@types'.", + "category": "Message", + "code": 6710, + "message": "Specify multiple folders that act like './node_modules/@types'.", + "source": "generated" + }, + "6711": { + "body": "TypeScript reports: Specify type package names to be included without being referenced in a source file.", + "category": "Message", + "code": 6711, + "message": "Specify type package names to be included without being referenced in a source file.", + "source": "generated" + }, + "6712": { + "body": "TypeScript reports: Emit ECMAScript-standard-compliant class fields.", + "category": "Message", + "code": 6712, + "message": "Emit ECMAScript-standard-compliant class fields.", + "source": "generated" + }, + "6713": { + "body": "TypeScript reports: Enable verbose logging.", + "category": "Message", + "code": 6713, + "message": "Enable verbose logging.", + "source": "generated" + }, + "6714": { + "body": "TypeScript reports: Specify how directories are watched on systems that lack recursive file-watching functionality.", + "category": "Message", + "code": 6714, + "message": "Specify how directories are watched on systems that lack recursive file-watching functionality.", + "source": "generated" + }, + "6715": { + "body": "TypeScript reports: Specify how the TypeScript watch mode works.", + "category": "Message", + "code": 6715, + "message": "Specify how the TypeScript watch mode works.", + "source": "generated" + }, + "6717": { + "body": "TypeScript reports: Require undeclared properties from index signatures to use element accesses.", + "category": "Message", + "code": 6717, + "message": "Require undeclared properties from index signatures to use element accesses.", + "source": "generated" + }, + "6718": { + "body": "TypeScript reports: Specify emit/checking behavior for imports that are only used for types.", + "category": "Message", + "code": 6718, + "message": "Specify emit/checking behavior for imports that are only used for types.", + "source": "generated" + }, + "6719": { + "body": "TypeScript reports: Require sufficient annotation on exports so other tools can trivially generate declaration files.", + "category": "Message", + "code": 6719, + "message": "Require sufficient annotation on exports so other tools can trivially generate declaration files.", + "source": "generated" + }, + "6720": { + "body": "TypeScript reports: Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.", + "category": "Message", + "code": 6720, + "message": "Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.", + "source": "generated" + }, + "6721": { + "body": "TypeScript reports: Do not allow runtime constructs that are not part of ECMAScript.", + "category": "Message", + "code": 6721, + "message": "Do not allow runtime constructs that are not part of ECMAScript.", + "source": "generated" + }, + "6803": { + "body": "TypeScript reports: Default catch clause variables as 'unknown' instead of 'any'.", + "category": "Message", + "code": 6803, + "message": "Default catch clause variables as 'unknown' instead of 'any'.", + "source": "generated" + }, + "6804": { + "body": "TypeScript reports: Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.", + "category": "Message", + "code": 6804, + "message": "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.", + "source": "generated" + }, + "6805": { + "body": "TypeScript reports: Disable full type checking (only critical parse and emit errors will be reported).", + "category": "Message", + "code": 6805, + "message": "Disable full type checking (only critical parse and emit errors will be reported).", + "source": "generated" + }, + "6806": { + "body": "TypeScript reports: Check side effect imports.", + "category": "Message", + "code": 6806, + "message": "Check side effect imports.", + "source": "generated" + }, + "6807": { + "body": "TypeScript reports this error: This operation can be simplified. This shift is identical to `{0} {1} {2}`.", + "category": "Error", + "code": 6807, + "message": "This operation can be simplified. This shift is identical to `{0} {1} {2}`.", + "source": "generated" + }, + "6808": { + "body": "TypeScript reports: Enable lib replacement.", + "category": "Message", + "code": 6808, + "message": "Enable lib replacement.", + "source": "generated" + }, + "6809": { + "body": "TypeScript reports: Ensure types are ordered stably and deterministically across compilations.", + "category": "Message", + "code": 6809, + "message": "Ensure types are ordered stably and deterministically across compilations.", + "source": "generated" + }, + "6900": { + "body": "TypeScript reports: one of:", + "category": "Message", + "code": 6900, + "message": "one of:", + "source": "generated" + }, + "6901": { + "body": "TypeScript reports: one or more:", + "category": "Message", + "code": 6901, + "message": "one or more:", + "source": "generated" + }, + "6902": { + "body": "TypeScript reports: type:", + "category": "Message", + "code": 6902, + "message": "type:", + "source": "generated" + }, + "6903": { + "body": "TypeScript reports: default:", + "category": "Message", + "code": 6903, + "message": "default:", + "source": "generated" + }, + "6905": { + "body": "TypeScript reports: `true`, unless `strict` is `false`", + "category": "Message", + "code": 6905, + "message": "`true`, unless `strict` is `false`", + "source": "generated" + }, + "6906": { + "body": "TypeScript reports: `false`, unless `composite` is set", + "category": "Message", + "code": 6906, + "message": "`false`, unless `composite` is set", + "source": "generated" + }, + "6907": { + "body": "TypeScript reports: `[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.", + "category": "Message", + "code": 6907, + "message": "`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.", + "source": "generated" + }, + "6908": { + "body": "TypeScript reports: `[]` if `files` is specified, otherwise `[\"**/*\"]`", + "category": "Message", + "code": 6908, + "message": "`[]` if `files` is specified, otherwise `[\"**/*\"]`", + "source": "generated" + }, + "6909": { + "body": "TypeScript reports: `true` if `composite`, `false` otherwise", + "category": "Message", + "code": 6909, + "message": "`true` if `composite`, `false` otherwise", + "source": "generated" + }, + "6911": { + "body": "TypeScript reports: Computed from the list of input files", + "category": "Message", + "code": 6911, + "message": "Computed from the list of input files", + "source": "generated" + }, + "6912": { + "body": "TypeScript reports: Platform specific", + "category": "Message", + "code": 6912, + "message": "Platform specific", + "source": "generated" + }, + "6913": { + "body": "TypeScript reports: You can learn about all of the compiler options at {0}", + "category": "Message", + "code": 6913, + "message": "You can learn about all of the compiler options at {0}", + "source": "generated" + }, + "6914": { + "body": "TypeScript reports: Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:", + "category": "Message", + "code": 6914, + "message": "Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:", + "source": "generated" + }, + "6915": { + "body": "TypeScript reports: Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}", + "category": "Message", + "code": 6915, + "message": "Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}", + "source": "generated" + }, + "6916": { + "body": "TypeScript reports: COMMON COMMANDS", + "category": "Message", + "code": 6916, + "message": "COMMON COMMANDS", + "source": "generated" + }, + "6917": { + "body": "TypeScript reports: ALL COMPILER OPTIONS", + "category": "Message", + "code": 6917, + "message": "ALL COMPILER OPTIONS", + "source": "generated" + }, + "6918": { + "body": "TypeScript reports: WATCH OPTIONS", + "category": "Message", + "code": 6918, + "message": "WATCH OPTIONS", + "source": "generated" + }, + "6919": { + "body": "TypeScript reports: BUILD OPTIONS", + "category": "Message", + "code": 6919, + "message": "BUILD OPTIONS", + "source": "generated" + }, + "6920": { + "body": "TypeScript reports: COMMON COMPILER OPTIONS", + "category": "Message", + "code": 6920, + "message": "COMMON COMPILER OPTIONS", + "source": "generated" + }, + "6921": { + "body": "TypeScript reports: COMMAND LINE FLAGS", + "category": "Message", + "code": 6921, + "message": "COMMAND LINE FLAGS", + "source": "generated" + }, + "6922": { + "body": "TypeScript reports: tsc: The TypeScript Compiler", + "category": "Message", + "code": 6922, + "message": "tsc: The TypeScript Compiler", + "source": "generated" + }, + "6923": { + "body": "TypeScript reports: Compiles the current project (tsconfig.json in the working directory.)", + "category": "Message", + "code": 6923, + "message": "Compiles the current project (tsconfig.json in the working directory.)", + "source": "generated" + }, + "6924": { + "body": "TypeScript reports: Ignoring tsconfig.json, compiles the specified files with default compiler options.", + "category": "Message", + "code": 6924, + "message": "Ignoring tsconfig.json, compiles the specified files with default compiler options.", + "source": "generated" + }, + "6925": { + "body": "TypeScript reports: Build a composite project in the working directory.", + "category": "Message", + "code": 6925, + "message": "Build a composite project in the working directory.", + "source": "generated" + }, + "6926": { + "body": "TypeScript reports: Creates a tsconfig.json with the recommended settings in the working directory.", + "category": "Message", + "code": 6926, + "message": "Creates a tsconfig.json with the recommended settings in the working directory.", + "source": "generated" + }, + "6927": { + "body": "TypeScript reports: Compiles the TypeScript project located at the specified path.", + "category": "Message", + "code": 6927, + "message": "Compiles the TypeScript project located at the specified path.", + "source": "generated" + }, + "6928": { + "body": "TypeScript reports: An expanded version of this information, showing all possible compiler options", + "category": "Message", + "code": 6928, + "message": "An expanded version of this information, showing all possible compiler options", + "source": "generated" + }, + "6929": { + "body": "TypeScript reports: Compiles the current project, with additional settings.", + "category": "Message", + "code": 6929, + "message": "Compiles the current project, with additional settings.", + "source": "generated" + }, + "6930": { + "body": "TypeScript reports: `true` for ES2022 and above, including ESNext.", + "category": "Message", + "code": 6930, + "message": "`true` for ES2022 and above, including ESNext.", + "source": "generated" + }, + "6931": { + "body": "TypeScript reports this error: List of file name suffixes to search when resolving a module.", + "category": "Error", + "code": 6931, + "message": "List of file name suffixes to search when resolving a module.", + "source": "generated" + }, + "6932": { + "body": "TypeScript reports: `false`, unless `checkJs` is set", + "category": "Message", + "code": 6932, + "message": "`false`, unless `checkJs` is set", + "source": "generated" + }, + "7005": { + "body": "TypeScript reports this error: Variable '{0}' implicitly has an '{1}' type.", + "category": "Error", + "code": 7005, + "message": "Variable '{0}' implicitly has an '{1}' type.", + "source": "generated" + }, + "7006": { + "body": "I don't know what type '{0}' is supposed to be, so I've defaulted it to '{1}'. Your `tsconfig.json` file says I should throw an error here. [Learn more](https://www.totaltypescript.com/tutorials/beginners-typescript/beginner-s-typescript-section/implicit-any-type-error).", + "category": "Error", + "code": 7006, + "message": "Parameter '{0}' implicitly has an '{1}' type.", + "source": "curated" + }, + "7008": { + "body": "TypeScript reports this error: Member '{0}' implicitly has an '{1}' type.", + "category": "Error", + "code": 7008, + "message": "Member '{0}' implicitly has an '{1}' type.", + "source": "generated" + }, + "7009": { + "body": "TypeScript reports this error: 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.", + "category": "Error", + "code": 7009, + "message": "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.", + "source": "generated" + }, + "7010": { + "body": "TypeScript reports this error: '{0}', which lacks return-type annotation, implicitly has an '{1}' return type.", + "category": "Error", + "code": 7010, + "message": "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.", + "source": "generated" + }, + "7011": { + "body": "TypeScript reports this error: Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.", + "category": "Error", + "code": 7011, + "message": "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.", + "source": "generated" + }, + "7012": { + "body": "TypeScript reports this error: This overload implicitly returns the type '{0}' because it lacks a return type annotation.", + "category": "Error", + "code": 7012, + "message": "This overload implicitly returns the type '{0}' because it lacks a return type annotation.", + "source": "generated" + }, + "7013": { + "body": "TypeScript reports this error: Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.", + "category": "Error", + "code": 7013, + "message": "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.", + "source": "generated" + }, + "7014": { + "body": "TypeScript reports this error: Function type, which lacks return-type annotation, implicitly has an '{0}' return type.", + "category": "Error", + "code": 7014, + "message": "Function type, which lacks return-type annotation, implicitly has an '{0}' return type.", + "source": "generated" + }, + "7015": { + "body": "TypeScript reports this error: Element implicitly has an 'any' type because index expression is not of type 'number'.", + "category": "Error", + "code": 7015, + "message": "Element implicitly has an 'any' type because index expression is not of type 'number'.", + "source": "generated" + }, + "7016": { + "body": "TypeScript reports this error: Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.", + "category": "Error", + "code": 7016, + "message": "Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.", + "source": "generated" + }, + "7017": { + "body": "TypeScript reports this error: Element implicitly has an 'any' type because type '{0}' has no index signature.", + "category": "Error", + "code": 7017, + "message": "Element implicitly has an 'any' type because type '{0}' has no index signature.", + "source": "generated" + }, + "7018": { + "body": "TypeScript reports this error: Object literal's property '{0}' implicitly has an '{1}' type.", + "category": "Error", + "code": 7018, + "message": "Object literal's property '{0}' implicitly has an '{1}' type.", + "source": "generated" + }, + "7019": { + "body": "TypeScript reports this error: Rest parameter '{0}' implicitly has an 'any[]' type.", + "category": "Error", + "code": 7019, + "message": "Rest parameter '{0}' implicitly has an 'any[]' type.", + "source": "generated" + }, + "7020": { + "body": "TypeScript reports this error: Call signature, which lacks return-type annotation, implicitly has an 'any' return type.", + "category": "Error", + "code": 7020, + "message": "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.", + "source": "generated" + }, + "7022": { + "body": "TypeScript reports this error: '{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": "Error", + "code": 7022, + "message": "'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "source": "generated" + }, + "7023": { + "body": "TypeScript reports this error: '{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.", + "category": "Error", + "code": 7023, + "message": "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.", + "source": "generated" + }, + "7024": { + "body": "TypeScript reports this error: Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.", + "category": "Error", + "code": 7024, + "message": "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.", + "source": "generated" + }, + "7025": { + "body": "TypeScript reports this error: Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.", + "category": "Error", + "code": 7025, + "message": "Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.", + "source": "generated" + }, + "7026": { + "body": "`JSX.IntrinsicElements` has not been declared in the global scope. [Learn more](https://www.totaltypescript.com/what-is-jsx-intrinsicelements).", + "category": "Error", + "code": 7026, + "message": "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.", + "source": "curated" + }, + "7027": { + "body": "TypeScript reports this error: Unreachable code detected.", + "category": "Error", + "code": 7027, + "message": "Unreachable code detected.", + "source": "generated" + }, + "7028": { + "body": "TypeScript reports this error: Unused label.", + "category": "Error", + "code": 7028, + "message": "Unused label.", + "source": "generated" + }, + "7029": { + "body": "TypeScript reports this error: Fallthrough case in switch.", + "category": "Error", + "code": 7029, + "message": "Fallthrough case in switch.", + "source": "generated" + }, + "7030": { + "body": "TypeScript reports this error: Not all code paths return a value.", + "category": "Error", + "code": 7030, + "message": "Not all code paths return a value.", + "source": "generated" + }, + "7031": { + "body": "TypeScript reports this error: Binding element '{0}' implicitly has an '{1}' type.", + "category": "Error", + "code": 7031, + "message": "Binding element '{0}' implicitly has an '{1}' type.", + "source": "generated" + }, + "7032": { + "body": "TypeScript reports this error: Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.", + "category": "Error", + "code": 7032, + "message": "Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.", + "source": "generated" + }, + "7033": { + "body": "TypeScript reports this error: Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.", + "category": "Error", + "code": 7033, + "message": "Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.", + "source": "generated" + }, + "7034": { + "body": "TypeScript reports this error: Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.", + "category": "Error", + "code": 7034, + "message": "Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.", + "source": "generated" + }, + "7035": { + "body": "TypeScript reports this error: Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`", + "category": "Error", + "code": 7035, + "message": "Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`", + "source": "generated" + }, + "7036": { + "body": "TypeScript reports this error: Dynamic import's specifier must be of type 'string', but here has type '{0}'.", + "category": "Error", + "code": 7036, + "message": "Dynamic import's specifier must be of type 'string', but here has type '{0}'.", + "source": "generated" + }, + "7037": { + "body": "TypeScript reports: Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.", + "category": "Message", + "code": 7037, + "message": "Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.", + "source": "generated" + }, + "7038": { + "body": "TypeScript reports: Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.", + "category": "Message", + "code": 7038, + "message": "Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.", + "source": "generated" + }, + "7039": { + "body": "TypeScript reports this error: Mapped object type implicitly has an 'any' template type.", + "category": "Error", + "code": 7039, + "message": "Mapped object type implicitly has an 'any' template type.", + "source": "generated" + }, + "7040": { + "body": "TypeScript reports this error: If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'", + "category": "Error", + "code": 7040, + "message": "If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'", + "source": "generated" + }, + "7041": { + "body": "TypeScript reports this error: The containing arrow function captures the global value of 'this'.", + "category": "Error", + "code": 7041, + "message": "The containing arrow function captures the global value of 'this'.", + "source": "generated" + }, + "7042": { + "body": "TypeScript reports this error: Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.", + "category": "Error", + "code": 7042, + "message": "Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.", + "source": "generated" + }, + "7043": { + "body": "TypeScript suggests: Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7043, + "message": "Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "source": "generated" + }, + "7044": { + "body": "TypeScript suggests: Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7044, + "message": "Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "source": "generated" + }, + "7045": { + "body": "TypeScript suggests: Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7045, + "message": "Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.", + "source": "generated" + }, + "7046": { + "body": "TypeScript suggests: Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7046, + "message": "Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.", + "source": "generated" + }, + "7047": { + "body": "TypeScript suggests: Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7047, + "message": "Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.", + "source": "generated" + }, + "7048": { + "body": "TypeScript suggests: Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.", + "category": "Suggestion", + "code": 7048, + "message": "Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.", + "source": "generated" + }, + "7049": { + "body": "TypeScript suggests: Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.", + "category": "Suggestion", + "code": 7049, + "message": "Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.", + "source": "generated" + }, + "7050": { + "body": "TypeScript suggests: '{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.", + "category": "Suggestion", + "code": 7050, + "message": "'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.", + "source": "generated" + }, + "7051": { + "body": "TypeScript reports this error: Parameter has a name but no type. Did you mean '{0}: {1}'?", + "category": "Error", + "code": 7051, + "message": "Parameter has a name but no type. Did you mean '{0}: {1}'?", + "source": "generated" + }, + "7052": { + "body": "TypeScript reports this error: Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?", + "category": "Error", + "code": 7052, + "message": "Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?", + "source": "generated" + }, + "7053": { + "body": "You can't use '{0}' to index into '{1}'. [This article](https://www.totaltypescript.com/concepts/type-string-cannot-be-used-to-index-type) might help.", + "category": "Error", + "code": 7053, + "message": "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.", + "source": "curated" + }, + "7054": { + "body": "TypeScript reports this error: No index signature with a parameter of type '{0}' was found on type '{1}'.", + "category": "Error", + "code": 7054, + "message": "No index signature with a parameter of type '{0}' was found on type '{1}'.", + "source": "generated" + }, + "7055": { + "body": "TypeScript reports this error: '{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.", + "category": "Error", + "code": 7055, + "message": "'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.", + "source": "generated" + }, + "7056": { + "body": "TypeScript reports this error: The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.", + "category": "Error", + "code": 7056, + "message": "The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.", + "source": "generated" + }, + "7057": { + "body": "I don't know enough about your generator function's return type to safely infer here.", + "category": "Error", + "code": 7057, + "message": "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.", + "source": "curated" + }, + "7058": { + "body": "TypeScript reports this error: If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`", + "category": "Error", + "code": 7058, + "message": "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`", + "source": "generated" + }, + "7059": { + "body": "TypeScript reports this error: This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + "category": "Error", + "code": 7059, + "message": "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + "source": "generated" + }, + "7060": { + "body": "TypeScript reports this error: This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.", + "category": "Error", + "code": 7060, + "message": "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.", + "source": "generated" + }, + "7061": { + "body": "You're trying to create a mapped type with both static and dynamic properties.", + "category": "Error", + "code": 7061, + "message": "A mapped type may not declare properties or methods.", + "source": "curated" + }, + "8000": { + "body": "TypeScript reports this error: You cannot rename this element.", + "category": "Error", + "code": 8000, + "message": "You cannot rename this element.", + "source": "generated" + }, + "8001": { + "body": "TypeScript reports this error: You cannot rename elements that are defined in the standard TypeScript library.", + "category": "Error", + "code": 8001, + "message": "You cannot rename elements that are defined in the standard TypeScript library.", + "source": "generated" + }, + "8002": { + "body": "TypeScript reports this error: 'import ... =' can only be used in TypeScript files.", + "category": "Error", + "code": 8002, + "message": "'import ... =' can only be used in TypeScript files.", + "source": "generated" + }, + "8003": { + "body": "TypeScript reports this error: 'export =' can only be used in TypeScript files.", + "category": "Error", + "code": 8003, + "message": "'export =' can only be used in TypeScript files.", + "source": "generated" + }, + "8004": { + "body": "TypeScript reports this error: Type parameter declarations can only be used in TypeScript files.", + "category": "Error", + "code": 8004, + "message": "Type parameter declarations can only be used in TypeScript files.", + "source": "generated" + }, + "8005": { + "body": "TypeScript reports this error: 'implements' clauses can only be used in TypeScript files.", + "category": "Error", + "code": 8005, + "message": "'implements' clauses can only be used in TypeScript files.", + "source": "generated" + }, + "8006": { + "body": "TypeScript reports this error: '{0}' declarations can only be used in TypeScript files.", + "category": "Error", + "code": 8006, + "message": "'{0}' declarations can only be used in TypeScript files.", + "source": "generated" + }, + "8008": { + "body": "TypeScript reports this error: Type aliases can only be used in TypeScript files.", + "category": "Error", + "code": 8008, + "message": "Type aliases can only be used in TypeScript files.", + "source": "generated" + }, + "8009": { + "body": "TypeScript reports this error: The '{0}' modifier can only be used in TypeScript files.", + "category": "Error", + "code": 8009, + "message": "The '{0}' modifier can only be used in TypeScript files.", + "source": "generated" + }, + "8010": { + "body": "TypeScript reports this error: Type annotations can only be used in TypeScript files.", + "category": "Error", + "code": 8010, + "message": "Type annotations can only be used in TypeScript files.", + "source": "generated" + }, + "8011": { + "body": "TypeScript reports this error: Type arguments can only be used in TypeScript files.", + "category": "Error", + "code": 8011, + "message": "Type arguments can only be used in TypeScript files.", + "source": "generated" + }, + "8012": { + "body": "TypeScript reports this error: Parameter modifiers can only be used in TypeScript files.", + "category": "Error", + "code": 8012, + "message": "Parameter modifiers can only be used in TypeScript files.", + "source": "generated" + }, + "8013": { + "body": "TypeScript reports this error: Non-null assertions can only be used in TypeScript files.", + "category": "Error", + "code": 8013, + "message": "Non-null assertions can only be used in TypeScript files.", + "source": "generated" + }, + "8016": { + "body": "You can't use type assertions because this isn't a TypeScript file.", + "category": "Error", + "code": 8016, + "message": "Type assertion expressions can only be used in TypeScript files.", + "source": "curated" + }, + "8017": { + "body": "TypeScript reports this error: Signature declarations can only be used in TypeScript files.", + "category": "Error", + "code": 8017, + "message": "Signature declarations can only be used in TypeScript files.", + "source": "generated" + }, + "8019": { + "body": "TypeScript reports: Report errors in .js files.", + "category": "Message", + "code": 8019, + "message": "Report errors in .js files.", + "source": "generated" + }, + "8020": { + "body": "TypeScript reports this error: JSDoc types can only be used inside documentation comments.", + "category": "Error", + "code": 8020, + "message": "JSDoc types can only be used inside documentation comments.", + "source": "generated" + }, + "8021": { + "body": "TypeScript reports this error: JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.", + "category": "Error", + "code": 8021, + "message": "JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.", + "source": "generated" + }, + "8022": { + "body": "TypeScript reports this error: JSDoc '@{0}' is not attached to a class.", + "category": "Error", + "code": 8022, + "message": "JSDoc '@{0}' is not attached to a class.", + "source": "generated" + }, + "8023": { + "body": "TypeScript reports this error: JSDoc '@{0} {1}' does not match the 'extends {2}' clause.", + "category": "Error", + "code": 8023, + "message": "JSDoc '@{0} {1}' does not match the 'extends {2}' clause.", + "source": "generated" + }, + "8024": { + "body": "TypeScript reports this error: JSDoc '@param' tag has name '{0}', but there is no parameter with that name.", + "category": "Error", + "code": 8024, + "message": "JSDoc '@param' tag has name '{0}', but there is no parameter with that name.", + "source": "generated" + }, + "8025": { + "body": "TypeScript reports this error: Class declarations cannot have more than one '@augments' or '@extends' tag.", + "category": "Error", + "code": 8025, + "message": "Class declarations cannot have more than one '@augments' or '@extends' tag.", + "source": "generated" + }, + "8026": { + "body": "TypeScript reports this error: Expected {0} type arguments; provide these with an '@extends' tag.", + "category": "Error", + "code": 8026, + "message": "Expected {0} type arguments; provide these with an '@extends' tag.", + "source": "generated" + }, + "8027": { + "body": "TypeScript reports this error: Expected {0}-{1} type arguments; provide these with an '@extends' tag.", + "category": "Error", + "code": 8027, + "message": "Expected {0}-{1} type arguments; provide these with an '@extends' tag.", + "source": "generated" + }, + "8028": { + "body": "TypeScript reports this error: JSDoc '...' may only appear in the last parameter of a signature.", + "category": "Error", + "code": 8028, + "message": "JSDoc '...' may only appear in the last parameter of a signature.", + "source": "generated" + }, + "8029": { + "body": "TypeScript reports this error: JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.", + "category": "Error", + "code": 8029, + "message": "JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.", + "source": "generated" + }, + "8030": { + "body": "TypeScript reports this error: The type of a function declaration must match the function's signature.", + "category": "Error", + "code": 8030, + "message": "The type of a function declaration must match the function's signature.", + "source": "generated" + }, + "8031": { + "body": "TypeScript reports this error: You cannot rename a module via a global import.", + "category": "Error", + "code": 8031, + "message": "You cannot rename a module via a global import.", + "source": "generated" + }, + "8032": { + "body": "TypeScript reports this error: Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.", + "category": "Error", + "code": 8032, + "message": "Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.", + "source": "generated" + }, + "8033": { + "body": "TypeScript reports this error: A JSDoc '@typedef' comment may not contain multiple '@type' tags.", + "category": "Error", + "code": 8033, + "message": "A JSDoc '@typedef' comment may not contain multiple '@type' tags.", + "source": "generated" + }, + "8034": { + "body": "TypeScript reports this error: The tag was first specified here.", + "category": "Error", + "code": 8034, + "message": "The tag was first specified here.", + "source": "generated" + }, + "8035": { + "body": "TypeScript reports this error: You cannot rename elements that are defined in a 'node_modules' folder.", + "category": "Error", + "code": 8035, + "message": "You cannot rename elements that are defined in a 'node_modules' folder.", + "source": "generated" + }, + "8036": { + "body": "TypeScript reports this error: You cannot rename elements that are defined in another 'node_modules' folder.", + "category": "Error", + "code": 8036, + "message": "You cannot rename elements that are defined in another 'node_modules' folder.", + "source": "generated" + }, + "8037": { + "body": "TypeScript reports this error: Type satisfaction expressions can only be used in TypeScript files.", + "category": "Error", + "code": 8037, + "message": "Type satisfaction expressions can only be used in TypeScript files.", + "source": "generated" + }, + "8038": { + "body": "TypeScript reports this error: Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.", + "category": "Error", + "code": 8038, + "message": "Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.", + "source": "generated" + }, + "8039": { + "body": "TypeScript reports this error: A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag", + "category": "Error", + "code": 8039, + "message": "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag", + "source": "generated" + }, + "9005": { + "body": "TypeScript reports this error: Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.", + "category": "Error", + "code": 9005, + "message": "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.", + "source": "generated" + }, + "9006": { + "body": "TypeScript reports this error: Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.", + "category": "Error", + "code": 9006, + "message": "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.", + "source": "generated" + }, + "9007": { + "body": "TypeScript reports this error: Function must have an explicit return type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9007, + "message": "Function must have an explicit return type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9008": { + "body": "TypeScript reports this error: Method must have an explicit return type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9008, + "message": "Method must have an explicit return type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9009": { + "body": "TypeScript reports this error: At least one accessor must have an explicit type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9009, + "message": "At least one accessor must have an explicit type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9010": { + "body": "TypeScript reports this error: Variable must have an explicit type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9010, + "message": "Variable must have an explicit type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9011": { + "body": "TypeScript reports this error: Parameter must have an explicit type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9011, + "message": "Parameter must have an explicit type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9012": { + "body": "TypeScript reports this error: Property must have an explicit type annotation with --isolatedDeclarations.", + "category": "Error", + "code": 9012, + "message": "Property must have an explicit type annotation with --isolatedDeclarations.", + "source": "generated" + }, + "9013": { + "body": "TypeScript reports this error: Expression type can't be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9013, + "message": "Expression type can't be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9014": { + "body": "TypeScript reports this error: Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.", + "category": "Error", + "code": 9014, + "message": "Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.", + "source": "generated" + }, + "9015": { + "body": "TypeScript reports this error: Objects that contain spread assignments can't be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9015, + "message": "Objects that contain spread assignments can't be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9016": { + "body": "TypeScript reports this error: Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9016, + "message": "Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9017": { + "body": "TypeScript reports this error: Only const arrays can be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9017, + "message": "Only const arrays can be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9018": { + "body": "TypeScript reports this error: Arrays with spread elements can't inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9018, + "message": "Arrays with spread elements can't inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9019": { + "body": "TypeScript reports this error: Binding elements can't be exported directly with --isolatedDeclarations.", + "category": "Error", + "code": 9019, + "message": "Binding elements can't be exported directly with --isolatedDeclarations.", + "source": "generated" + }, + "9020": { + "body": "TypeScript reports this error: Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.", + "category": "Error", + "code": 9020, + "message": "Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.", + "source": "generated" + }, + "9021": { + "body": "TypeScript reports this error: Extends clause can't contain an expression with --isolatedDeclarations.", + "category": "Error", + "code": 9021, + "message": "Extends clause can't contain an expression with --isolatedDeclarations.", + "source": "generated" + }, + "9022": { + "body": "TypeScript reports this error: Inference from class expressions is not supported with --isolatedDeclarations.", + "category": "Error", + "code": 9022, + "message": "Inference from class expressions is not supported with --isolatedDeclarations.", + "source": "generated" + }, + "9023": { + "body": "TypeScript reports this error: Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.", + "category": "Error", + "code": 9023, + "message": "Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.", + "source": "generated" + }, + "9025": { + "body": "TypeScript reports this error: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.", + "category": "Error", + "code": 9025, + "message": "Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.", + "source": "generated" + }, + "9026": { + "body": "TypeScript reports this error: Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.", + "category": "Error", + "code": 9026, + "message": "Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.", + "source": "generated" + }, + "9027": { + "body": "TypeScript reports this error: Add a type annotation to the variable {0}.", + "category": "Error", + "code": 9027, + "message": "Add a type annotation to the variable {0}.", + "source": "generated" + }, + "9028": { + "body": "TypeScript reports this error: Add a type annotation to the parameter {0}.", + "category": "Error", + "code": 9028, + "message": "Add a type annotation to the parameter {0}.", + "source": "generated" + }, + "9029": { + "body": "TypeScript reports this error: Add a type annotation to the property {0}.", + "category": "Error", + "code": 9029, + "message": "Add a type annotation to the property {0}.", + "source": "generated" + }, + "9030": { + "body": "TypeScript reports this error: Add a return type to the function expression.", + "category": "Error", + "code": 9030, + "message": "Add a return type to the function expression.", + "source": "generated" + }, + "9031": { + "body": "TypeScript reports this error: Add a return type to the function declaration.", + "category": "Error", + "code": 9031, + "message": "Add a return type to the function declaration.", + "source": "generated" + }, + "9032": { + "body": "TypeScript reports this error: Add a return type to the get accessor declaration.", + "category": "Error", + "code": 9032, + "message": "Add a return type to the get accessor declaration.", + "source": "generated" + }, + "9033": { + "body": "TypeScript reports this error: Add a type to parameter of the set accessor declaration.", + "category": "Error", + "code": 9033, + "message": "Add a type to parameter of the set accessor declaration.", + "source": "generated" + }, + "9034": { + "body": "TypeScript reports this error: Add a return type to the method", + "category": "Error", + "code": 9034, + "message": "Add a return type to the method", + "source": "generated" + }, + "9035": { + "body": "TypeScript reports this error: Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.", + "category": "Error", + "code": 9035, + "message": "Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.", + "source": "generated" + }, + "9036": { + "body": "TypeScript reports this error: Move the expression in default export to a variable and add a type annotation to it.", + "category": "Error", + "code": 9036, + "message": "Move the expression in default export to a variable and add a type annotation to it.", + "source": "generated" + }, + "9037": { + "body": "TypeScript reports this error: Default exports can't be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9037, + "message": "Default exports can't be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9038": { + "body": "TypeScript reports this error: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.", + "category": "Error", + "code": 9038, + "message": "Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.", + "source": "generated" + }, + "9039": { + "body": "TypeScript reports this error: Type containing private name '{0}' can't be used with --isolatedDeclarations.", + "category": "Error", + "code": 9039, + "message": "Type containing private name '{0}' can't be used with --isolatedDeclarations.", + "source": "generated" + }, + "17000": { + "body": "TypeScript reports this error: JSX attributes must only be assigned a non-empty 'expression'.", + "category": "Error", + "code": 17000, + "message": "JSX attributes must only be assigned a non-empty 'expression'.", + "source": "generated" + }, + "17001": { + "body": "TypeScript reports this error: JSX elements cannot have multiple attributes with the same name.", + "category": "Error", + "code": 17001, + "message": "JSX elements cannot have multiple attributes with the same name.", + "source": "generated" + }, + "17002": { + "body": "TypeScript reports this error: Expected corresponding JSX closing tag for '{0}'.", + "category": "Error", + "code": 17002, + "message": "Expected corresponding JSX closing tag for '{0}'.", + "source": "generated" + }, + "17004": { + "body": "You can't use JSX yet because you haven't added `jsx` to your `tsconfig.json`. [Learn more](https://www.totaltypescript.com/cannot-use-jsx-unless-the-jsx-flag-is-provided).", + "category": "Error", + "code": 17004, + "message": "Cannot use JSX unless the '--jsx' flag is provided.", + "source": "curated" + }, + "17005": { + "body": "TypeScript reports this error: A constructor cannot contain a 'super' call when its class extends 'null'.", + "category": "Error", + "code": 17005, + "message": "A constructor cannot contain a 'super' call when its class extends 'null'.", + "source": "generated" + }, + "17006": { + "body": "TypeScript reports this error: An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.", + "category": "Error", + "code": 17006, + "message": "An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.", + "source": "generated" + }, + "17007": { + "body": "TypeScript reports this error: A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.", + "category": "Error", + "code": 17007, + "message": "A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.", + "source": "generated" + }, + "17008": { + "body": "TypeScript reports this error: JSX element '{0}' has no corresponding closing tag.", + "category": "Error", + "code": 17008, + "message": "JSX element '{0}' has no corresponding closing tag.", + "source": "generated" + }, + "17009": { + "body": "TypeScript reports this error: 'super' must be called before accessing 'this' in the constructor of a derived class.", + "category": "Error", + "code": 17009, + "message": "'super' must be called before accessing 'this' in the constructor of a derived class.", + "source": "generated" + }, + "17010": { + "body": "TypeScript reports this error: Unknown type acquisition option '{0}'.", + "category": "Error", + "code": 17010, + "message": "Unknown type acquisition option '{0}'.", + "source": "generated" + }, + "17011": { + "body": "TypeScript reports this error: 'super' must be called before accessing a property of 'super' in the constructor of a derived class.", + "category": "Error", + "code": 17011, + "message": "'super' must be called before accessing a property of 'super' in the constructor of a derived class.", + "source": "generated" + }, + "17012": { + "body": "TypeScript reports this error: '{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?", + "category": "Error", + "code": 17012, + "message": "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?", + "source": "generated" + }, + "17013": { + "body": "TypeScript reports this error: Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.", + "category": "Error", + "code": 17013, + "message": "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.", + "source": "generated" + }, + "17014": { + "body": "TypeScript reports this error: JSX fragment has no corresponding closing tag.", + "category": "Error", + "code": 17014, + "message": "JSX fragment has no corresponding closing tag.", + "source": "generated" + }, + "17015": { + "body": "TypeScript reports this error: Expected corresponding closing tag for JSX fragment.", + "category": "Error", + "code": 17015, + "message": "Expected corresponding closing tag for JSX fragment.", + "source": "generated" + }, + "17016": { + "body": "TypeScript reports this error: The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.", + "category": "Error", + "code": 17016, + "message": "The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.", + "source": "generated" + }, + "17017": { + "body": "TypeScript reports this error: An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.", + "category": "Error", + "code": 17017, + "message": "An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.", + "source": "generated" + }, + "17018": { + "body": "TypeScript reports this error: Unknown type acquisition option '{0}'. Did you mean '{1}'?", + "category": "Error", + "code": 17018, + "message": "Unknown type acquisition option '{0}'. Did you mean '{1}'?", + "source": "generated" + }, + "17019": { + "body": "TypeScript reports this error: '{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?", + "category": "Error", + "code": 17019, + "message": "'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?", + "source": "generated" + }, + "17020": { + "body": "TypeScript reports this error: '{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?", + "category": "Error", + "code": 17020, + "message": "'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?", + "source": "generated" + }, + "17021": { + "body": "TypeScript reports this error: Unicode escape sequence cannot appear here.", + "category": "Error", + "code": 17021, + "message": "Unicode escape sequence cannot appear here.", + "source": "generated" + }, + "18000": { + "body": "TypeScript reports this error: Circularity detected while resolving configuration: {0}", + "category": "Error", + "code": 18000, + "message": "Circularity detected while resolving configuration: {0}", + "source": "generated" + }, + "18002": { + "body": "TypeScript reports this error: The 'files' list in config file '{0}' is empty.", + "category": "Error", + "code": 18002, + "message": "The 'files' list in config file '{0}' is empty.", + "source": "generated" + }, + "18003": { + "body": "TypeScript reports this error: No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.", + "category": "Error", + "code": 18003, + "message": "No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.", + "source": "generated" + }, + "18004": { + "body": "You're trying to pass '{0}' as a key AND value to this object using a shorthand. You'll need to declare '{0}' as a variable first.", + "category": "Error", + "code": 18004, + "message": "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.", + "source": "curated" + }, + "18006": { + "body": "TypeScript reports this error: Classes may not have a field named 'constructor'.", + "category": "Error", + "code": 18006, + "message": "Classes may not have a field named 'constructor'.", + "source": "generated" + }, + "18007": { + "body": "TypeScript reports this error: JSX expressions may not use the comma operator. Did you mean to write an array?", + "category": "Error", + "code": 18007, + "message": "JSX expressions may not use the comma operator. Did you mean to write an array?", + "source": "generated" + }, + "18009": { + "body": "TypeScript reports this error: Private identifiers cannot be used as parameters.", + "category": "Error", + "code": 18009, + "message": "Private identifiers cannot be used as parameters.", + "source": "generated" + }, + "18010": { + "body": "TypeScript reports this error: An accessibility modifier cannot be used with a private identifier.", + "category": "Error", + "code": 18010, + "message": "An accessibility modifier cannot be used with a private identifier.", + "source": "generated" + }, + "18011": { + "body": "TypeScript reports this error: The operand of a 'delete' operator cannot be a private identifier.", + "category": "Error", + "code": 18011, + "message": "The operand of a 'delete' operator cannot be a private identifier.", + "source": "generated" + }, + "18012": { + "body": "TypeScript reports this error: '#constructor' is a reserved word.", + "category": "Error", + "code": 18012, + "message": "'#constructor' is a reserved word.", + "source": "generated" + }, + "18013": { + "body": "TypeScript reports this error: Property '{0}' is not accessible outside class '{1}' because it has a private identifier.", + "category": "Error", + "code": 18013, + "message": "Property '{0}' is not accessible outside class '{1}' because it has a private identifier.", + "source": "generated" + }, + "18014": { + "body": "TypeScript reports this error: The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.", + "category": "Error", + "code": 18014, + "message": "The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.", + "source": "generated" + }, + "18015": { + "body": "TypeScript reports this error: Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.", + "category": "Error", + "code": 18015, + "message": "Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.", + "source": "generated" + }, + "18016": { + "body": "TypeScript reports this error: Private identifiers are not allowed outside class bodies.", + "category": "Error", + "code": 18016, + "message": "Private identifiers are not allowed outside class bodies.", + "source": "generated" + }, + "18017": { + "body": "TypeScript reports this error: The shadowing declaration of '{0}' is defined here", + "category": "Error", + "code": 18017, + "message": "The shadowing declaration of '{0}' is defined here", + "source": "generated" + }, + "18018": { + "body": "TypeScript reports this error: The declaration of '{0}' that you probably intended to use is defined here", + "category": "Error", + "code": 18018, + "message": "The declaration of '{0}' that you probably intended to use is defined here", + "source": "generated" + }, + "18019": { + "body": "TypeScript reports this error: '{0}' modifier cannot be used with a private identifier.", + "category": "Error", + "code": 18019, + "message": "'{0}' modifier cannot be used with a private identifier.", + "source": "generated" + }, + "18024": { + "body": "TypeScript reports this error: An enum member cannot be named with a private identifier.", + "category": "Error", + "code": 18024, + "message": "An enum member cannot be named with a private identifier.", + "source": "generated" + }, + "18026": { + "body": "TypeScript reports this error: '#!' can only be used at the start of a file.", + "category": "Error", + "code": 18026, + "message": "'#!' can only be used at the start of a file.", + "source": "generated" + }, + "18027": { + "body": "TypeScript reports this error: Compiler reserves name '{0}' when emitting private identifier downlevel.", + "category": "Error", + "code": 18027, + "message": "Compiler reserves name '{0}' when emitting private identifier downlevel.", + "source": "generated" + }, + "18028": { + "body": "TypeScript reports this error: Private identifiers are only available when targeting ECMAScript 2015 and higher.", + "category": "Error", + "code": 18028, + "message": "Private identifiers are only available when targeting ECMAScript 2015 and higher.", + "source": "generated" + }, + "18029": { + "body": "TypeScript reports this error: Private identifiers are not allowed in variable declarations.", + "category": "Error", + "code": 18029, + "message": "Private identifiers are not allowed in variable declarations.", + "source": "generated" + }, + "18030": { + "body": "TypeScript reports this error: An optional chain cannot contain private identifiers.", + "category": "Error", + "code": 18030, + "message": "An optional chain cannot contain private identifiers.", + "source": "generated" + }, + "18031": { + "body": "TypeScript reports this error: The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.", + "category": "Error", + "code": 18031, + "message": "The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.", + "source": "generated" + }, + "18032": { + "body": "TypeScript reports this error: The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.", + "category": "Error", + "code": 18032, + "message": "The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.", + "source": "generated" + }, + "18033": { + "body": "TypeScript reports this error: Type '{0}' is not assignable to type '{1}' as required for computed enum member values.", + "category": "Error", + "code": 18033, + "message": "Type '{0}' is not assignable to type '{1}' as required for computed enum member values.", + "source": "generated" + }, + "18034": { + "body": "TypeScript reports: Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.", + "category": "Message", + "code": 18034, + "message": "Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.", + "source": "generated" + }, + "18035": { + "body": "TypeScript reports this error: Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.", + "category": "Error", + "code": 18035, + "message": "Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.", + "source": "generated" + }, + "18036": { + "body": "TypeScript reports this error: Class decorators can't be used with static private identifier. Consider removing the experimental decorator.", + "category": "Error", + "code": 18036, + "message": "Class decorators can't be used with static private identifier. Consider removing the experimental decorator.", + "source": "generated" + }, + "18037": { + "body": "TypeScript reports this error: 'await' expression cannot be used inside a class static block.", + "category": "Error", + "code": 18037, + "message": "'await' expression cannot be used inside a class static block.", + "source": "generated" + }, + "18038": { + "body": "TypeScript reports this error: 'for await' loops cannot be used inside a class static block.", + "category": "Error", + "code": 18038, + "message": "'for await' loops cannot be used inside a class static block.", + "source": "generated" + }, + "18039": { + "body": "TypeScript reports this error: Invalid use of '{0}'. It cannot be used inside a class static block.", + "category": "Error", + "code": 18039, + "message": "Invalid use of '{0}'. It cannot be used inside a class static block.", + "source": "generated" + }, + "18041": { + "body": "TypeScript reports this error: A 'return' statement cannot be used inside a class static block.", + "category": "Error", + "code": 18041, + "message": "A 'return' statement cannot be used inside a class static block.", + "source": "generated" + }, + "18042": { + "body": "TypeScript reports this error: '{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.", + "category": "Error", + "code": 18042, + "message": "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.", + "source": "generated" + }, + "18043": { + "body": "TypeScript reports this error: Types cannot appear in export declarations in JavaScript files.", + "category": "Error", + "code": 18043, + "message": "Types cannot appear in export declarations in JavaScript files.", + "source": "generated" + }, + "18044": { + "body": "TypeScript reports: '{0}' is automatically exported here.", + "category": "Message", + "code": 18044, + "message": "'{0}' is automatically exported here.", + "source": "generated" + }, + "18045": { + "body": "TypeScript reports this error: Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.", + "category": "Error", + "code": 18045, + "message": "Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.", + "source": "generated" + }, + "18046": { + "body": "TypeScript reports this error: '{0}' is of type 'unknown'.", + "category": "Error", + "code": 18046, + "message": "'{0}' is of type 'unknown'.", + "source": "generated" + }, + "18047": { + "body": "TypeScript reports this error: '{0}' is possibly 'null'.", + "category": "Error", + "code": 18047, + "message": "'{0}' is possibly 'null'.", + "source": "generated" + }, + "18048": { + "body": "TypeScript reports this error: '{0}' is possibly 'undefined'.", + "category": "Error", + "code": 18048, + "message": "'{0}' is possibly 'undefined'.", + "source": "generated" + }, + "18049": { + "body": "TypeScript reports this error: '{0}' is possibly 'null' or 'undefined'.", + "category": "Error", + "code": 18049, + "message": "'{0}' is possibly 'null' or 'undefined'.", + "source": "generated" + }, + "18050": { + "body": "TypeScript reports this error: The value '{0}' cannot be used here.", + "category": "Error", + "code": 18050, + "message": "The value '{0}' cannot be used here.", + "source": "generated" + }, + "18051": { + "body": "TypeScript reports this error: Compiler option '{0}' cannot be given an empty string.", + "category": "Error", + "code": 18051, + "message": "Compiler option '{0}' cannot be given an empty string.", + "source": "generated" + }, + "18053": { + "body": "TypeScript reports this error: Its type '{0}' is not a valid JSX element type.", + "category": "Error", + "code": 18053, + "message": "Its type '{0}' is not a valid JSX element type.", + "source": "generated" + }, + "18054": { + "body": "TypeScript reports this error: 'await using' statements cannot be used inside a class static block.", + "category": "Error", + "code": 18054, + "message": "'await using' statements cannot be used inside a class static block.", + "source": "generated" + }, + "18055": { + "body": "TypeScript reports this error: '{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.", + "category": "Error", + "code": 18055, + "message": "'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.", + "source": "generated" + }, + "18056": { + "body": "TypeScript reports this error: Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.", + "category": "Error", + "code": 18056, + "message": "Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.", + "source": "generated" + }, + "18057": { + "body": "TypeScript reports this error: String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.", + "category": "Error", + "code": 18057, + "message": "String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.", + "source": "generated" + }, + "18058": { + "body": "TypeScript reports this error: Default imports are not allowed in a deferred import.", + "category": "Error", + "code": 18058, + "message": "Default imports are not allowed in a deferred import.", + "source": "generated" + }, + "18059": { + "body": "TypeScript reports this error: Named imports are not allowed in a deferred import.", + "category": "Error", + "code": 18059, + "message": "Named imports are not allowed in a deferred import.", + "source": "generated" + }, + "18060": { + "body": "TypeScript reports this error: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.", + "category": "Error", + "code": 18060, + "message": "Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.", + "source": "generated" + }, + "18061": { + "body": "TypeScript reports this error: '{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?", + "category": "Error", + "code": 18061, + "message": "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?", + "source": "generated" + }, + "69010": { + "body": "TypeScript reports: `nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.", + "category": "Message", + "code": 69010, + "message": "`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.", + "source": "generated" + }, + "80001": { + "body": "TypeScript suggests: File is a CommonJS module; it may be converted to an ES module.", + "category": "Suggestion", + "code": 80001, + "message": "File is a CommonJS module; it may be converted to an ES module.", + "source": "generated" + }, + "80002": { + "body": "TypeScript suggests: This constructor function may be converted to a class declaration.", + "category": "Suggestion", + "code": 80002, + "message": "This constructor function may be converted to a class declaration.", + "source": "generated" + }, + "80003": { + "body": "TypeScript suggests: Import may be converted to a default import.", + "category": "Suggestion", + "code": 80003, + "message": "Import may be converted to a default import.", + "source": "generated" + }, + "80004": { + "body": "TypeScript suggests: JSDoc types may be moved to TypeScript types.", + "category": "Suggestion", + "code": 80004, + "message": "JSDoc types may be moved to TypeScript types.", + "source": "generated" + }, + "80005": { + "body": "TypeScript suggests: 'require' call may be converted to an import.", + "category": "Suggestion", + "code": 80005, + "message": "'require' call may be converted to an import.", + "source": "generated" + }, + "80006": { + "body": "TypeScript suggests: This may be converted to an async function.", + "category": "Suggestion", + "code": 80006, + "message": "This may be converted to an async function.", + "source": "generated" + }, + "80007": { + "body": "TypeScript suggests: 'await' has no effect on the type of this expression.", + "category": "Suggestion", + "code": 80007, + "message": "'await' has no effect on the type of this expression.", + "source": "generated" + }, + "80008": { + "body": "TypeScript suggests: Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.", + "category": "Suggestion", + "code": 80008, + "message": "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.", + "source": "generated" + }, + "80009": { + "body": "TypeScript suggests: JSDoc typedef may be converted to TypeScript type.", + "category": "Suggestion", + "code": 80009, + "message": "JSDoc typedef may be converted to TypeScript type.", + "source": "generated" + }, + "80010": { + "body": "TypeScript suggests: JSDoc typedefs may be converted to TypeScript types.", + "category": "Suggestion", + "code": 80010, + "message": "JSDoc typedefs may be converted to TypeScript types.", + "source": "generated" + }, + "90001": { + "body": "TypeScript reports: Add missing 'super()' call", + "category": "Message", + "code": 90001, + "message": "Add missing 'super()' call", + "source": "generated" + }, + "90002": { + "body": "TypeScript reports: Make 'super()' call the first statement in the constructor", + "category": "Message", + "code": 90002, + "message": "Make 'super()' call the first statement in the constructor", + "source": "generated" + }, + "90003": { + "body": "TypeScript reports: Change 'extends' to 'implements'", + "category": "Message", + "code": 90003, + "message": "Change 'extends' to 'implements'", + "source": "generated" + }, + "90004": { + "body": "TypeScript reports: Remove unused declaration for: '{0}'", + "category": "Message", + "code": 90004, + "message": "Remove unused declaration for: '{0}'", + "source": "generated" + }, + "90005": { + "body": "TypeScript reports: Remove import from '{0}'", + "category": "Message", + "code": 90005, + "message": "Remove import from '{0}'", + "source": "generated" + }, + "90006": { + "body": "TypeScript reports: Implement interface '{0}'", + "category": "Message", + "code": 90006, + "message": "Implement interface '{0}'", + "source": "generated" + }, + "90007": { + "body": "TypeScript reports: Implement inherited abstract class", + "category": "Message", + "code": 90007, + "message": "Implement inherited abstract class", + "source": "generated" + }, + "90008": { + "body": "TypeScript reports: Add '{0}.' to unresolved variable", + "category": "Message", + "code": 90008, + "message": "Add '{0}.' to unresolved variable", + "source": "generated" + }, + "90010": { + "body": "TypeScript reports: Remove variable statement", + "category": "Message", + "code": 90010, + "message": "Remove variable statement", + "source": "generated" + }, + "90011": { + "body": "TypeScript reports: Remove template tag", + "category": "Message", + "code": 90011, + "message": "Remove template tag", + "source": "generated" + }, + "90012": { + "body": "TypeScript reports: Remove type parameters", + "category": "Message", + "code": 90012, + "message": "Remove type parameters", + "source": "generated" + }, + "90013": { + "body": "TypeScript reports: Import '{0}' from \"{1}\"", + "category": "Message", + "code": 90013, + "message": "Import '{0}' from \"{1}\"", + "source": "generated" + }, + "90014": { + "body": "TypeScript reports: Change '{0}' to '{1}'", + "category": "Message", + "code": 90014, + "message": "Change '{0}' to '{1}'", + "source": "generated" + }, + "90016": { + "body": "TypeScript reports: Declare property '{0}'", + "category": "Message", + "code": 90016, + "message": "Declare property '{0}'", + "source": "generated" + }, + "90017": { + "body": "TypeScript reports: Add index signature for property '{0}'", + "category": "Message", + "code": 90017, + "message": "Add index signature for property '{0}'", + "source": "generated" + }, + "90018": { + "body": "TypeScript reports: Disable checking for this file", + "category": "Message", + "code": 90018, + "message": "Disable checking for this file", + "source": "generated" + }, + "90019": { + "body": "TypeScript reports: Ignore this error message", + "category": "Message", + "code": 90019, + "message": "Ignore this error message", + "source": "generated" + }, + "90020": { + "body": "TypeScript reports: Initialize property '{0}' in the constructor", + "category": "Message", + "code": 90020, + "message": "Initialize property '{0}' in the constructor", + "source": "generated" + }, + "90021": { + "body": "TypeScript reports: Initialize static property '{0}'", + "category": "Message", + "code": 90021, + "message": "Initialize static property '{0}'", + "source": "generated" + }, + "90022": { + "body": "TypeScript reports: Change spelling to '{0}'", + "category": "Message", + "code": 90022, + "message": "Change spelling to '{0}'", + "source": "generated" + }, + "90023": { + "body": "TypeScript reports: Declare method '{0}'", + "category": "Message", + "code": 90023, + "message": "Declare method '{0}'", + "source": "generated" + }, + "90024": { + "body": "TypeScript reports: Declare static method '{0}'", + "category": "Message", + "code": 90024, + "message": "Declare static method '{0}'", + "source": "generated" + }, + "90025": { + "body": "TypeScript reports: Prefix '{0}' with an underscore", + "category": "Message", + "code": 90025, + "message": "Prefix '{0}' with an underscore", + "source": "generated" + }, + "90026": { + "body": "TypeScript reports: Rewrite as the indexed access type '{0}'", + "category": "Message", + "code": 90026, + "message": "Rewrite as the indexed access type '{0}'", + "source": "generated" + }, + "90027": { + "body": "TypeScript reports: Declare static property '{0}'", + "category": "Message", + "code": 90027, + "message": "Declare static property '{0}'", + "source": "generated" + }, + "90028": { + "body": "TypeScript reports: Call decorator expression", + "category": "Message", + "code": 90028, + "message": "Call decorator expression", + "source": "generated" + }, + "90029": { + "body": "TypeScript reports: Add async modifier to containing function", + "category": "Message", + "code": 90029, + "message": "Add async modifier to containing function", + "source": "generated" + }, + "90030": { + "body": "TypeScript reports: Replace 'infer {0}' with 'unknown'", + "category": "Message", + "code": 90030, + "message": "Replace 'infer {0}' with 'unknown'", + "source": "generated" + }, + "90031": { + "body": "TypeScript reports: Replace all unused 'infer' with 'unknown'", + "category": "Message", + "code": 90031, + "message": "Replace all unused 'infer' with 'unknown'", + "source": "generated" + }, + "90034": { + "body": "TypeScript reports: Add parameter name", + "category": "Message", + "code": 90034, + "message": "Add parameter name", + "source": "generated" + }, + "90035": { + "body": "TypeScript reports: Declare private property '{0}'", + "category": "Message", + "code": 90035, + "message": "Declare private property '{0}'", + "source": "generated" + }, + "90036": { + "body": "TypeScript reports: Replace '{0}' with 'Promise<{1}>'", + "category": "Message", + "code": 90036, + "message": "Replace '{0}' with 'Promise<{1}>'", + "source": "generated" + }, + "90037": { + "body": "TypeScript reports: Fix all incorrect return type of an async functions", + "category": "Message", + "code": 90037, + "message": "Fix all incorrect return type of an async functions", + "source": "generated" + }, + "90038": { + "body": "TypeScript reports: Declare private method '{0}'", + "category": "Message", + "code": 90038, + "message": "Declare private method '{0}'", + "source": "generated" + }, + "90039": { + "body": "TypeScript reports: Remove unused destructuring declaration", + "category": "Message", + "code": 90039, + "message": "Remove unused destructuring declaration", + "source": "generated" + }, + "90041": { + "body": "TypeScript reports: Remove unused declarations for: '{0}'", + "category": "Message", + "code": 90041, + "message": "Remove unused declarations for: '{0}'", + "source": "generated" + }, + "90053": { + "body": "TypeScript reports: Declare a private field named '{0}'.", + "category": "Message", + "code": 90053, + "message": "Declare a private field named '{0}'.", + "source": "generated" + }, + "90054": { + "body": "TypeScript reports: Includes imports of types referenced by '{0}'", + "category": "Message", + "code": 90054, + "message": "Includes imports of types referenced by '{0}'", + "source": "generated" + }, + "90055": { + "body": "TypeScript reports: Remove 'type' from import declaration from \"{0}\"", + "category": "Message", + "code": 90055, + "message": "Remove 'type' from import declaration from \"{0}\"", + "source": "generated" + }, + "90056": { + "body": "TypeScript reports: Remove 'type' from import of '{0}' from \"{1}\"", + "category": "Message", + "code": 90056, + "message": "Remove 'type' from import of '{0}' from \"{1}\"", + "source": "generated" + }, + "90057": { + "body": "TypeScript reports: Add import from \"{0}\"", + "category": "Message", + "code": 90057, + "message": "Add import from \"{0}\"", + "source": "generated" + }, + "90058": { + "body": "TypeScript reports: Update import from \"{0}\"", + "category": "Message", + "code": 90058, + "message": "Update import from \"{0}\"", + "source": "generated" + }, + "90059": { + "body": "TypeScript reports: Export '{0}' from module '{1}'", + "category": "Message", + "code": 90059, + "message": "Export '{0}' from module '{1}'", + "source": "generated" + }, + "90060": { + "body": "TypeScript reports: Export all referenced locals", + "category": "Message", + "code": 90060, + "message": "Export all referenced locals", + "source": "generated" + }, + "90061": { + "body": "TypeScript reports: Update modifiers of '{0}'", + "category": "Message", + "code": 90061, + "message": "Update modifiers of '{0}'", + "source": "generated" + }, + "90062": { + "body": "TypeScript reports: Add annotation of type '{0}'", + "category": "Message", + "code": 90062, + "message": "Add annotation of type '{0}'", + "source": "generated" + }, + "90063": { + "body": "TypeScript reports: Add return type '{0}'", + "category": "Message", + "code": 90063, + "message": "Add return type '{0}'", + "source": "generated" + }, + "90064": { + "body": "TypeScript reports: Extract base class to variable", + "category": "Message", + "code": 90064, + "message": "Extract base class to variable", + "source": "generated" + }, + "90065": { + "body": "TypeScript reports: Extract default export to variable", + "category": "Message", + "code": 90065, + "message": "Extract default export to variable", + "source": "generated" + }, + "90066": { + "body": "TypeScript reports: Extract binding expressions to variable", + "category": "Message", + "code": 90066, + "message": "Extract binding expressions to variable", + "source": "generated" + }, + "90067": { + "body": "TypeScript reports: Add all missing type annotations", + "category": "Message", + "code": 90067, + "message": "Add all missing type annotations", + "source": "generated" + }, + "90068": { + "body": "TypeScript reports: Add satisfies and an inline type assertion with '{0}'", + "category": "Message", + "code": 90068, + "message": "Add satisfies and an inline type assertion with '{0}'", + "source": "generated" + }, + "90069": { + "body": "TypeScript reports: Extract to variable and replace with '{0} as typeof {0}'", + "category": "Message", + "code": 90069, + "message": "Extract to variable and replace with '{0} as typeof {0}'", + "source": "generated" + }, + "90070": { + "body": "TypeScript reports: Mark array literal as const", + "category": "Message", + "code": 90070, + "message": "Mark array literal as const", + "source": "generated" + }, + "90071": { + "body": "TypeScript reports: Annotate types of properties expando function in a namespace", + "category": "Message", + "code": 90071, + "message": "Annotate types of properties expando function in a namespace", + "source": "generated" + }, + "95001": { + "body": "TypeScript reports: Convert function to an ES2015 class", + "category": "Message", + "code": 95001, + "message": "Convert function to an ES2015 class", + "source": "generated" + }, + "95003": { + "body": "TypeScript reports: Convert '{0}' to '{1} in {0}'", + "category": "Message", + "code": 95003, + "message": "Convert '{0}' to '{1} in {0}'", + "source": "generated" + }, + "95004": { + "body": "TypeScript reports: Extract to {0} in {1}", + "category": "Message", + "code": 95004, + "message": "Extract to {0} in {1}", + "source": "generated" + }, + "95005": { + "body": "TypeScript reports: Extract function", + "category": "Message", + "code": 95005, + "message": "Extract function", + "source": "generated" + }, + "95006": { + "body": "TypeScript reports: Extract constant", + "category": "Message", + "code": 95006, + "message": "Extract constant", + "source": "generated" + }, + "95007": { + "body": "TypeScript reports: Extract to {0} in enclosing scope", + "category": "Message", + "code": 95007, + "message": "Extract to {0} in enclosing scope", + "source": "generated" + }, + "95008": { + "body": "TypeScript reports: Extract to {0} in {1} scope", + "category": "Message", + "code": 95008, + "message": "Extract to {0} in {1} scope", + "source": "generated" + }, + "95009": { + "body": "TypeScript reports: Annotate with type from JSDoc", + "category": "Message", + "code": 95009, + "message": "Annotate with type from JSDoc", + "source": "generated" + }, + "95011": { + "body": "TypeScript reports: Infer type of '{0}' from usage", + "category": "Message", + "code": 95011, + "message": "Infer type of '{0}' from usage", + "source": "generated" + }, + "95012": { + "body": "TypeScript reports: Infer parameter types from usage", + "category": "Message", + "code": 95012, + "message": "Infer parameter types from usage", + "source": "generated" + }, + "95013": { + "body": "TypeScript reports: Convert to default import", + "category": "Message", + "code": 95013, + "message": "Convert to default import", + "source": "generated" + }, + "95014": { + "body": "TypeScript reports: Install '{0}'", + "category": "Message", + "code": 95014, + "message": "Install '{0}'", + "source": "generated" + }, + "95015": { + "body": "TypeScript reports: Replace import with '{0}'.", + "category": "Message", + "code": 95015, + "message": "Replace import with '{0}'.", + "source": "generated" + }, + "95016": { + "body": "TypeScript reports: Use synthetic 'default' member.", + "category": "Message", + "code": 95016, + "message": "Use synthetic 'default' member.", + "source": "generated" + }, + "95017": { + "body": "TypeScript reports: Convert to ES module", + "category": "Message", + "code": 95017, + "message": "Convert to ES module", + "source": "generated" + }, + "95018": { + "body": "TypeScript reports: Add 'undefined' type to property '{0}'", + "category": "Message", + "code": 95018, + "message": "Add 'undefined' type to property '{0}'", + "source": "generated" + }, + "95019": { + "body": "TypeScript reports: Add initializer to property '{0}'", + "category": "Message", + "code": 95019, + "message": "Add initializer to property '{0}'", + "source": "generated" + }, + "95020": { + "body": "TypeScript reports: Add definite assignment assertion to property '{0}'", + "category": "Message", + "code": 95020, + "message": "Add definite assignment assertion to property '{0}'", + "source": "generated" + }, + "95021": { + "body": "TypeScript reports: Convert all type literals to mapped type", + "category": "Message", + "code": 95021, + "message": "Convert all type literals to mapped type", + "source": "generated" + }, + "95022": { + "body": "TypeScript reports: Add all missing members", + "category": "Message", + "code": 95022, + "message": "Add all missing members", + "source": "generated" + }, + "95023": { + "body": "TypeScript reports: Infer all types from usage", + "category": "Message", + "code": 95023, + "message": "Infer all types from usage", + "source": "generated" + }, + "95024": { + "body": "TypeScript reports: Delete all unused declarations", + "category": "Message", + "code": 95024, + "message": "Delete all unused declarations", + "source": "generated" + }, + "95025": { + "body": "TypeScript reports: Prefix all unused declarations with '_' where possible", + "category": "Message", + "code": 95025, + "message": "Prefix all unused declarations with '_' where possible", + "source": "generated" + }, + "95026": { + "body": "TypeScript reports: Fix all detected spelling errors", + "category": "Message", + "code": 95026, + "message": "Fix all detected spelling errors", + "source": "generated" + }, + "95027": { + "body": "TypeScript reports: Add initializers to all uninitialized properties", + "category": "Message", + "code": 95027, + "message": "Add initializers to all uninitialized properties", + "source": "generated" + }, + "95028": { + "body": "TypeScript reports: Add definite assignment assertions to all uninitialized properties", + "category": "Message", + "code": 95028, + "message": "Add definite assignment assertions to all uninitialized properties", + "source": "generated" + }, + "95029": { + "body": "TypeScript reports: Add undefined type to all uninitialized properties", + "category": "Message", + "code": 95029, + "message": "Add undefined type to all uninitialized properties", + "source": "generated" + }, + "95030": { + "body": "TypeScript reports: Change all jsdoc-style types to TypeScript", + "category": "Message", + "code": 95030, + "message": "Change all jsdoc-style types to TypeScript", + "source": "generated" + }, + "95031": { + "body": "TypeScript reports: Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)", + "category": "Message", + "code": 95031, + "message": "Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)", + "source": "generated" + }, + "95032": { + "body": "TypeScript reports: Implement all unimplemented interfaces", + "category": "Message", + "code": 95032, + "message": "Implement all unimplemented interfaces", + "source": "generated" + }, + "95033": { + "body": "TypeScript reports: Install all missing types packages", + "category": "Message", + "code": 95033, + "message": "Install all missing types packages", + "source": "generated" + }, + "95034": { + "body": "TypeScript reports: Rewrite all as indexed access types", + "category": "Message", + "code": 95034, + "message": "Rewrite all as indexed access types", + "source": "generated" + }, + "95035": { + "body": "TypeScript reports: Convert all to default imports", + "category": "Message", + "code": 95035, + "message": "Convert all to default imports", + "source": "generated" + }, + "95036": { + "body": "TypeScript reports: Make all 'super()' calls the first statement in their constructor", + "category": "Message", + "code": 95036, + "message": "Make all 'super()' calls the first statement in their constructor", + "source": "generated" + }, + "95037": { + "body": "TypeScript reports: Add qualifier to all unresolved variables matching a member name", + "category": "Message", + "code": 95037, + "message": "Add qualifier to all unresolved variables matching a member name", + "source": "generated" + }, + "95038": { + "body": "TypeScript reports: Change all extended interfaces to 'implements'", + "category": "Message", + "code": 95038, + "message": "Change all extended interfaces to 'implements'", + "source": "generated" + }, + "95039": { + "body": "TypeScript reports: Add all missing super calls", + "category": "Message", + "code": 95039, + "message": "Add all missing super calls", + "source": "generated" + }, + "95040": { + "body": "TypeScript reports: Implement all inherited abstract classes", + "category": "Message", + "code": 95040, + "message": "Implement all inherited abstract classes", + "source": "generated" + }, + "95041": { + "body": "TypeScript reports: Add all missing 'async' modifiers", + "category": "Message", + "code": 95041, + "message": "Add all missing 'async' modifiers", + "source": "generated" + }, + "95042": { + "body": "TypeScript reports: Add '@ts-ignore' to all error messages", + "category": "Message", + "code": 95042, + "message": "Add '@ts-ignore' to all error messages", + "source": "generated" + }, + "95043": { + "body": "TypeScript reports: Annotate everything with types from JSDoc", + "category": "Message", + "code": 95043, + "message": "Annotate everything with types from JSDoc", + "source": "generated" + }, + "95044": { + "body": "TypeScript reports: Add '()' to all uncalled decorators", + "category": "Message", + "code": 95044, + "message": "Add '()' to all uncalled decorators", + "source": "generated" + }, + "95045": { + "body": "TypeScript reports: Convert all constructor functions to classes", + "category": "Message", + "code": 95045, + "message": "Convert all constructor functions to classes", + "source": "generated" + }, + "95046": { + "body": "TypeScript reports: Generate 'get' and 'set' accessors", + "category": "Message", + "code": 95046, + "message": "Generate 'get' and 'set' accessors", + "source": "generated" + }, + "95047": { + "body": "TypeScript reports: Convert 'require' to 'import'", + "category": "Message", + "code": 95047, + "message": "Convert 'require' to 'import'", + "source": "generated" + }, + "95048": { + "body": "TypeScript reports: Convert all 'require' to 'import'", + "category": "Message", + "code": 95048, + "message": "Convert all 'require' to 'import'", + "source": "generated" + }, + "95049": { + "body": "TypeScript reports: Move to a new file", + "category": "Message", + "code": 95049, + "message": "Move to a new file", + "source": "generated" + }, + "95050": { + "body": "I've spotted a bit of code that will never be run.", + "category": "Message", + "code": 95050, + "message": "Remove unreachable code", + "source": "curated" + }, + "95051": { + "body": "TypeScript reports: Remove all unreachable code", + "category": "Message", + "code": 95051, + "message": "Remove all unreachable code", + "source": "generated" + }, + "95052": { + "body": "TypeScript reports: Add missing 'typeof'", + "category": "Message", + "code": 95052, + "message": "Add missing 'typeof'", + "source": "generated" + }, + "95053": { + "body": "TypeScript reports: Remove unused label", + "category": "Message", + "code": 95053, + "message": "Remove unused label", + "source": "generated" + }, + "95054": { + "body": "TypeScript reports: Remove all unused labels", + "category": "Message", + "code": 95054, + "message": "Remove all unused labels", + "source": "generated" + }, + "95055": { + "body": "TypeScript reports: Convert '{0}' to mapped object type", + "category": "Message", + "code": 95055, + "message": "Convert '{0}' to mapped object type", + "source": "generated" + }, + "95056": { + "body": "TypeScript reports: Convert namespace import to named imports", + "category": "Message", + "code": 95056, + "message": "Convert namespace import to named imports", + "source": "generated" + }, + "95057": { + "body": "TypeScript reports: Convert named imports to namespace import", + "category": "Message", + "code": 95057, + "message": "Convert named imports to namespace import", + "source": "generated" + }, + "95058": { + "body": "TypeScript reports: Add or remove braces in an arrow function", + "category": "Message", + "code": 95058, + "message": "Add or remove braces in an arrow function", + "source": "generated" + }, + "95059": { + "body": "TypeScript reports: Add braces to arrow function", + "category": "Message", + "code": 95059, + "message": "Add braces to arrow function", + "source": "generated" + }, + "95060": { + "body": "TypeScript reports: Remove braces from arrow function", + "category": "Message", + "code": 95060, + "message": "Remove braces from arrow function", + "source": "generated" + }, + "95061": { + "body": "TypeScript reports: Convert default export to named export", + "category": "Message", + "code": 95061, + "message": "Convert default export to named export", + "source": "generated" + }, + "95062": { + "body": "TypeScript reports: Convert named export to default export", + "category": "Message", + "code": 95062, + "message": "Convert named export to default export", + "source": "generated" + }, + "95063": { + "body": "TypeScript reports: Add missing enum member '{0}'", + "category": "Message", + "code": 95063, + "message": "Add missing enum member '{0}'", + "source": "generated" + }, + "95064": { + "body": "TypeScript reports: Add all missing imports", + "category": "Message", + "code": 95064, + "message": "Add all missing imports", + "source": "generated" + }, + "95065": { + "body": "TypeScript reports: Convert to async function", + "category": "Message", + "code": 95065, + "message": "Convert to async function", + "source": "generated" + }, + "95066": { + "body": "TypeScript reports: Convert all to async functions", + "category": "Message", + "code": 95066, + "message": "Convert all to async functions", + "source": "generated" + }, + "95067": { + "body": "TypeScript reports: Add missing call parentheses", + "category": "Message", + "code": 95067, + "message": "Add missing call parentheses", + "source": "generated" + }, + "95068": { + "body": "TypeScript reports: Add all missing call parentheses", + "category": "Message", + "code": 95068, + "message": "Add all missing call parentheses", + "source": "generated" + }, + "95069": { + "body": "TypeScript reports: Add 'unknown' conversion for non-overlapping types", + "category": "Message", + "code": 95069, + "message": "Add 'unknown' conversion for non-overlapping types", + "source": "generated" + }, + "95070": { + "body": "TypeScript reports: Add 'unknown' to all conversions of non-overlapping types", + "category": "Message", + "code": 95070, + "message": "Add 'unknown' to all conversions of non-overlapping types", + "source": "generated" + }, + "95071": { + "body": "TypeScript reports: Add missing 'new' operator to call", + "category": "Message", + "code": 95071, + "message": "Add missing 'new' operator to call", + "source": "generated" + }, + "95072": { + "body": "TypeScript reports: Add missing 'new' operator to all calls", + "category": "Message", + "code": 95072, + "message": "Add missing 'new' operator to all calls", + "source": "generated" + }, + "95073": { + "body": "TypeScript reports: Add names to all parameters without names", + "category": "Message", + "code": 95073, + "message": "Add names to all parameters without names", + "source": "generated" + }, + "95074": { + "body": "TypeScript reports: Enable the 'experimentalDecorators' option in your configuration file", + "category": "Message", + "code": 95074, + "message": "Enable the 'experimentalDecorators' option in your configuration file", + "source": "generated" + }, + "95075": { + "body": "TypeScript reports: Convert parameters to destructured object", + "category": "Message", + "code": 95075, + "message": "Convert parameters to destructured object", + "source": "generated" + }, + "95077": { + "body": "TypeScript reports: Extract type", + "category": "Message", + "code": 95077, + "message": "Extract type", + "source": "generated" + }, + "95078": { + "body": "TypeScript reports: Extract to type alias", + "category": "Message", + "code": 95078, + "message": "Extract to type alias", + "source": "generated" + }, + "95079": { + "body": "TypeScript reports: Extract to typedef", + "category": "Message", + "code": 95079, + "message": "Extract to typedef", + "source": "generated" + }, + "95080": { + "body": "TypeScript reports: Infer 'this' type of '{0}' from usage", + "category": "Message", + "code": 95080, + "message": "Infer 'this' type of '{0}' from usage", + "source": "generated" + }, + "95081": { + "body": "TypeScript reports: Add 'const' to unresolved variable", + "category": "Message", + "code": 95081, + "message": "Add 'const' to unresolved variable", + "source": "generated" + }, + "95082": { + "body": "TypeScript reports: Add 'const' to all unresolved variables", + "category": "Message", + "code": 95082, + "message": "Add 'const' to all unresolved variables", + "source": "generated" + }, + "95083": { + "body": "TypeScript reports: Add 'await'", + "category": "Message", + "code": 95083, + "message": "Add 'await'", + "source": "generated" + }, + "95084": { + "body": "TypeScript reports: Add 'await' to initializer for '{0}'", + "category": "Message", + "code": 95084, + "message": "Add 'await' to initializer for '{0}'", + "source": "generated" + }, + "95085": { + "body": "TypeScript reports: Fix all expressions possibly missing 'await'", + "category": "Message", + "code": 95085, + "message": "Fix all expressions possibly missing 'await'", + "source": "generated" + }, + "95086": { + "body": "TypeScript reports: Remove unnecessary 'await'", + "category": "Message", + "code": 95086, + "message": "Remove unnecessary 'await'", + "source": "generated" + }, + "95087": { + "body": "TypeScript reports: Remove all unnecessary uses of 'await'", + "category": "Message", + "code": 95087, + "message": "Remove all unnecessary uses of 'await'", + "source": "generated" + }, + "95088": { + "body": "TypeScript reports: Enable the '--jsx' flag in your configuration file", + "category": "Message", + "code": 95088, + "message": "Enable the '--jsx' flag in your configuration file", + "source": "generated" + }, + "95089": { + "body": "TypeScript reports: Add 'await' to initializers", + "category": "Message", + "code": 95089, + "message": "Add 'await' to initializers", + "source": "generated" + }, + "95090": { + "body": "TypeScript reports: Extract to interface", + "category": "Message", + "code": 95090, + "message": "Extract to interface", + "source": "generated" + }, + "95091": { + "body": "TypeScript reports: Convert to a bigint numeric literal", + "category": "Message", + "code": 95091, + "message": "Convert to a bigint numeric literal", + "source": "generated" + }, + "95092": { + "body": "TypeScript reports: Convert all to bigint numeric literals", + "category": "Message", + "code": 95092, + "message": "Convert all to bigint numeric literals", + "source": "generated" + }, + "95093": { + "body": "TypeScript reports: Convert 'const' to 'let'", + "category": "Message", + "code": 95093, + "message": "Convert 'const' to 'let'", + "source": "generated" + }, + "95094": { + "body": "TypeScript reports: Prefix with 'declare'", + "category": "Message", + "code": 95094, + "message": "Prefix with 'declare'", + "source": "generated" + }, + "95095": { + "body": "TypeScript reports: Prefix all incorrect property declarations with 'declare'", + "category": "Message", + "code": 95095, + "message": "Prefix all incorrect property declarations with 'declare'", + "source": "generated" + }, + "95096": { + "body": "TypeScript reports: Convert to template string", + "category": "Message", + "code": 95096, + "message": "Convert to template string", + "source": "generated" + }, + "95097": { + "body": "TypeScript reports: Add 'export {}' to make this file into a module", + "category": "Message", + "code": 95097, + "message": "Add 'export {}' to make this file into a module", + "source": "generated" + }, + "95098": { + "body": "TypeScript reports: Set the 'target' option in your configuration file to '{0}'", + "category": "Message", + "code": 95098, + "message": "Set the 'target' option in your configuration file to '{0}'", + "source": "generated" + }, + "95099": { + "body": "TypeScript reports: Set the 'module' option in your configuration file to '{0}'", + "category": "Message", + "code": 95099, + "message": "Set the 'module' option in your configuration file to '{0}'", + "source": "generated" + }, + "95100": { + "body": "TypeScript reports: Convert invalid character to its html entity code", + "category": "Message", + "code": 95100, + "message": "Convert invalid character to its html entity code", + "source": "generated" + }, + "95101": { + "body": "TypeScript reports: Convert all invalid characters to HTML entity code", + "category": "Message", + "code": 95101, + "message": "Convert all invalid characters to HTML entity code", + "source": "generated" + }, + "95102": { + "body": "TypeScript reports: Convert all 'const' to 'let'", + "category": "Message", + "code": 95102, + "message": "Convert all 'const' to 'let'", + "source": "generated" + }, + "95105": { + "body": "TypeScript reports: Convert function expression '{0}' to arrow function", + "category": "Message", + "code": 95105, + "message": "Convert function expression '{0}' to arrow function", + "source": "generated" + }, + "95106": { + "body": "TypeScript reports: Convert function declaration '{0}' to arrow function", + "category": "Message", + "code": 95106, + "message": "Convert function declaration '{0}' to arrow function", + "source": "generated" + }, + "95107": { + "body": "TypeScript reports: Fix all implicit-'this' errors", + "category": "Message", + "code": 95107, + "message": "Fix all implicit-'this' errors", + "source": "generated" + }, + "95108": { + "body": "TypeScript reports: Wrap invalid character in an expression container", + "category": "Message", + "code": 95108, + "message": "Wrap invalid character in an expression container", + "source": "generated" + }, + "95109": { + "body": "TypeScript reports: Wrap all invalid characters in an expression container", + "category": "Message", + "code": 95109, + "message": "Wrap all invalid characters in an expression container", + "source": "generated" + }, + "95110": { + "body": "TypeScript reports: Visit https://aka.ms/tsconfig to read more about this file", + "category": "Message", + "code": 95110, + "message": "Visit https://aka.ms/tsconfig to read more about this file", + "source": "generated" + }, + "95111": { + "body": "TypeScript reports: Add a return statement", + "category": "Message", + "code": 95111, + "message": "Add a return statement", + "source": "generated" + }, + "95112": { + "body": "TypeScript reports: Remove braces from arrow function body", + "category": "Message", + "code": 95112, + "message": "Remove braces from arrow function body", + "source": "generated" + }, + "95113": { + "body": "TypeScript reports: Wrap the following body with parentheses which should be an object literal", + "category": "Message", + "code": 95113, + "message": "Wrap the following body with parentheses which should be an object literal", + "source": "generated" + }, + "95114": { + "body": "TypeScript reports: Add all missing return statement", + "category": "Message", + "code": 95114, + "message": "Add all missing return statement", + "source": "generated" + }, + "95115": { + "body": "TypeScript reports: Remove braces from all arrow function bodies with relevant issues", + "category": "Message", + "code": 95115, + "message": "Remove braces from all arrow function bodies with relevant issues", + "source": "generated" + }, + "95116": { + "body": "TypeScript reports: Wrap all object literal with parentheses", + "category": "Message", + "code": 95116, + "message": "Wrap all object literal with parentheses", + "source": "generated" + }, + "95117": { + "body": "TypeScript reports: Move labeled tuple element modifiers to labels", + "category": "Message", + "code": 95117, + "message": "Move labeled tuple element modifiers to labels", + "source": "generated" + }, + "95118": { + "body": "TypeScript reports: Convert overload list to single signature", + "category": "Message", + "code": 95118, + "message": "Convert overload list to single signature", + "source": "generated" + }, + "95119": { + "body": "TypeScript reports: Generate 'get' and 'set' accessors for all overriding properties", + "category": "Message", + "code": 95119, + "message": "Generate 'get' and 'set' accessors for all overriding properties", + "source": "generated" + }, + "95120": { + "body": "TypeScript reports: Wrap in JSX fragment", + "category": "Message", + "code": 95120, + "message": "Wrap in JSX fragment", + "source": "generated" + }, + "95121": { + "body": "TypeScript reports: Wrap all unparented JSX in JSX fragment", + "category": "Message", + "code": 95121, + "message": "Wrap all unparented JSX in JSX fragment", + "source": "generated" + }, + "95122": { + "body": "TypeScript reports: Convert arrow function or function expression", + "category": "Message", + "code": 95122, + "message": "Convert arrow function or function expression", + "source": "generated" + }, + "95123": { + "body": "TypeScript reports: Convert to anonymous function", + "category": "Message", + "code": 95123, + "message": "Convert to anonymous function", + "source": "generated" + }, + "95124": { + "body": "TypeScript reports: Convert to named function", + "category": "Message", + "code": 95124, + "message": "Convert to named function", + "source": "generated" + }, + "95125": { + "body": "TypeScript reports: Convert to arrow function", + "category": "Message", + "code": 95125, + "message": "Convert to arrow function", + "source": "generated" + }, + "95126": { + "body": "TypeScript reports: Remove parentheses", + "category": "Message", + "code": 95126, + "message": "Remove parentheses", + "source": "generated" + }, + "95127": { + "body": "TypeScript reports: Could not find a containing arrow function", + "category": "Message", + "code": 95127, + "message": "Could not find a containing arrow function", + "source": "generated" + }, + "95128": { + "body": "TypeScript reports: Containing function is not an arrow function", + "category": "Message", + "code": 95128, + "message": "Containing function is not an arrow function", + "source": "generated" + }, + "95129": { + "body": "TypeScript reports: Could not find export statement", + "category": "Message", + "code": 95129, + "message": "Could not find export statement", + "source": "generated" + }, + "95130": { + "body": "TypeScript reports: This file already has a default export", + "category": "Message", + "code": 95130, + "message": "This file already has a default export", + "source": "generated" + }, + "95131": { + "body": "TypeScript reports: Could not find import clause", + "category": "Message", + "code": 95131, + "message": "Could not find import clause", + "source": "generated" + }, + "95132": { + "body": "TypeScript reports: Could not find namespace import or named imports", + "category": "Message", + "code": 95132, + "message": "Could not find namespace import or named imports", + "source": "generated" + }, + "95133": { + "body": "TypeScript reports: Selection is not a valid type node", + "category": "Message", + "code": 95133, + "message": "Selection is not a valid type node", + "source": "generated" + }, + "95134": { + "body": "TypeScript reports: No type could be extracted from this type node", + "category": "Message", + "code": 95134, + "message": "No type could be extracted from this type node", + "source": "generated" + }, + "95135": { + "body": "TypeScript reports: Could not find property for which to generate accessor", + "category": "Message", + "code": 95135, + "message": "Could not find property for which to generate accessor", + "source": "generated" + }, + "95136": { + "body": "TypeScript reports: Name is not valid", + "category": "Message", + "code": 95136, + "message": "Name is not valid", + "source": "generated" + }, + "95137": { + "body": "TypeScript reports: Can only convert property with modifier", + "category": "Message", + "code": 95137, + "message": "Can only convert property with modifier", + "source": "generated" + }, + "95138": { + "body": "TypeScript reports: Switch each misused '{0}' to '{1}'", + "category": "Message", + "code": 95138, + "message": "Switch each misused '{0}' to '{1}'", + "source": "generated" + }, + "95139": { + "body": "TypeScript reports: Convert to optional chain expression", + "category": "Message", + "code": 95139, + "message": "Convert to optional chain expression", + "source": "generated" + }, + "95140": { + "body": "TypeScript reports: Could not find convertible access expression", + "category": "Message", + "code": 95140, + "message": "Could not find convertible access expression", + "source": "generated" + }, + "95141": { + "body": "TypeScript reports: Could not find matching access expressions", + "category": "Message", + "code": 95141, + "message": "Could not find matching access expressions", + "source": "generated" + }, + "95142": { + "body": "TypeScript reports: Can only convert logical AND access chains", + "category": "Message", + "code": 95142, + "message": "Can only convert logical AND access chains", + "source": "generated" + }, + "95143": { + "body": "TypeScript reports: Add 'void' to Promise resolved without a value", + "category": "Message", + "code": 95143, + "message": "Add 'void' to Promise resolved without a value", + "source": "generated" + }, + "95144": { + "body": "TypeScript reports: Add 'void' to all Promises resolved without a value", + "category": "Message", + "code": 95144, + "message": "Add 'void' to all Promises resolved without a value", + "source": "generated" + }, + "95145": { + "body": "TypeScript reports: Use element access for '{0}'", + "category": "Message", + "code": 95145, + "message": "Use element access for '{0}'", + "source": "generated" + }, + "95146": { + "body": "TypeScript reports: Use element access for all undeclared properties.", + "category": "Message", + "code": 95146, + "message": "Use element access for all undeclared properties.", + "source": "generated" + }, + "95147": { + "body": "TypeScript reports: Delete all unused imports", + "category": "Message", + "code": 95147, + "message": "Delete all unused imports", + "source": "generated" + }, + "95148": { + "body": "TypeScript reports: Infer function return type", + "category": "Message", + "code": 95148, + "message": "Infer function return type", + "source": "generated" + }, + "95149": { + "body": "TypeScript reports: Return type must be inferred from a function", + "category": "Message", + "code": 95149, + "message": "Return type must be inferred from a function", + "source": "generated" + }, + "95150": { + "body": "TypeScript reports: Could not determine function return type", + "category": "Message", + "code": 95150, + "message": "Could not determine function return type", + "source": "generated" + }, + "95151": { + "body": "TypeScript reports: Could not convert to arrow function", + "category": "Message", + "code": 95151, + "message": "Could not convert to arrow function", + "source": "generated" + }, + "95152": { + "body": "TypeScript reports: Could not convert to named function", + "category": "Message", + "code": 95152, + "message": "Could not convert to named function", + "source": "generated" + }, + "95153": { + "body": "TypeScript reports: Could not convert to anonymous function", + "category": "Message", + "code": 95153, + "message": "Could not convert to anonymous function", + "source": "generated" + }, + "95154": { + "body": "TypeScript reports: Can only convert string concatenations and string literals", + "category": "Message", + "code": 95154, + "message": "Can only convert string concatenations and string literals", + "source": "generated" + }, + "95155": { + "body": "TypeScript reports: Selection is not a valid statement or statements", + "category": "Message", + "code": 95155, + "message": "Selection is not a valid statement or statements", + "source": "generated" + }, + "95156": { + "body": "TypeScript reports: Add missing function declaration '{0}'", + "category": "Message", + "code": 95156, + "message": "Add missing function declaration '{0}'", + "source": "generated" + }, + "95157": { + "body": "TypeScript reports: Add all missing function declarations", + "category": "Message", + "code": 95157, + "message": "Add all missing function declarations", + "source": "generated" + }, + "95158": { + "body": "TypeScript reports: Method not implemented.", + "category": "Message", + "code": 95158, + "message": "Method not implemented.", + "source": "generated" + }, + "95159": { + "body": "TypeScript reports: Function not implemented.", + "category": "Message", + "code": 95159, + "message": "Function not implemented.", + "source": "generated" + }, + "95160": { + "body": "TypeScript reports: Add 'override' modifier", + "category": "Message", + "code": 95160, + "message": "Add 'override' modifier", + "source": "generated" + }, + "95161": { + "body": "TypeScript reports: Remove 'override' modifier", + "category": "Message", + "code": 95161, + "message": "Remove 'override' modifier", + "source": "generated" + }, + "95162": { + "body": "TypeScript reports: Add all missing 'override' modifiers", + "category": "Message", + "code": 95162, + "message": "Add all missing 'override' modifiers", + "source": "generated" + }, + "95163": { + "body": "TypeScript reports: Remove all unnecessary 'override' modifiers", + "category": "Message", + "code": 95163, + "message": "Remove all unnecessary 'override' modifiers", + "source": "generated" + }, + "95164": { + "body": "TypeScript reports: Can only convert named export", + "category": "Message", + "code": 95164, + "message": "Can only convert named export", + "source": "generated" + }, + "95165": { + "body": "TypeScript reports: Add missing properties", + "category": "Message", + "code": 95165, + "message": "Add missing properties", + "source": "generated" + }, + "95166": { + "body": "TypeScript reports: Add all missing properties", + "category": "Message", + "code": 95166, + "message": "Add all missing properties", + "source": "generated" + }, + "95167": { + "body": "TypeScript reports: Add missing attributes", + "category": "Message", + "code": 95167, + "message": "Add missing attributes", + "source": "generated" + }, + "95168": { + "body": "TypeScript reports: Add all missing attributes", + "category": "Message", + "code": 95168, + "message": "Add all missing attributes", + "source": "generated" + }, + "95169": { + "body": "TypeScript reports: Add 'undefined' to optional property type", + "category": "Message", + "code": 95169, + "message": "Add 'undefined' to optional property type", + "source": "generated" + }, + "95170": { + "body": "TypeScript reports: Convert named imports to default import", + "category": "Message", + "code": 95170, + "message": "Convert named imports to default import", + "source": "generated" + }, + "95171": { + "body": "TypeScript reports: Delete unused '@param' tag '{0}'", + "category": "Message", + "code": 95171, + "message": "Delete unused '@param' tag '{0}'", + "source": "generated" + }, + "95172": { + "body": "TypeScript reports: Delete all unused '@param' tags", + "category": "Message", + "code": 95172, + "message": "Delete all unused '@param' tags", + "source": "generated" + }, + "95173": { + "body": "TypeScript reports: Rename '@param' tag name '{0}' to '{1}'", + "category": "Message", + "code": 95173, + "message": "Rename '@param' tag name '{0}' to '{1}'", + "source": "generated" + }, + "95174": { + "body": "TypeScript reports: Use `{0}`.", + "category": "Message", + "code": 95174, + "message": "Use `{0}`.", + "source": "generated" + }, + "95175": { + "body": "TypeScript reports: Use `Number.isNaN` in all conditions.", + "category": "Message", + "code": 95175, + "message": "Use `Number.isNaN` in all conditions.", + "source": "generated" + }, + "95176": { + "body": "TypeScript reports: Convert typedef to TypeScript type.", + "category": "Message", + "code": 95176, + "message": "Convert typedef to TypeScript type.", + "source": "generated" + }, + "95177": { + "body": "TypeScript reports: Convert all typedef to TypeScript types.", + "category": "Message", + "code": 95177, + "message": "Convert all typedef to TypeScript types.", + "source": "generated" + }, + "95178": { + "body": "TypeScript reports: Move to file", + "category": "Message", + "code": 95178, + "message": "Move to file", + "source": "generated" + }, + "95179": { + "body": "TypeScript reports: Cannot move to file, selected file is invalid", + "category": "Message", + "code": 95179, + "message": "Cannot move to file, selected file is invalid", + "source": "generated" + }, + "95180": { + "body": "TypeScript reports: Use 'import type'", + "category": "Message", + "code": 95180, + "message": "Use 'import type'", + "source": "generated" + }, + "95181": { + "body": "TypeScript reports: Use 'type {0}'", + "category": "Message", + "code": 95181, + "message": "Use 'type {0}'", + "source": "generated" + }, + "95182": { + "body": "TypeScript reports: Fix all with type-only imports", + "category": "Message", + "code": 95182, + "message": "Fix all with type-only imports", + "source": "generated" + }, + "95183": { + "body": "TypeScript reports: Cannot move statements to the selected file", + "category": "Message", + "code": 95183, + "message": "Cannot move statements to the selected file", + "source": "generated" + }, + "95184": { + "body": "TypeScript reports: Inline variable", + "category": "Message", + "code": 95184, + "message": "Inline variable", + "source": "generated" + }, + "95185": { + "body": "TypeScript reports: Could not find variable to inline.", + "category": "Message", + "code": 95185, + "message": "Could not find variable to inline.", + "source": "generated" + }, + "95186": { + "body": "TypeScript reports: Variables with multiple declarations cannot be inlined.", + "category": "Message", + "code": 95186, + "message": "Variables with multiple declarations cannot be inlined.", + "source": "generated" + }, + "95187": { + "body": "TypeScript reports: Add missing comma for object member completion '{0}'.", + "category": "Message", + "code": 95187, + "message": "Add missing comma for object member completion '{0}'.", + "source": "generated" + }, + "95188": { + "body": "TypeScript reports: Add missing parameter to '{0}'", + "category": "Message", + "code": 95188, + "message": "Add missing parameter to '{0}'", + "source": "generated" + }, + "95189": { + "body": "TypeScript reports: Add missing parameters to '{0}'", + "category": "Message", + "code": 95189, + "message": "Add missing parameters to '{0}'", + "source": "generated" + }, + "95190": { + "body": "TypeScript reports: Add all missing parameters", + "category": "Message", + "code": 95190, + "message": "Add all missing parameters", + "source": "generated" + }, + "95191": { + "body": "TypeScript reports: Add optional parameter to '{0}'", + "category": "Message", + "code": 95191, + "message": "Add optional parameter to '{0}'", + "source": "generated" + }, + "95192": { + "body": "TypeScript reports: Add optional parameters to '{0}'", + "category": "Message", + "code": 95192, + "message": "Add optional parameters to '{0}'", + "source": "generated" + }, + "95193": { + "body": "TypeScript reports: Add all optional parameters", + "category": "Message", + "code": 95193, + "message": "Add all optional parameters", + "source": "generated" + }, + "95194": { + "body": "TypeScript reports: Wrap in parentheses", + "category": "Message", + "code": 95194, + "message": "Wrap in parentheses", + "source": "generated" + }, + "95195": { + "body": "TypeScript reports: Wrap all invalid decorator expressions in parentheses", + "category": "Message", + "code": 95195, + "message": "Wrap all invalid decorator expressions in parentheses", + "source": "generated" + }, + "95196": { + "body": "TypeScript reports: Add 'resolution-mode' import attribute", + "category": "Message", + "code": 95196, + "message": "Add 'resolution-mode' import attribute", + "source": "generated" + }, + "95197": { + "body": "TypeScript reports: Add 'resolution-mode' import attribute to all type-only imports that need it", + "category": "Message", + "code": 95197, + "message": "Add 'resolution-mode' import attribute to all type-only imports that need it", + "source": "generated" + } +} diff --git a/packages/error-translator/src/generated/tsErrorMessages.json b/packages/error-translator/src/generated/tsErrorMessages.json new file mode 100644 index 0000000..126900a --- /dev/null +++ b/packages/error-translator/src/generated/tsErrorMessages.json @@ -0,0 +1,8522 @@ +{ + "Unterminated string literal.": { + "category": "Error", + "code": 1002 + }, + "Identifier expected.": { + "category": "Error", + "code": 1003 + }, + "'{0}' expected.": { + "category": "Error", + "code": 1005 + }, + "A file cannot have a reference to itself.": { + "category": "Error", + "code": 1006 + }, + "The parser expected to find a '{1}' to match the '{0}' token here.": { + "category": "Error", + "code": 1007 + }, + "Trailing comma not allowed.": { + "category": "Error", + "code": 1009 + }, + "'*/' expected.": { + "category": "Error", + "code": 1010 + }, + "An element access expression should take an argument.": { + "category": "Error", + "code": 1011 + }, + "Unexpected token.": { + "category": "Error", + "code": 1012 + }, + "A rest parameter or binding pattern may not have a trailing comma.": { + "category": "Error", + "code": 1013 + }, + "A rest parameter must be last in a parameter list.": { + "category": "Error", + "code": 1014 + }, + "Parameter cannot have question mark and initializer.": { + "category": "Error", + "code": 1015 + }, + "A required parameter cannot follow an optional parameter.": { + "category": "Error", + "code": 1016 + }, + "An index signature cannot have a rest parameter.": { + "category": "Error", + "code": 1017 + }, + "An index signature parameter cannot have an accessibility modifier.": { + "category": "Error", + "code": 1018 + }, + "An index signature parameter cannot have a question mark.": { + "category": "Error", + "code": 1019 + }, + "An index signature parameter cannot have an initializer.": { + "category": "Error", + "code": 1020 + }, + "An index signature must have a type annotation.": { + "category": "Error", + "code": 1021 + }, + "An index signature parameter must have a type annotation.": { + "category": "Error", + "code": 1022 + }, + "'readonly' modifier can only appear on a property declaration or index signature.": { + "category": "Error", + "code": 1024 + }, + "An index signature cannot have a trailing comma.": { + "category": "Error", + "code": 1025 + }, + "Accessibility modifier already seen.": { + "category": "Error", + "code": 1028 + }, + "'{0}' modifier must precede '{1}' modifier.": { + "category": "Error", + "code": 1029 + }, + "'{0}' modifier already seen.": { + "category": "Error", + "code": 1030 + }, + "'{0}' modifier cannot appear on class elements of this kind.": { + "category": "Error", + "code": 1031 + }, + "'super' must be followed by an argument list or member access.": { + "category": "Error", + "code": 1034 + }, + "Only ambient modules can use quoted names.": { + "category": "Error", + "code": 1035 + }, + "Statements are not allowed in ambient contexts.": { + "category": "Error", + "code": 1036 + }, + "A 'declare' modifier cannot be used in an already ambient context.": { + "category": "Error", + "code": 1038 + }, + "Initializers are not allowed in ambient contexts.": { + "category": "Error", + "code": 1039 + }, + "'{0}' modifier cannot be used in an ambient context.": { + "category": "Error", + "code": 1040 + }, + "'{0}' modifier cannot be used here.": { + "category": "Error", + "code": 1042 + }, + "'{0}' modifier cannot appear on a module or namespace element.": { + "category": "Error", + "code": 1044 + }, + "Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.": { + "category": "Error", + "code": 1046 + }, + "A rest parameter cannot be optional.": { + "category": "Error", + "code": 1047 + }, + "A rest parameter cannot have an initializer.": { + "category": "Error", + "code": 1048 + }, + "A 'set' accessor must have exactly one parameter.": { + "category": "Error", + "code": 1049 + }, + "A 'set' accessor cannot have an optional parameter.": { + "category": "Error", + "code": 1051 + }, + "A 'set' accessor parameter cannot have an initializer.": { + "category": "Error", + "code": 1052 + }, + "A 'set' accessor cannot have rest parameter.": { + "category": "Error", + "code": 1053 + }, + "A 'get' accessor cannot have parameters.": { + "category": "Error", + "code": 1054 + }, + "Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.": { + "category": "Error", + "code": 1055 + }, + "Accessors are only available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 1056 + }, + "The return type of an async function must either be a valid promise or must not contain a callable 'then' member.": { + "category": "Error", + "code": 1058 + }, + "A promise must have a 'then' method.": { + "category": "Error", + "code": 1059 + }, + "The first parameter of the 'then' method of a promise must be a callback.": { + "category": "Error", + "code": 1060 + }, + "Enum member must have initializer.": { + "category": "Error", + "code": 1061 + }, + "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.": { + "category": "Error", + "code": 1062 + }, + "An export assignment cannot be used in a namespace.": { + "category": "Error", + "code": 1063 + }, + "The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?": { + "category": "Error", + "code": 1064 + }, + "The return type of an async function or method must be the global Promise type.": { + "category": "Error", + "code": 1065 + }, + "In ambient enum declarations member initializer must be constant expression.": { + "category": "Error", + "code": 1066 + }, + "Unexpected token. A constructor, method, accessor, or property was expected.": { + "category": "Error", + "code": 1068 + }, + "Unexpected token. A type parameter name was expected without curly braces.": { + "category": "Error", + "code": 1069 + }, + "'{0}' modifier cannot appear on a type member.": { + "category": "Error", + "code": 1070 + }, + "'{0}' modifier cannot appear on an index signature.": { + "category": "Error", + "code": 1071 + }, + "A '{0}' modifier cannot be used with an import declaration.": { + "category": "Error", + "code": 1079 + }, + "Invalid 'reference' directive syntax.": { + "category": "Error", + "code": 1084 + }, + "'{0}' modifier cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1089 + }, + "'{0}' modifier cannot appear on a parameter.": { + "category": "Error", + "code": 1090 + }, + "Only a single variable declaration is allowed in a 'for...in' statement.": { + "category": "Error", + "code": 1091 + }, + "Type parameters cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1092 + }, + "Type annotation cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1093 + }, + "An accessor cannot have type parameters.": { + "category": "Error", + "code": 1094 + }, + "A 'set' accessor cannot have a return type annotation.": { + "category": "Error", + "code": 1095 + }, + "An index signature must have exactly one parameter.": { + "category": "Error", + "code": 1096 + }, + "'{0}' list cannot be empty.": { + "category": "Error", + "code": 1097 + }, + "Type parameter list cannot be empty.": { + "category": "Error", + "code": 1098 + }, + "Type argument list cannot be empty.": { + "category": "Error", + "code": 1099 + }, + "Invalid use of '{0}' in strict mode.": { + "category": "Error", + "code": 1100 + }, + "'with' statements are not allowed in strict mode.": { + "category": "Error", + "code": 1101 + }, + "'delete' cannot be called on an identifier in strict mode.": { + "category": "Error", + "code": 1102 + }, + "'for await' loops are only allowed within async functions and at the top levels of modules.": { + "category": "Error", + "code": 1103 + }, + "A 'continue' statement can only be used within an enclosing iteration statement.": { + "category": "Error", + "code": 1104 + }, + "A 'break' statement can only be used within an enclosing iteration or switch statement.": { + "category": "Error", + "code": 1105 + }, + "The left-hand side of a 'for...of' statement may not be 'async'.": { + "category": "Error", + "code": 1106 + }, + "Jump target cannot cross function boundary.": { + "category": "Error", + "code": 1107 + }, + "A 'return' statement can only be used within a function body.": { + "category": "Error", + "code": 1108 + }, + "Expression expected.": { + "category": "Error", + "code": 1109 + }, + "Type expected.": { + "category": "Error", + "code": 1110 + }, + "Private field '{0}' must be declared in an enclosing class.": { + "category": "Error", + "code": 1111 + }, + "A 'default' clause cannot appear more than once in a 'switch' statement.": { + "category": "Error", + "code": 1113 + }, + "Duplicate label '{0}'.": { + "category": "Error", + "code": 1114 + }, + "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { + "category": "Error", + "code": 1115 + }, + "A 'break' statement can only jump to a label of an enclosing statement.": { + "category": "Error", + "code": 1116 + }, + "An object literal cannot have multiple properties with the same name.": { + "category": "Error", + "code": 1117 + }, + "An object literal cannot have multiple get/set accessors with the same name.": { + "category": "Error", + "code": 1118 + }, + "An object literal cannot have property and accessor with the same name.": { + "category": "Error", + "code": 1119 + }, + "An export assignment cannot have modifiers.": { + "category": "Error", + "code": 1120 + }, + "Octal literals are not allowed. Use the syntax '{0}'.": { + "category": "Error", + "code": 1121 + }, + "Variable declaration list cannot be empty.": { + "category": "Error", + "code": 1123 + }, + "Digit expected.": { + "category": "Error", + "code": 1124 + }, + "Hexadecimal digit expected.": { + "category": "Error", + "code": 1125 + }, + "Unexpected end of text.": { + "category": "Error", + "code": 1126 + }, + "Invalid character.": { + "category": "Error", + "code": 1127 + }, + "Declaration or statement expected.": { + "category": "Error", + "code": 1128 + }, + "Statement expected.": { + "category": "Error", + "code": 1129 + }, + "'case' or 'default' expected.": { + "category": "Error", + "code": 1130 + }, + "Property or signature expected.": { + "category": "Error", + "code": 1131 + }, + "Enum member expected.": { + "category": "Error", + "code": 1132 + }, + "Variable declaration expected.": { + "category": "Error", + "code": 1134 + }, + "Argument expression expected.": { + "category": "Error", + "code": 1135 + }, + "Property assignment expected.": { + "category": "Error", + "code": 1136 + }, + "Expression or comma expected.": { + "category": "Error", + "code": 1137 + }, + "Parameter declaration expected.": { + "category": "Error", + "code": 1138 + }, + "Type parameter declaration expected.": { + "category": "Error", + "code": 1139 + }, + "Type argument expected.": { + "category": "Error", + "code": 1140 + }, + "String literal expected.": { + "category": "Error", + "code": 1141 + }, + "Line break not permitted here.": { + "category": "Error", + "code": 1142 + }, + "'{' or ';' expected.": { + "category": "Error", + "code": 1144 + }, + "'{' or JSX element expected.": { + "category": "Error", + "code": 1145 + }, + "Declaration expected.": { + "category": "Error", + "code": 1146 + }, + "Import declarations in a namespace cannot reference a module.": { + "category": "Error", + "code": 1147 + }, + "Cannot use imports, exports, or module augmentations when '--module' is 'none'.": { + "category": "Error", + "code": 1148 + }, + "File name '{0}' differs from already included file name '{1}' only in casing.": { + "category": "Error", + "code": 1149 + }, + "'{0}' declarations must be initialized.": { + "category": "Error", + "code": 1155 + }, + "'{0}' declarations can only be declared inside a block.": { + "category": "Error", + "code": 1156 + }, + "Unterminated template literal.": { + "category": "Error", + "code": 1160 + }, + "Unterminated regular expression literal.": { + "category": "Error", + "code": 1161 + }, + "An object member cannot be declared optional.": { + "category": "Error", + "code": 1162 + }, + "A 'yield' expression is only allowed in a generator body.": { + "category": "Error", + "code": 1163 + }, + "Computed property names are not allowed in enums.": { + "category": "Error", + "code": 1164 + }, + "A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.": { + "category": "Error", + "code": 1165 + }, + "A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.": { + "category": "Error", + "code": 1166 + }, + "A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.": { + "category": "Error", + "code": 1168 + }, + "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.": { + "category": "Error", + "code": 1169 + }, + "A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.": { + "category": "Error", + "code": 1170 + }, + "A comma expression is not allowed in a computed property name.": { + "category": "Error", + "code": 1171 + }, + "'extends' clause already seen.": { + "category": "Error", + "code": 1172 + }, + "'extends' clause must precede 'implements' clause.": { + "category": "Error", + "code": 1173 + }, + "Classes can only extend a single class.": { + "category": "Error", + "code": 1174 + }, + "'implements' clause already seen.": { + "category": "Error", + "code": 1175 + }, + "Interface declaration cannot have 'implements' clause.": { + "category": "Error", + "code": 1176 + }, + "Binary digit expected.": { + "category": "Error", + "code": 1177 + }, + "Octal digit expected.": { + "category": "Error", + "code": 1178 + }, + "Unexpected token. '{' expected.": { + "category": "Error", + "code": 1179 + }, + "Property destructuring pattern expected.": { + "category": "Error", + "code": 1180 + }, + "Array element destructuring pattern expected.": { + "category": "Error", + "code": 1181 + }, + "A destructuring declaration must have an initializer.": { + "category": "Error", + "code": 1182 + }, + "An implementation cannot be declared in ambient contexts.": { + "category": "Error", + "code": 1183 + }, + "Modifiers cannot appear here.": { + "category": "Error", + "code": 1184 + }, + "Merge conflict marker encountered.": { + "category": "Error", + "code": 1185 + }, + "A rest element cannot have an initializer.": { + "category": "Error", + "code": 1186 + }, + "A parameter property may not be declared using a binding pattern.": { + "category": "Error", + "code": 1187 + }, + "Only a single variable declaration is allowed in a 'for...of' statement.": { + "category": "Error", + "code": 1188 + }, + "The variable declaration of a 'for...in' statement cannot have an initializer.": { + "category": "Error", + "code": 1189 + }, + "The variable declaration of a 'for...of' statement cannot have an initializer.": { + "category": "Error", + "code": 1190 + }, + "An import declaration cannot have modifiers.": { + "category": "Error", + "code": 1191 + }, + "Module '{0}' has no default export.": { + "category": "Error", + "code": 1192 + }, + "An export declaration cannot have modifiers.": { + "category": "Error", + "code": 1193 + }, + "Export declarations are not permitted in a namespace.": { + "category": "Error", + "code": 1194 + }, + "'export *' does not re-export a default.": { + "category": "Error", + "code": 1195 + }, + "Catch clause variable type annotation must be 'any' or 'unknown' if specified.": { + "category": "Error", + "code": 1196 + }, + "Catch clause variable cannot have an initializer.": { + "category": "Error", + "code": 1197 + }, + "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.": { + "category": "Error", + "code": 1198 + }, + "Unterminated Unicode escape sequence.": { + "category": "Error", + "code": 1199 + }, + "Line terminator not permitted before arrow.": { + "category": "Error", + "code": 1200 + }, + "Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.": { + "category": "Error", + "code": 1202 + }, + "Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.": { + "category": "Error", + "code": 1203 + }, + "Re-exporting a type when '{0}' is enabled requires using 'export type'.": { + "category": "Error", + "code": 1205 + }, + "Decorators are not valid here.": { + "category": "Error", + "code": 1206 + }, + "Decorators cannot be applied to multiple get/set accessors of the same name.": { + "category": "Error", + "code": 1207 + }, + "Invalid optional chain from new expression. Did you mean to call '{0}()'?": { + "category": "Error", + "code": 1209 + }, + "Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.": { + "category": "Error", + "code": 1210 + }, + "A class declaration without the 'default' modifier must have a name.": { + "category": "Error", + "code": 1211 + }, + "Identifier expected. '{0}' is a reserved word in strict mode.": { + "category": "Error", + "code": 1212 + }, + "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.": { + "category": "Error", + "code": 1213 + }, + "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.": { + "category": "Error", + "code": 1214 + }, + "Invalid use of '{0}'. Modules are automatically in strict mode.": { + "category": "Error", + "code": 1215 + }, + "Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.": { + "category": "Error", + "code": 1216 + }, + "Export assignment is not supported when '--module' flag is 'system'.": { + "category": "Error", + "code": 1218 + }, + "Generators are not allowed in an ambient context.": { + "category": "Error", + "code": 1221 + }, + "An overload signature cannot be declared as a generator.": { + "category": "Error", + "code": 1222 + }, + "'{0}' tag already specified.": { + "category": "Error", + "code": 1223 + }, + "Signature '{0}' must be a type predicate.": { + "category": "Error", + "code": 1224 + }, + "Cannot find parameter '{0}'.": { + "category": "Error", + "code": 1225 + }, + "Type predicate '{0}' is not assignable to '{1}'.": { + "category": "Error", + "code": 1226 + }, + "Parameter '{0}' is not in the same position as parameter '{1}'.": { + "category": "Error", + "code": 1227 + }, + "A type predicate is only allowed in return type position for functions and methods.": { + "category": "Error", + "code": 1228 + }, + "A type predicate cannot reference a rest parameter.": { + "category": "Error", + "code": 1229 + }, + "A type predicate cannot reference element '{0}' in a binding pattern.": { + "category": "Error", + "code": 1230 + }, + "An export assignment must be at the top level of a file or module declaration.": { + "category": "Error", + "code": 1231 + }, + "An import declaration can only be used at the top level of a namespace or module.": { + "category": "Error", + "code": 1232 + }, + "An export declaration can only be used at the top level of a namespace or module.": { + "category": "Error", + "code": 1233 + }, + "An ambient module declaration is only allowed at the top level in a file.": { + "category": "Error", + "code": 1234 + }, + "A namespace declaration is only allowed at the top level of a namespace or module.": { + "category": "Error", + "code": 1235 + }, + "The return type of a property decorator function must be either 'void' or 'any'.": { + "category": "Error", + "code": 1236 + }, + "The return type of a parameter decorator function must be either 'void' or 'any'.": { + "category": "Error", + "code": 1237 + }, + "Unable to resolve signature of class decorator when called as an expression.": { + "category": "Error", + "code": 1238 + }, + "Unable to resolve signature of parameter decorator when called as an expression.": { + "category": "Error", + "code": 1239 + }, + "Unable to resolve signature of property decorator when called as an expression.": { + "category": "Error", + "code": 1240 + }, + "Unable to resolve signature of method decorator when called as an expression.": { + "category": "Error", + "code": 1241 + }, + "'abstract' modifier can only appear on a class, method, or property declaration.": { + "category": "Error", + "code": 1242 + }, + "'{0}' modifier cannot be used with '{1}' modifier.": { + "category": "Error", + "code": 1243 + }, + "Abstract methods can only appear within an abstract class.": { + "category": "Error", + "code": 1244 + }, + "Method '{0}' cannot have an implementation because it is marked abstract.": { + "category": "Error", + "code": 1245 + }, + "An interface property cannot have an initializer.": { + "category": "Error", + "code": 1246 + }, + "A type literal property cannot have an initializer.": { + "category": "Error", + "code": 1247 + }, + "A class member cannot have the '{0}' keyword.": { + "category": "Error", + "code": 1248 + }, + "A decorator can only decorate a method implementation, not an overload.": { + "category": "Error", + "code": 1249 + }, + "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.": { + "category": "Error", + "code": 1250 + }, + "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.": { + "category": "Error", + "code": 1251 + }, + "Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.": { + "category": "Error", + "code": 1252 + }, + "Abstract properties can only appear within an abstract class.": { + "category": "Error", + "code": 1253 + }, + "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.": { + "category": "Error", + "code": 1254 + }, + "A definite assignment assertion '!' is not permitted in this context.": { + "category": "Error", + "code": 1255 + }, + "A required element cannot follow an optional element.": { + "category": "Error", + "code": 1257 + }, + "A default export must be at the top level of a file or module declaration.": { + "category": "Error", + "code": 1258 + }, + "Module '{0}' can only be default-imported using the '{1}' flag": { + "category": "Error", + "code": 1259 + }, + "Keywords cannot contain escape characters.": { + "category": "Error", + "code": 1260 + }, + "Already included file name '{0}' differs from file name '{1}' only in casing.": { + "category": "Error", + "code": 1261 + }, + "Identifier expected. '{0}' is a reserved word at the top-level of a module.": { + "category": "Error", + "code": 1262 + }, + "Declarations with initializers cannot also have definite assignment assertions.": { + "category": "Error", + "code": 1263 + }, + "Declarations with definite assignment assertions must also have type annotations.": { + "category": "Error", + "code": 1264 + }, + "A rest element cannot follow another rest element.": { + "category": "Error", + "code": 1265 + }, + "An optional element cannot follow a rest element.": { + "category": "Error", + "code": 1266 + }, + "Property '{0}' cannot have an initializer because it is marked abstract.": { + "category": "Error", + "code": 1267 + }, + "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.": { + "category": "Error", + "code": 1268 + }, + "Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.": { + "category": "Error", + "code": 1269 + }, + "Decorator function return type '{0}' is not assignable to type '{1}'.": { + "category": "Error", + "code": 1270 + }, + "Decorator function return type is '{0}' but is expected to be 'void' or 'any'.": { + "category": "Error", + "code": 1271 + }, + "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.": { + "category": "Error", + "code": 1272 + }, + "'{0}' modifier cannot appear on a type parameter": { + "category": "Error", + "code": 1273 + }, + "'{0}' modifier can only appear on a type parameter of a class, interface or type alias": { + "category": "Error", + "code": 1274 + }, + "'accessor' modifier can only appear on a property declaration.": { + "category": "Error", + "code": 1275 + }, + "An 'accessor' property cannot be declared optional.": { + "category": "Error", + "code": 1276 + }, + "'{0}' modifier can only appear on a type parameter of a function, method or class": { + "category": "Error", + "code": 1277 + }, + "The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.": { + "category": "Error", + "code": 1278 + }, + "The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.": { + "category": "Error", + "code": 1279 + }, + "Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.": { + "category": "Error", + "code": 1280 + }, + "Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.": { + "category": "Error", + "code": 1281 + }, + "An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.": { + "category": "Error", + "code": 1282 + }, + "An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.": { + "category": "Error", + "code": 1283 + }, + "An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.": { + "category": "Error", + "code": 1284 + }, + "An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.": { + "category": "Error", + "code": 1285 + }, + "ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'.": { + "category": "Error", + "code": 1286 + }, + "A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.": { + "category": "Error", + "code": 1287 + }, + "An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.": { + "category": "Error", + "code": 1288 + }, + "'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.": { + "category": "Error", + "code": 1289 + }, + "'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.": { + "category": "Error", + "code": 1290 + }, + "'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.": { + "category": "Error", + "code": 1291 + }, + "'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.": { + "category": "Error", + "code": 1292 + }, + "ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.": { + "category": "Error", + "code": 1293 + }, + "This syntax is not allowed when 'erasableSyntaxOnly' is enabled.": { + "category": "Error", + "code": 1294 + }, + "ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript.": { + "category": "Error", + "code": 1295 + }, + "'with' statements are not allowed in an async function block.": { + "category": "Error", + "code": 1300 + }, + "'await' expressions are only allowed within async functions and at the top levels of modules.": { + "category": "Error", + "code": 1308 + }, + "The current file is a CommonJS module and cannot use 'await' at the top level.": { + "category": "Error", + "code": 1309 + }, + "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.": { + "category": "Error", + "code": 1312 + }, + "The body of an 'if' statement cannot be the empty statement.": { + "category": "Error", + "code": 1313 + }, + "Global module exports may only appear in module files.": { + "category": "Error", + "code": 1314 + }, + "Global module exports may only appear in declaration files.": { + "category": "Error", + "code": 1315 + }, + "Global module exports may only appear at top level.": { + "category": "Error", + "code": 1316 + }, + "A parameter property cannot be declared using a rest parameter.": { + "category": "Error", + "code": 1317 + }, + "An abstract accessor cannot have an implementation.": { + "category": "Error", + "code": 1318 + }, + "A default export can only be used in an ECMAScript-style module.": { + "category": "Error", + "code": 1319 + }, + "Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.": { + "category": "Error", + "code": 1320 + }, + "Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.": { + "category": "Error", + "code": 1321 + }, + "Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.": { + "category": "Error", + "code": 1322 + }, + "Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'.": { + "category": "Error", + "code": 1323 + }, + "Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'.": { + "category": "Error", + "code": 1324 + }, + "Argument of dynamic import cannot be spread element.": { + "category": "Error", + "code": 1325 + }, + "This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.": { + "category": "Error", + "code": 1326 + }, + "String literal with double quotes expected.": { + "category": "Error", + "code": 1327 + }, + "Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.": { + "category": "Error", + "code": 1328 + }, + "'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?": { + "category": "Error", + "code": 1329 + }, + "A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.": { + "category": "Error", + "code": 1330 + }, + "A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.": { + "category": "Error", + "code": 1331 + }, + "A variable whose type is a 'unique symbol' type must be 'const'.": { + "category": "Error", + "code": 1332 + }, + "'unique symbol' types may not be used on a variable declaration with a binding name.": { + "category": "Error", + "code": 1333 + }, + "'unique symbol' types are only allowed on variables in a variable statement.": { + "category": "Error", + "code": 1334 + }, + "'unique symbol' types are not allowed here.": { + "category": "Error", + "code": 1335 + }, + "An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.": { + "category": "Error", + "code": 1337 + }, + "'infer' declarations are only permitted in the 'extends' clause of a conditional type.": { + "category": "Error", + "code": 1338 + }, + "Module '{0}' does not refer to a value, but is used as a value here.": { + "category": "Error", + "code": 1339 + }, + "Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?": { + "category": "Error", + "code": 1340 + }, + "Class constructor may not be an accessor.": { + "category": "Error", + "code": 1341 + }, + "The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'.": { + "category": "Error", + "code": 1343 + }, + "'A label is not allowed here.": { + "category": "Error", + "code": 1344 + }, + "An expression of type 'void' cannot be tested for truthiness.": { + "category": "Error", + "code": 1345 + }, + "This parameter is not allowed with 'use strict' directive.": { + "category": "Error", + "code": 1346 + }, + "'use strict' directive cannot be used with non-simple parameter list.": { + "category": "Error", + "code": 1347 + }, + "Non-simple parameter declared here.": { + "category": "Error", + "code": 1348 + }, + "'use strict' directive used here.": { + "category": "Error", + "code": 1349 + }, + "Print the final configuration instead of building.": { + "category": "Message", + "code": 1350 + }, + "An identifier or keyword cannot immediately follow a numeric literal.": { + "category": "Error", + "code": 1351 + }, + "A bigint literal cannot use exponential notation.": { + "category": "Error", + "code": 1352 + }, + "A bigint literal must be an integer.": { + "category": "Error", + "code": 1353 + }, + "'readonly' type modifier is only permitted on array and tuple literal types.": { + "category": "Error", + "code": 1354 + }, + "A 'const' assertion can only be applied to references to enum members, or string, number, boolean, array, or object literals.": { + "category": "Error", + "code": 1355 + }, + "Did you mean to mark this function as 'async'?": { + "category": "Error", + "code": 1356 + }, + "An enum member name must be followed by a ',', '=', or '}'.": { + "category": "Error", + "code": 1357 + }, + "Tagged template expressions are not permitted in an optional chain.": { + "category": "Error", + "code": 1358 + }, + "Identifier expected. '{0}' is a reserved word that cannot be used here.": { + "category": "Error", + "code": 1359 + }, + "Type '{0}' does not satisfy the expected type '{1}'.": { + "category": "Error", + "code": 1360 + }, + "'{0}' cannot be used as a value because it was imported using 'import type'.": { + "category": "Error", + "code": 1361 + }, + "'{0}' cannot be used as a value because it was exported using 'export type'.": { + "category": "Error", + "code": 1362 + }, + "A type-only import can specify a default import or named bindings, but not both.": { + "category": "Error", + "code": 1363 + }, + "Convert to type-only export": { + "category": "Message", + "code": 1364 + }, + "Convert all re-exported types to type-only exports": { + "category": "Message", + "code": 1365 + }, + "Split into two separate import declarations": { + "category": "Message", + "code": 1366 + }, + "Split all invalid type-only imports": { + "category": "Message", + "code": 1367 + }, + "Class constructor may not be a generator.": { + "category": "Error", + "code": 1368 + }, + "Did you mean '{0}'?": { + "category": "Message", + "code": 1369 + }, + "'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.": { + "category": "Error", + "code": 1375 + }, + "'{0}' was imported here.": { + "category": "Message", + "code": 1376 + }, + "'{0}' was exported here.": { + "category": "Message", + "code": 1377 + }, + "Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.": { + "category": "Error", + "code": 1378 + }, + "An import alias cannot reference a declaration that was exported using 'export type'.": { + "category": "Error", + "code": 1379 + }, + "An import alias cannot reference a declaration that was imported using 'import type'.": { + "category": "Error", + "code": 1380 + }, + "Unexpected token. Did you mean `{'}'}` or `}`?": { + "category": "Error", + "code": 1381 + }, + "Unexpected token. Did you mean `{'>'}` or `>`?": { + "category": "Error", + "code": 1382 + }, + "Function type notation must be parenthesized when used in a union type.": { + "category": "Error", + "code": 1385 + }, + "Constructor type notation must be parenthesized when used in a union type.": { + "category": "Error", + "code": 1386 + }, + "Function type notation must be parenthesized when used in an intersection type.": { + "category": "Error", + "code": 1387 + }, + "Constructor type notation must be parenthesized when used in an intersection type.": { + "category": "Error", + "code": 1388 + }, + "'{0}' is not allowed as a variable declaration name.": { + "category": "Error", + "code": 1389 + }, + "'{0}' is not allowed as a parameter name.": { + "category": "Error", + "code": 1390 + }, + "An import alias cannot use 'import type'": { + "category": "Error", + "code": 1392 + }, + "Imported via {0} from file '{1}'": { + "category": "Message", + "code": 1393 + }, + "Imported via {0} from file '{1}' with packageId '{2}'": { + "category": "Message", + "code": 1394 + }, + "Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions": { + "category": "Message", + "code": 1395 + }, + "Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions": { + "category": "Message", + "code": 1396 + }, + "Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions": { + "category": "Message", + "code": 1397 + }, + "Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions": { + "category": "Message", + "code": 1398 + }, + "File is included via import here.": { + "category": "Message", + "code": 1399 + }, + "Referenced via '{0}' from file '{1}'": { + "category": "Message", + "code": 1400 + }, + "File is included via reference here.": { + "category": "Message", + "code": 1401 + }, + "Type library referenced via '{0}' from file '{1}'": { + "category": "Message", + "code": 1402 + }, + "Type library referenced via '{0}' from file '{1}' with packageId '{2}'": { + "category": "Message", + "code": 1403 + }, + "File is included via type library reference here.": { + "category": "Message", + "code": 1404 + }, + "Library referenced via '{0}' from file '{1}'": { + "category": "Message", + "code": 1405 + }, + "File is included via library reference here.": { + "category": "Message", + "code": 1406 + }, + "Matched by include pattern '{0}' in '{1}'": { + "category": "Message", + "code": 1407 + }, + "File is matched by include pattern specified here.": { + "category": "Message", + "code": 1408 + }, + "Part of 'files' list in tsconfig.json": { + "category": "Message", + "code": 1409 + }, + "File is matched by 'files' list specified here.": { + "category": "Message", + "code": 1410 + }, + "Output from referenced project '{0}' included because '{1}' specified": { + "category": "Message", + "code": 1411 + }, + "Output from referenced project '{0}' included because '--module' is specified as 'none'": { + "category": "Message", + "code": 1412 + }, + "File is output from referenced project specified here.": { + "category": "Message", + "code": 1413 + }, + "Source from referenced project '{0}' included because '{1}' specified": { + "category": "Message", + "code": 1414 + }, + "Source from referenced project '{0}' included because '--module' is specified as 'none'": { + "category": "Message", + "code": 1415 + }, + "File is source from referenced project specified here.": { + "category": "Message", + "code": 1416 + }, + "Entry point of type library '{0}' specified in compilerOptions": { + "category": "Message", + "code": 1417 + }, + "Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'": { + "category": "Message", + "code": 1418 + }, + "File is entry point of type library specified here.": { + "category": "Message", + "code": 1419 + }, + "Entry point for implicit type library '{0}'": { + "category": "Message", + "code": 1420 + }, + "Entry point for implicit type library '{0}' with packageId '{1}'": { + "category": "Message", + "code": 1421 + }, + "Library '{0}' specified in compilerOptions": { + "category": "Message", + "code": 1422 + }, + "File is library specified here.": { + "category": "Message", + "code": 1423 + }, + "Default library": { + "category": "Message", + "code": 1424 + }, + "Default library for target '{0}'": { + "category": "Message", + "code": 1425 + }, + "File is default library for target specified here.": { + "category": "Message", + "code": 1426 + }, + "Root file specified for compilation": { + "category": "Message", + "code": 1427 + }, + "File is output of project reference source '{0}'": { + "category": "Message", + "code": 1428 + }, + "File redirects to file '{0}'": { + "category": "Message", + "code": 1429 + }, + "The file is in the program because:": { + "category": "Message", + "code": 1430 + }, + "'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.": { + "category": "Error", + "code": 1431 + }, + "Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.": { + "category": "Error", + "code": 1432 + }, + "Neither decorators nor modifiers may be applied to 'this' parameters.": { + "category": "Error", + "code": 1433 + }, + "Unexpected keyword or identifier.": { + "category": "Error", + "code": 1434 + }, + "Unknown keyword or identifier. Did you mean '{0}'?": { + "category": "Error", + "code": 1435 + }, + "Decorators must precede the name and all keywords of property declarations.": { + "category": "Error", + "code": 1436 + }, + "Namespace must be given a name.": { + "category": "Error", + "code": 1437 + }, + "Interface must be given a name.": { + "category": "Error", + "code": 1438 + }, + "Type alias must be given a name.": { + "category": "Error", + "code": 1439 + }, + "Variable declaration not allowed at this location.": { + "category": "Error", + "code": 1440 + }, + "Cannot start a function call in a type annotation.": { + "category": "Error", + "code": 1441 + }, + "Expected '=' for property initializer.": { + "category": "Error", + "code": 1442 + }, + "Module declaration names may only use ' or \" quoted strings.": { + "category": "Error", + "code": 1443 + }, + "'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.": { + "category": "Error", + "code": 1448 + }, + "Preserve unused imported values in the JavaScript output that would otherwise be removed.": { + "category": "Message", + "code": 1449 + }, + "Dynamic imports can only accept a module specifier and an optional set of attributes as arguments": { + "category": "Message", + "code": 1450 + }, + "Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression": { + "category": "Error", + "code": 1451 + }, + "`resolution-mode` should be either `require` or `import`.": { + "category": "Error", + "code": 1453 + }, + "`resolution-mode` can only be set for type-only imports.": { + "category": "Error", + "code": 1454 + }, + "`resolution-mode` is the only valid key for type import assertions.": { + "category": "Error", + "code": 1455 + }, + "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.": { + "category": "Error", + "code": 1456 + }, + "Matched by default include pattern '**/*'": { + "category": "Message", + "code": 1457 + }, + "File is ECMAScript module because '{0}' has field \"type\" with value \"module\"": { + "category": "Message", + "code": 1458 + }, + "File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"": { + "category": "Message", + "code": 1459 + }, + "File is CommonJS module because '{0}' does not have field \"type\"": { + "category": "Message", + "code": 1460 + }, + "File is CommonJS module because 'package.json' was not found": { + "category": "Message", + "code": 1461 + }, + "'resolution-mode' is the only valid key for type import attributes.": { + "category": "Error", + "code": 1463 + }, + "Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.": { + "category": "Error", + "code": 1464 + }, + "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.": { + "category": "Error", + "code": 1470 + }, + "Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.": { + "category": "Error", + "code": 1471 + }, + "'catch' or 'finally' expected.": { + "category": "Error", + "code": 1472 + }, + "An import declaration can only be used at the top level of a module.": { + "category": "Error", + "code": 1473 + }, + "An export declaration can only be used at the top level of a module.": { + "category": "Error", + "code": 1474 + }, + "Control what method is used to detect module-format JS files.": { + "category": "Message", + "code": 1475 + }, + "\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.": { + "category": "Message", + "code": 1476 + }, + "An instantiation expression cannot be followed by a property access.": { + "category": "Error", + "code": 1477 + }, + "Identifier or string literal expected.": { + "category": "Error", + "code": 1478 + }, + "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.": { + "category": "Error", + "code": 1479 + }, + "To convert this file to an ECMAScript module, change its file extension to '{0}' or create a local package.json file with `{ \"type\": \"module\" }`.": { + "category": "Message", + "code": 1480 + }, + "To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field `\"type\": \"module\"` to '{1}'.": { + "category": "Message", + "code": 1481 + }, + "To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to '{0}'.": { + "category": "Message", + "code": 1482 + }, + "To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.": { + "category": "Message", + "code": 1483 + }, + "'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.": { + "category": "Error", + "code": 1484 + }, + "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.": { + "category": "Error", + "code": 1485 + }, + "Decorator used before 'export' here.": { + "category": "Error", + "code": 1486 + }, + "Octal escape sequences are not allowed. Use the syntax '{0}'.": { + "category": "Error", + "code": 1487 + }, + "Escape sequence '{0}' is not allowed.": { + "category": "Error", + "code": 1488 + }, + "Decimals with leading zeros are not allowed.": { + "category": "Error", + "code": 1489 + }, + "File appears to be binary.": { + "category": "Error", + "code": 1490 + }, + "'{0}' modifier cannot appear on a 'using' declaration.": { + "category": "Error", + "code": 1491 + }, + "'{0}' declarations may not have binding patterns.": { + "category": "Error", + "code": 1492 + }, + "The left-hand side of a 'for...in' statement cannot be a 'using' declaration.": { + "category": "Error", + "code": 1493 + }, + "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.": { + "category": "Error", + "code": 1494 + }, + "'{0}' modifier cannot appear on an 'await using' declaration.": { + "category": "Error", + "code": 1495 + }, + "Identifier, string literal, or number literal expected.": { + "category": "Error", + "code": 1496 + }, + "Expression must be enclosed in parentheses to be used as a decorator.": { + "category": "Error", + "code": 1497 + }, + "Invalid syntax in decorator.": { + "category": "Error", + "code": 1498 + }, + "Unknown regular expression flag.": { + "category": "Error", + "code": 1499 + }, + "Duplicate regular expression flag.": { + "category": "Error", + "code": 1500 + }, + "This regular expression flag is only available when targeting '{0}' or later.": { + "category": "Error", + "code": 1501 + }, + "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.": { + "category": "Error", + "code": 1502 + }, + "Named capturing groups are only available when targeting 'ES2018' or later.": { + "category": "Error", + "code": 1503 + }, + "Subpattern flags must be present when there is a minus sign.": { + "category": "Error", + "code": 1504 + }, + "Incomplete quantifier. Digit expected.": { + "category": "Error", + "code": 1505 + }, + "Numbers out of order in quantifier.": { + "category": "Error", + "code": 1506 + }, + "There is nothing available for repetition.": { + "category": "Error", + "code": 1507 + }, + "Unexpected '{0}'. Did you mean to escape it with backslash?": { + "category": "Error", + "code": 1508 + }, + "This regular expression flag cannot be toggled within a subpattern.": { + "category": "Error", + "code": 1509 + }, + "'\\k' must be followed by a capturing group name enclosed in angle brackets.": { + "category": "Error", + "code": 1510 + }, + "'\\q' is only available inside character class.": { + "category": "Error", + "code": 1511 + }, + "'\\c' must be followed by an ASCII letter.": { + "category": "Error", + "code": 1512 + }, + "Undetermined character escape.": { + "category": "Error", + "code": 1513 + }, + "Expected a capturing group name.": { + "category": "Error", + "code": 1514 + }, + "Named capturing groups with the same name must be mutually exclusive to each other.": { + "category": "Error", + "code": 1515 + }, + "A character class range must not be bounded by another character class.": { + "category": "Error", + "code": 1516 + }, + "Range out of order in character class.": { + "category": "Error", + "code": 1517 + }, + "Anything that would possibly match more than a single character is invalid inside a negated character class.": { + "category": "Error", + "code": 1518 + }, + "Operators must not be mixed within a character class. Wrap it in a nested class instead.": { + "category": "Error", + "code": 1519 + }, + "Expected a class set operand.": { + "category": "Error", + "code": 1520 + }, + "'\\q' must be followed by string alternatives enclosed in braces.": { + "category": "Error", + "code": 1521 + }, + "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?": { + "category": "Error", + "code": 1522 + }, + "Expected a Unicode property name.": { + "category": "Error", + "code": 1523 + }, + "Unknown Unicode property name.": { + "category": "Error", + "code": 1524 + }, + "Expected a Unicode property value.": { + "category": "Error", + "code": 1525 + }, + "Unknown Unicode property value.": { + "category": "Error", + "code": 1526 + }, + "Expected a Unicode property name or value.": { + "category": "Error", + "code": 1527 + }, + "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.": { + "category": "Error", + "code": 1528 + }, + "Unknown Unicode property name or value.": { + "category": "Error", + "code": 1529 + }, + "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.": { + "category": "Error", + "code": 1530 + }, + "'\\{0}' must be followed by a Unicode property value expression enclosed in braces.": { + "category": "Error", + "code": 1531 + }, + "There is no capturing group named '{0}' in this regular expression.": { + "category": "Error", + "code": 1532 + }, + "This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.": { + "category": "Error", + "code": 1533 + }, + "This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.": { + "category": "Error", + "code": 1534 + }, + "This character cannot be escaped in a regular expression.": { + "category": "Error", + "code": 1535 + }, + "Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.": { + "category": "Error", + "code": 1536 + }, + "Decimal escape sequences and backreferences are not allowed in a character class.": { + "category": "Error", + "code": 1537 + }, + "Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.": { + "category": "Error", + "code": 1538 + }, + "A 'bigint' literal cannot be used as a property name.": { + "category": "Error", + "code": 1539 + }, + "A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.": { + "category": "Error", + "code": 1540 + }, + "Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.": { + "category": "Error", + "code": 1541 + }, + "Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.": { + "category": "Error", + "code": 1542 + }, + "Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.": { + "category": "Error", + "code": 1543 + }, + "Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.": { + "category": "Error", + "code": 1544 + }, + "'using' declarations are not allowed in ambient contexts.": { + "category": "Error", + "code": 1545 + }, + "'await using' declarations are not allowed in ambient contexts.": { + "category": "Error", + "code": 1546 + }, + "'using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.": { + "category": "Error", + "code": 1547 + }, + "'await using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block.": { + "category": "Error", + "code": 1548 + }, + "Ignore the tsconfig found and build with commandline options and files.": { + "category": "Message", + "code": 1549 + }, + "The types of '{0}' are incompatible between these types.": { + "category": "Error", + "code": 2200 + }, + "The types returned by '{0}' are incompatible between these types.": { + "category": "Error", + "code": 2201 + }, + "Call signature return types '{0}' and '{1}' are incompatible.": { + "category": "Error", + "code": 2202 + }, + "Construct signature return types '{0}' and '{1}' are incompatible.": { + "category": "Error", + "code": 2203 + }, + "Call signatures with no arguments have incompatible return types '{0}' and '{1}'.": { + "category": "Error", + "code": 2204 + }, + "Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.": { + "category": "Error", + "code": 2205 + }, + "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.": { + "category": "Error", + "code": 2206 + }, + "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.": { + "category": "Error", + "code": 2207 + }, + "This type parameter might need an `extends {0}` constraint.": { + "category": "Error", + "code": 2208 + }, + "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.": { + "category": "Error", + "code": 2209 + }, + "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.": { + "category": "Error", + "code": 2210 + }, + "Add `extends` constraint.": { + "category": "Message", + "code": 2211 + }, + "Add `extends` constraint to all type parameters": { + "category": "Message", + "code": 2212 + }, + "Duplicate identifier '{0}'.": { + "category": "Error", + "code": 2300 + }, + "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { + "category": "Error", + "code": 2301 + }, + "Static members cannot reference class type parameters.": { + "category": "Error", + "code": 2302 + }, + "Circular definition of import alias '{0}'.": { + "category": "Error", + "code": 2303 + }, + "Cannot find name '{0}'.": { + "category": "Error", + "code": 2304 + }, + "Module '{0}' has no exported member '{1}'.": { + "category": "Error", + "code": 2305 + }, + "File '{0}' is not a module.": { + "category": "Error", + "code": 2306 + }, + "Cannot find module '{0}' or its corresponding type declarations.": { + "category": "Error", + "code": 2307 + }, + "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { + "category": "Error", + "code": 2308 + }, + "An export assignment cannot be used in a module with other exported elements.": { + "category": "Error", + "code": 2309 + }, + "Type '{0}' recursively references itself as a base type.": { + "category": "Error", + "code": 2310 + }, + "Cannot find name '{0}'. Did you mean to write this in an async function?": { + "category": "Error", + "code": 2311 + }, + "An interface can only extend an object type or intersection of object types with statically known members.": { + "category": "Error", + "code": 2312 + }, + "Type parameter '{0}' has a circular constraint.": { + "category": "Error", + "code": 2313 + }, + "Generic type '{0}' requires {1} type argument(s).": { + "category": "Error", + "code": 2314 + }, + "Type '{0}' is not generic.": { + "category": "Error", + "code": 2315 + }, + "Global type '{0}' must be a class or interface type.": { + "category": "Error", + "code": 2316 + }, + "Global type '{0}' must have {1} type parameter(s).": { + "category": "Error", + "code": 2317 + }, + "Cannot find global type '{0}'.": { + "category": "Error", + "code": 2318 + }, + "Named property '{0}' of types '{1}' and '{2}' are not identical.": { + "category": "Error", + "code": 2319 + }, + "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.": { + "category": "Error", + "code": 2320 + }, + "Excessive stack depth comparing types '{0}' and '{1}'.": { + "category": "Error", + "code": 2321 + }, + "Type '{0}' is not assignable to type '{1}'.": { + "category": "Error", + "code": 2322 + }, + "Cannot redeclare exported variable '{0}'.": { + "category": "Error", + "code": 2323 + }, + "Property '{0}' is missing in type '{1}'.": { + "category": "Error", + "code": 2324 + }, + "Property '{0}' is private in type '{1}' but not in type '{2}'.": { + "category": "Error", + "code": 2325 + }, + "Types of property '{0}' are incompatible.": { + "category": "Error", + "code": 2326 + }, + "Property '{0}' is optional in type '{1}' but required in type '{2}'.": { + "category": "Error", + "code": 2327 + }, + "Types of parameters '{0}' and '{1}' are incompatible.": { + "category": "Error", + "code": 2328 + }, + "Index signature for type '{0}' is missing in type '{1}'.": { + "category": "Error", + "code": 2329 + }, + "'{0}' and '{1}' index signatures are incompatible.": { + "category": "Error", + "code": 2330 + }, + "'this' cannot be referenced in a module or namespace body.": { + "category": "Error", + "code": 2331 + }, + "'this' cannot be referenced in current location.": { + "category": "Error", + "code": 2332 + }, + "'this' cannot be referenced in a static property initializer.": { + "category": "Error", + "code": 2334 + }, + "'super' can only be referenced in a derived class.": { + "category": "Error", + "code": 2335 + }, + "'super' cannot be referenced in constructor arguments.": { + "category": "Error", + "code": 2336 + }, + "Super calls are not permitted outside constructors or in nested functions inside constructors.": { + "category": "Error", + "code": 2337 + }, + "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.": { + "category": "Error", + "code": 2338 + }, + "Property '{0}' does not exist on type '{1}'.": { + "category": "Error", + "code": 2339 + }, + "Only public and protected methods of the base class are accessible via the 'super' keyword.": { + "category": "Error", + "code": 2340 + }, + "Property '{0}' is private and only accessible within class '{1}'.": { + "category": "Error", + "code": 2341 + }, + "This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.": { + "category": "Error", + "code": 2343 + }, + "Type '{0}' does not satisfy the constraint '{1}'.": { + "category": "Error", + "code": 2344 + }, + "Argument of type '{0}' is not assignable to parameter of type '{1}'.": { + "category": "Error", + "code": 2345 + }, + "Call target does not contain any signatures.": { + "category": "Error", + "code": 2346 + }, + "Untyped function calls may not accept type arguments.": { + "category": "Error", + "code": 2347 + }, + "Value of type '{0}' is not callable. Did you mean to include 'new'?": { + "category": "Error", + "code": 2348 + }, + "This expression is not callable.": { + "category": "Error", + "code": 2349 + }, + "Only a void function can be called with the 'new' keyword.": { + "category": "Error", + "code": 2350 + }, + "This expression is not constructable.": { + "category": "Error", + "code": 2351 + }, + "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.": { + "category": "Error", + "code": 2352 + }, + "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.": { + "category": "Error", + "code": 2353 + }, + "This syntax requires an imported helper but module '{0}' cannot be found.": { + "category": "Error", + "code": 2354 + }, + "A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.": { + "category": "Error", + "code": 2355 + }, + "An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.": { + "category": "Error", + "code": 2356 + }, + "The operand of an increment or decrement operator must be a variable or a property access.": { + "category": "Error", + "code": 2357 + }, + "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { + "category": "Error", + "code": 2358 + }, + "The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.": { + "category": "Error", + "code": 2359 + }, + "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.": { + "category": "Error", + "code": 2362 + }, + "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.": { + "category": "Error", + "code": 2363 + }, + "The left-hand side of an assignment expression must be a variable or a property access.": { + "category": "Error", + "code": 2364 + }, + "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { + "category": "Error", + "code": 2365 + }, + "Function lacks ending return statement and return type does not include 'undefined'.": { + "category": "Error", + "code": 2366 + }, + "This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.": { + "category": "Error", + "code": 2367 + }, + "Type parameter name cannot be '{0}'.": { + "category": "Error", + "code": 2368 + }, + "A parameter property is only allowed in a constructor implementation.": { + "category": "Error", + "code": 2369 + }, + "A rest parameter must be of an array type.": { + "category": "Error", + "code": 2370 + }, + "A parameter initializer is only allowed in a function or constructor implementation.": { + "category": "Error", + "code": 2371 + }, + "Parameter '{0}' cannot reference itself.": { + "category": "Error", + "code": 2372 + }, + "Parameter '{0}' cannot reference identifier '{1}' declared after it.": { + "category": "Error", + "code": 2373 + }, + "Duplicate index signature for type '{0}'.": { + "category": "Error", + "code": 2374 + }, + "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.": { + "category": "Error", + "code": 2375 + }, + "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.": { + "category": "Error", + "code": 2376 + }, + "Constructors for derived classes must contain a 'super' call.": { + "category": "Error", + "code": 2377 + }, + "A 'get' accessor must return a value.": { + "category": "Error", + "code": 2378 + }, + "Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.": { + "category": "Error", + "code": 2379 + }, + "Overload signatures must all be exported or non-exported.": { + "category": "Error", + "code": 2383 + }, + "Overload signatures must all be ambient or non-ambient.": { + "category": "Error", + "code": 2384 + }, + "Overload signatures must all be public, private or protected.": { + "category": "Error", + "code": 2385 + }, + "Overload signatures must all be optional or required.": { + "category": "Error", + "code": 2386 + }, + "Function overload must be static.": { + "category": "Error", + "code": 2387 + }, + "Function overload must not be static.": { + "category": "Error", + "code": 2388 + }, + "Function implementation name must be '{0}'.": { + "category": "Error", + "code": 2389 + }, + "Constructor implementation is missing.": { + "category": "Error", + "code": 2390 + }, + "Function implementation is missing or not immediately following the declaration.": { + "category": "Error", + "code": 2391 + }, + "Multiple constructor implementations are not allowed.": { + "category": "Error", + "code": 2392 + }, + "Duplicate function implementation.": { + "category": "Error", + "code": 2393 + }, + "This overload signature is not compatible with its implementation signature.": { + "category": "Error", + "code": 2394 + }, + "Individual declarations in merged declaration '{0}' must be all exported or all local.": { + "category": "Error", + "code": 2395 + }, + "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { + "category": "Error", + "code": 2396 + }, + "Declaration name conflicts with built-in global identifier '{0}'.": { + "category": "Error", + "code": 2397 + }, + "'constructor' cannot be used as a parameter property name.": { + "category": "Error", + "code": 2398 + }, + "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { + "category": "Error", + "code": 2399 + }, + "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { + "category": "Error", + "code": 2400 + }, + "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.": { + "category": "Error", + "code": 2401 + }, + "Expression resolves to '_super' that compiler uses to capture base class reference.": { + "category": "Error", + "code": 2402 + }, + "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { + "category": "Error", + "code": 2403 + }, + "The left-hand side of a 'for...in' statement cannot use a type annotation.": { + "category": "Error", + "code": 2404 + }, + "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.": { + "category": "Error", + "code": 2405 + }, + "The left-hand side of a 'for...in' statement must be a variable or a property access.": { + "category": "Error", + "code": 2406 + }, + "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.": { + "category": "Error", + "code": 2407 + }, + "Setters cannot return a value.": { + "category": "Error", + "code": 2408 + }, + "Return type of constructor signature must be assignable to the instance type of the class.": { + "category": "Error", + "code": 2409 + }, + "The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.": { + "category": "Error", + "code": 2410 + }, + "Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.": { + "category": "Error", + "code": 2411 + }, + "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.": { + "category": "Error", + "code": 2412 + }, + "'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.": { + "category": "Error", + "code": 2413 + }, + "Class name cannot be '{0}'.": { + "category": "Error", + "code": 2414 + }, + "Class '{0}' incorrectly extends base class '{1}'.": { + "category": "Error", + "code": 2415 + }, + "Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.": { + "category": "Error", + "code": 2416 + }, + "Class static side '{0}' incorrectly extends base class static side '{1}'.": { + "category": "Error", + "code": 2417 + }, + "Type of computed property's value is '{0}', which is not assignable to type '{1}'.": { + "category": "Error", + "code": 2418 + }, + "Types of construct signatures are incompatible.": { + "category": "Error", + "code": 2419 + }, + "Class '{0}' incorrectly implements interface '{1}'.": { + "category": "Error", + "code": 2420 + }, + "A class can only implement an object type or intersection of object types with statically known members.": { + "category": "Error", + "code": 2422 + }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { + "category": "Error", + "code": 2423 + }, + "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2425 + }, + "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2426 + }, + "Interface name cannot be '{0}'.": { + "category": "Error", + "code": 2427 + }, + "All declarations of '{0}' must have identical type parameters.": { + "category": "Error", + "code": 2428 + }, + "Interface '{0}' incorrectly extends interface '{1}'.": { + "category": "Error", + "code": 2430 + }, + "Enum name cannot be '{0}'.": { + "category": "Error", + "code": 2431 + }, + "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.": { + "category": "Error", + "code": 2432 + }, + "A namespace declaration cannot be in a different file from a class or function with which it is merged.": { + "category": "Error", + "code": 2433 + }, + "A namespace declaration cannot be located prior to a class or function with which it is merged.": { + "category": "Error", + "code": 2434 + }, + "Ambient modules cannot be nested in other modules or namespaces.": { + "category": "Error", + "code": 2435 + }, + "Ambient module declaration cannot specify relative module name.": { + "category": "Error", + "code": 2436 + }, + "Module '{0}' is hidden by a local declaration with the same name.": { + "category": "Error", + "code": 2437 + }, + "Import name cannot be '{0}'.": { + "category": "Error", + "code": 2438 + }, + "Import or export declaration in an ambient module declaration cannot reference module through relative module name.": { + "category": "Error", + "code": 2439 + }, + "Import declaration conflicts with local declaration of '{0}'.": { + "category": "Error", + "code": 2440 + }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.": { + "category": "Error", + "code": 2441 + }, + "Types have separate declarations of a private property '{0}'.": { + "category": "Error", + "code": 2442 + }, + "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.": { + "category": "Error", + "code": 2443 + }, + "Property '{0}' is protected in type '{1}' but public in type '{2}'.": { + "category": "Error", + "code": 2444 + }, + "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.": { + "category": "Error", + "code": 2445 + }, + "Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.": { + "category": "Error", + "code": 2446 + }, + "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.": { + "category": "Error", + "code": 2447 + }, + "Block-scoped variable '{0}' used before its declaration.": { + "category": "Error", + "code": 2448 + }, + "Class '{0}' used before its declaration.": { + "category": "Error", + "code": 2449 + }, + "Enum '{0}' used before its declaration.": { + "category": "Error", + "code": 2450 + }, + "Cannot redeclare block-scoped variable '{0}'.": { + "category": "Error", + "code": 2451 + }, + "An enum member cannot have a numeric name.": { + "category": "Error", + "code": 2452 + }, + "Variable '{0}' is used before being assigned.": { + "category": "Error", + "code": 2454 + }, + "Type alias '{0}' circularly references itself.": { + "category": "Error", + "code": 2456 + }, + "Type alias name cannot be '{0}'.": { + "category": "Error", + "code": 2457 + }, + "An AMD module cannot have multiple name assignments.": { + "category": "Error", + "code": 2458 + }, + "Module '{0}' declares '{1}' locally, but it is not exported.": { + "category": "Error", + "code": 2459 + }, + "Module '{0}' declares '{1}' locally, but it is exported as '{2}'.": { + "category": "Error", + "code": 2460 + }, + "Type '{0}' is not an array type.": { + "category": "Error", + "code": 2461 + }, + "A rest element must be last in a destructuring pattern.": { + "category": "Error", + "code": 2462 + }, + "A binding pattern parameter cannot be optional in an implementation signature.": { + "category": "Error", + "code": 2463 + }, + "A computed property name must be of type 'string', 'number', 'symbol', or 'any'.": { + "category": "Error", + "code": 2464 + }, + "'this' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2465 + }, + "'super' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2466 + }, + "A computed property name cannot reference a type parameter from its containing type.": { + "category": "Error", + "code": 2467 + }, + "Cannot find global value '{0}'.": { + "category": "Error", + "code": 2468 + }, + "The '{0}' operator cannot be applied to type 'symbol'.": { + "category": "Error", + "code": 2469 + }, + "Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 2472 + }, + "Enum declarations must all be const or non-const.": { + "category": "Error", + "code": 2473 + }, + "const enum member initializers must be constant expressions.": { + "category": "Error", + "code": 2474 + }, + "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.": { + "category": "Error", + "code": 2475 + }, + "A const enum member can only be accessed using a string literal.": { + "category": "Error", + "code": 2476 + }, + "'const' enum member initializer was evaluated to a non-finite value.": { + "category": "Error", + "code": 2477 + }, + "'const' enum member initializer was evaluated to disallowed value 'NaN'.": { + "category": "Error", + "code": 2478 + }, + "'let' is not allowed to be used as a name in 'let' or 'const' declarations.": { + "category": "Error", + "code": 2480 + }, + "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.": { + "category": "Error", + "code": 2481 + }, + "The left-hand side of a 'for...of' statement cannot use a type annotation.": { + "category": "Error", + "code": 2483 + }, + "Export declaration conflicts with exported declaration of '{0}'.": { + "category": "Error", + "code": 2484 + }, + "The left-hand side of a 'for...of' statement must be a variable or a property access.": { + "category": "Error", + "code": 2487 + }, + "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.": { + "category": "Error", + "code": 2488 + }, + "An iterator must have a 'next()' method.": { + "category": "Error", + "code": 2489 + }, + "The type returned by the '{0}()' method of an iterator must have a 'value' property.": { + "category": "Error", + "code": 2490 + }, + "The left-hand side of a 'for...in' statement cannot be a destructuring pattern.": { + "category": "Error", + "code": 2491 + }, + "Cannot redeclare identifier '{0}' in catch clause.": { + "category": "Error", + "code": 2492 + }, + "Tuple type '{0}' of length '{1}' has no element at index '{2}'.": { + "category": "Error", + "code": 2493 + }, + "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.": { + "category": "Error", + "code": 2494 + }, + "Type '{0}' is not an array type or a string type.": { + "category": "Error", + "code": 2495 + }, + "The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.": { + "category": "Error", + "code": 2496 + }, + "This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.": { + "category": "Error", + "code": 2497 + }, + "Module '{0}' uses 'export =' and cannot be used with 'export *'.": { + "category": "Error", + "code": 2498 + }, + "An interface can only extend an identifier/qualified-name with optional type arguments.": { + "category": "Error", + "code": 2499 + }, + "A class can only implement an identifier/qualified-name with optional type arguments.": { + "category": "Error", + "code": 2500 + }, + "A rest element cannot contain a binding pattern.": { + "category": "Error", + "code": 2501 + }, + "'{0}' is referenced directly or indirectly in its own type annotation.": { + "category": "Error", + "code": 2502 + }, + "Cannot find namespace '{0}'.": { + "category": "Error", + "code": 2503 + }, + "Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.": { + "category": "Error", + "code": 2504 + }, + "A generator cannot have a 'void' type annotation.": { + "category": "Error", + "code": 2505 + }, + "'{0}' is referenced directly or indirectly in its own base expression.": { + "category": "Error", + "code": 2506 + }, + "Type '{0}' is not a constructor function type.": { + "category": "Error", + "code": 2507 + }, + "No base constructor has the specified number of type arguments.": { + "category": "Error", + "code": 2508 + }, + "Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.": { + "category": "Error", + "code": 2509 + }, + "Base constructors must all have the same return type.": { + "category": "Error", + "code": 2510 + }, + "Cannot create an instance of an abstract class.": { + "category": "Error", + "code": 2511 + }, + "Overload signatures must all be abstract or non-abstract.": { + "category": "Error", + "code": 2512 + }, + "Abstract method '{0}' in class '{1}' cannot be accessed via super expression.": { + "category": "Error", + "code": 2513 + }, + "A tuple type cannot be indexed with a negative value.": { + "category": "Error", + "code": 2514 + }, + "Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.": { + "category": "Error", + "code": 2515 + }, + "All declarations of an abstract method must be consecutive.": { + "category": "Error", + "code": 2516 + }, + "Cannot assign an abstract constructor type to a non-abstract constructor type.": { + "category": "Error", + "code": 2517 + }, + "A 'this'-based type guard is not compatible with a parameter-based type guard.": { + "category": "Error", + "code": 2518 + }, + "An async iterator must have a 'next()' method.": { + "category": "Error", + "code": 2519 + }, + "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.": { + "category": "Error", + "code": 2520 + }, + "The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.": { + "category": "Error", + "code": 2522 + }, + "'yield' expressions cannot be used in a parameter initializer.": { + "category": "Error", + "code": 2523 + }, + "'await' expressions cannot be used in a parameter initializer.": { + "category": "Error", + "code": 2524 + }, + "A 'this' type is available only in a non-static member of a class or interface.": { + "category": "Error", + "code": 2526 + }, + "The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.": { + "category": "Error", + "code": 2527 + }, + "A module cannot have multiple default exports.": { + "category": "Error", + "code": 2528 + }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.": { + "category": "Error", + "code": 2529 + }, + "Property '{0}' is incompatible with index signature.": { + "category": "Error", + "code": 2530 + }, + "Object is possibly 'null'.": { + "category": "Error", + "code": 2531 + }, + "Object is possibly 'undefined'.": { + "category": "Error", + "code": 2532 + }, + "Object is possibly 'null' or 'undefined'.": { + "category": "Error", + "code": 2533 + }, + "A function returning 'never' cannot have a reachable end point.": { + "category": "Error", + "code": 2534 + }, + "Type '{0}' cannot be used to index type '{1}'.": { + "category": "Error", + "code": 2536 + }, + "Type '{0}' has no matching index signature for type '{1}'.": { + "category": "Error", + "code": 2537 + }, + "Type '{0}' cannot be used as an index type.": { + "category": "Error", + "code": 2538 + }, + "Cannot assign to '{0}' because it is not a variable.": { + "category": "Error", + "code": 2539 + }, + "Cannot assign to '{0}' because it is a read-only property.": { + "category": "Error", + "code": 2540 + }, + "Index signature in type '{0}' only permits reading.": { + "category": "Error", + "code": 2542 + }, + "Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.": { + "category": "Error", + "code": 2543 + }, + "Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.": { + "category": "Error", + "code": 2544 + }, + "A mixin class must have a constructor with a single rest parameter of type 'any[]'.": { + "category": "Error", + "code": 2545 + }, + "The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.": { + "category": "Error", + "code": 2547 + }, + "Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.": { + "category": "Error", + "code": 2548 + }, + "Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.": { + "category": "Error", + "code": 2549 + }, + "Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.": { + "category": "Error", + "code": 2550 + }, + "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?": { + "category": "Error", + "code": 2551 + }, + "Cannot find name '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 2552 + }, + "Computed values are not permitted in an enum with string valued members.": { + "category": "Error", + "code": 2553 + }, + "Expected {0} arguments, but got {1}.": { + "category": "Error", + "code": 2554 + }, + "Expected at least {0} arguments, but got {1}.": { + "category": "Error", + "code": 2555 + }, + "A spread argument must either have a tuple type or be passed to a rest parameter.": { + "category": "Error", + "code": 2556 + }, + "Expected {0} type arguments, but got {1}.": { + "category": "Error", + "code": 2558 + }, + "Type '{0}' has no properties in common with type '{1}'.": { + "category": "Error", + "code": 2559 + }, + "Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?": { + "category": "Error", + "code": 2560 + }, + "Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?": { + "category": "Error", + "code": 2561 + }, + "Base class expressions cannot reference class type parameters.": { + "category": "Error", + "code": 2562 + }, + "The containing function or module body is too large for control flow analysis.": { + "category": "Error", + "code": 2563 + }, + "Property '{0}' has no initializer and is not definitely assigned in the constructor.": { + "category": "Error", + "code": 2564 + }, + "Property '{0}' is used before being assigned.": { + "category": "Error", + "code": 2565 + }, + "A rest element cannot have a property name.": { + "category": "Error", + "code": 2566 + }, + "Enum declarations can only merge with namespace or other enum declarations.": { + "category": "Error", + "code": 2567 + }, + "Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?": { + "category": "Error", + "code": 2568 + }, + "Could not find name '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 2570 + }, + "Object is of type 'unknown'.": { + "category": "Error", + "code": 2571 + }, + "A rest element type must be an array type.": { + "category": "Error", + "code": 2574 + }, + "No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.": { + "category": "Error", + "code": 2575 + }, + "Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?": { + "category": "Error", + "code": 2576 + }, + "Return type annotation circularly references itself.": { + "category": "Error", + "code": 2577 + }, + "Unused '@ts-expect-error' directive.": { + "category": "Error", + "code": 2578 + }, + "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.": { + "category": "Error", + "code": 2580 + }, + "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.": { + "category": "Error", + "code": 2581 + }, + "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.": { + "category": "Error", + "code": 2582 + }, + "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.": { + "category": "Error", + "code": 2583 + }, + "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.": { + "category": "Error", + "code": 2584 + }, + "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.": { + "category": "Error", + "code": 2585 + }, + "Cannot assign to '{0}' because it is a constant.": { + "category": "Error", + "code": 2588 + }, + "Type instantiation is excessively deep and possibly infinite.": { + "category": "Error", + "code": 2589 + }, + "Expression produces a union type that is too complex to represent.": { + "category": "Error", + "code": 2590 + }, + "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.": { + "category": "Error", + "code": 2591 + }, + "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.": { + "category": "Error", + "code": 2592 + }, + "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.": { + "category": "Error", + "code": 2593 + }, + "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.": { + "category": "Error", + "code": 2594 + }, + "'{0}' can only be imported by using a default import.": { + "category": "Error", + "code": 2595 + }, + "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.": { + "category": "Error", + "code": 2596 + }, + "'{0}' can only be imported by using a 'require' call or by using a default import.": { + "category": "Error", + "code": 2597 + }, + "'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.": { + "category": "Error", + "code": 2598 + }, + "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.": { + "category": "Error", + "code": 2602 + }, + "Property '{0}' in type '{1}' is not assignable to type '{2}'.": { + "category": "Error", + "code": 2603 + }, + "JSX element type '{0}' does not have any construct or call signatures.": { + "category": "Error", + "code": 2604 + }, + "Property '{0}' of JSX spread attribute is not assignable to target property.": { + "category": "Error", + "code": 2606 + }, + "JSX element class does not support attributes because it does not have a '{0}' property.": { + "category": "Error", + "code": 2607 + }, + "The global type 'JSX.{0}' may not have more than one property.": { + "category": "Error", + "code": 2608 + }, + "JSX spread child must be an array type.": { + "category": "Error", + "code": 2609 + }, + "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.": { + "category": "Error", + "code": 2610 + }, + "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.": { + "category": "Error", + "code": 2611 + }, + "Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.": { + "category": "Error", + "code": 2612 + }, + "Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?": { + "category": "Error", + "code": 2613 + }, + "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?": { + "category": "Error", + "code": 2614 + }, + "Type of property '{0}' circularly references itself in mapped type '{1}'.": { + "category": "Error", + "code": 2615 + }, + "'{0}' can only be imported by using 'import {1} = require({2})' or a default import.": { + "category": "Error", + "code": 2616 + }, + "'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.": { + "category": "Error", + "code": 2617 + }, + "Source has {0} element(s) but target requires {1}.": { + "category": "Error", + "code": 2618 + }, + "Source has {0} element(s) but target allows only {1}.": { + "category": "Error", + "code": 2619 + }, + "Target requires {0} element(s) but source may have fewer.": { + "category": "Error", + "code": 2620 + }, + "Target allows only {0} element(s) but source may have more.": { + "category": "Error", + "code": 2621 + }, + "Source provides no match for required element at position {0} in target.": { + "category": "Error", + "code": 2623 + }, + "Source provides no match for variadic element at position {0} in target.": { + "category": "Error", + "code": 2624 + }, + "Variadic element at position {0} in source does not match element at position {1} in target.": { + "category": "Error", + "code": 2625 + }, + "Type at position {0} in source is not compatible with type at position {1} in target.": { + "category": "Error", + "code": 2626 + }, + "Type at positions {0} through {1} in source is not compatible with type at position {2} in target.": { + "category": "Error", + "code": 2627 + }, + "Cannot assign to '{0}' because it is an enum.": { + "category": "Error", + "code": 2628 + }, + "Cannot assign to '{0}' because it is a class.": { + "category": "Error", + "code": 2629 + }, + "Cannot assign to '{0}' because it is a function.": { + "category": "Error", + "code": 2630 + }, + "Cannot assign to '{0}' because it is a namespace.": { + "category": "Error", + "code": 2631 + }, + "Cannot assign to '{0}' because it is an import.": { + "category": "Error", + "code": 2632 + }, + "JSX property access expressions cannot include JSX namespace names": { + "category": "Error", + "code": 2633 + }, + "'{0}' index signatures are incompatible.": { + "category": "Error", + "code": 2634 + }, + "Type '{0}' has no signatures for which the type argument list is applicable.": { + "category": "Error", + "code": 2635 + }, + "Type '{0}' is not assignable to type '{1}' as implied by variance annotation.": { + "category": "Error", + "code": 2636 + }, + "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.": { + "category": "Error", + "code": 2637 + }, + "Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.": { + "category": "Error", + "code": 2638 + }, + "React components cannot include JSX namespace names": { + "category": "Error", + "code": 2639 + }, + "Cannot augment module '{0}' with value exports because it resolves to a non-module entity.": { + "category": "Error", + "code": 2649 + }, + "Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.": { + "category": "Error", + "code": 2650 + }, + "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.": { + "category": "Error", + "code": 2651 + }, + "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.": { + "category": "Error", + "code": 2652 + }, + "Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.": { + "category": "Error", + "code": 2653 + }, + "Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.": { + "category": "Error", + "code": 2654 + }, + "Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.": { + "category": "Error", + "code": 2655 + }, + "Non-abstract class expression is missing implementations for the following members of '{0}': {1}.": { + "category": "Error", + "code": 2656 + }, + "JSX expressions must have one parent element.": { + "category": "Error", + "code": 2657 + }, + "Type '{0}' provides no match for the signature '{1}'.": { + "category": "Error", + "code": 2658 + }, + "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.": { + "category": "Error", + "code": 2659 + }, + "'super' can only be referenced in members of derived classes or object literal expressions.": { + "category": "Error", + "code": 2660 + }, + "Cannot export '{0}'. Only local declarations can be exported from a module.": { + "category": "Error", + "code": 2661 + }, + "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?": { + "category": "Error", + "code": 2662 + }, + "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?": { + "category": "Error", + "code": 2663 + }, + "Invalid module name in augmentation, module '{0}' cannot be found.": { + "category": "Error", + "code": 2664 + }, + "Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.": { + "category": "Error", + "code": 2665 + }, + "Exports and export assignments are not permitted in module augmentations.": { + "category": "Error", + "code": 2666 + }, + "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.": { + "category": "Error", + "code": 2667 + }, + "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.": { + "category": "Error", + "code": 2668 + }, + "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.": { + "category": "Error", + "code": 2669 + }, + "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.": { + "category": "Error", + "code": 2670 + }, + "Cannot augment module '{0}' because it resolves to a non-module entity.": { + "category": "Error", + "code": 2671 + }, + "Cannot assign a '{0}' constructor type to a '{1}' constructor type.": { + "category": "Error", + "code": 2672 + }, + "Constructor of class '{0}' is private and only accessible within the class declaration.": { + "category": "Error", + "code": 2673 + }, + "Constructor of class '{0}' is protected and only accessible within the class declaration.": { + "category": "Error", + "code": 2674 + }, + "Cannot extend a class '{0}'. Class constructor is marked as private.": { + "category": "Error", + "code": 2675 + }, + "Accessors must both be abstract or non-abstract.": { + "category": "Error", + "code": 2676 + }, + "A type predicate's type must be assignable to its parameter's type.": { + "category": "Error", + "code": 2677 + }, + "Type '{0}' is not comparable to type '{1}'.": { + "category": "Error", + "code": 2678 + }, + "A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.": { + "category": "Error", + "code": 2679 + }, + "A '{0}' parameter must be the first parameter.": { + "category": "Error", + "code": 2680 + }, + "A constructor cannot have a 'this' parameter.": { + "category": "Error", + "code": 2681 + }, + "'this' implicitly has type 'any' because it does not have a type annotation.": { + "category": "Error", + "code": 2683 + }, + "The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.": { + "category": "Error", + "code": 2684 + }, + "The 'this' types of each signature are incompatible.": { + "category": "Error", + "code": 2685 + }, + "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.": { + "category": "Error", + "code": 2686 + }, + "All declarations of '{0}' must have identical modifiers.": { + "category": "Error", + "code": 2687 + }, + "Cannot find type definition file for '{0}'.": { + "category": "Error", + "code": 2688 + }, + "Cannot extend an interface '{0}'. Did you mean 'implements'?": { + "category": "Error", + "code": 2689 + }, + "'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?": { + "category": "Error", + "code": 2690 + }, + "'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.": { + "category": "Error", + "code": 2692 + }, + "'{0}' only refers to a type, but is being used as a value here.": { + "category": "Error", + "code": 2693 + }, + "Namespace '{0}' has no exported member '{1}'.": { + "category": "Error", + "code": 2694 + }, + "Left side of comma operator is unused and has no side effects.": { + "category": "Error", + "code": 2695 + }, + "The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?": { + "category": "Error", + "code": 2696 + }, + "An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.": { + "category": "Error", + "code": 2697 + }, + "Spread types may only be created from object types.": { + "category": "Error", + "code": 2698 + }, + "Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.": { + "category": "Error", + "code": 2699 + }, + "Rest types may only be created from object types.": { + "category": "Error", + "code": 2700 + }, + "The target of an object rest assignment must be a variable or a property access.": { + "category": "Error", + "code": 2701 + }, + "'{0}' only refers to a type, but is being used as a namespace here.": { + "category": "Error", + "code": 2702 + }, + "The operand of a 'delete' operator must be a property reference.": { + "category": "Error", + "code": 2703 + }, + "The operand of a 'delete' operator cannot be a read-only property.": { + "category": "Error", + "code": 2704 + }, + "An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.": { + "category": "Error", + "code": 2705 + }, + "Required type parameters may not follow optional type parameters.": { + "category": "Error", + "code": 2706 + }, + "Generic type '{0}' requires between {1} and {2} type arguments.": { + "category": "Error", + "code": 2707 + }, + "Cannot use namespace '{0}' as a value.": { + "category": "Error", + "code": 2708 + }, + "Cannot use namespace '{0}' as a type.": { + "category": "Error", + "code": 2709 + }, + "'{0}' are specified twice. The attribute named '{0}' will be overwritten.": { + "category": "Error", + "code": 2710 + }, + "A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.": { + "category": "Error", + "code": 2711 + }, + "A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.": { + "category": "Error", + "code": 2712 + }, + "Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?": { + "category": "Error", + "code": 2713 + }, + "The expression of an export assignment must be an identifier or qualified name in an ambient context.": { + "category": "Error", + "code": 2714 + }, + "Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.": { + "category": "Error", + "code": 2715 + }, + "Type parameter '{0}' has a circular default.": { + "category": "Error", + "code": 2716 + }, + "Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.": { + "category": "Error", + "code": 2717 + }, + "Duplicate property '{0}'.": { + "category": "Error", + "code": 2718 + }, + "Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.": { + "category": "Error", + "code": 2719 + }, + "Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?": { + "category": "Error", + "code": 2720 + }, + "Cannot invoke an object which is possibly 'null'.": { + "category": "Error", + "code": 2721 + }, + "Cannot invoke an object which is possibly 'undefined'.": { + "category": "Error", + "code": 2722 + }, + "Cannot invoke an object which is possibly 'null' or 'undefined'.": { + "category": "Error", + "code": 2723 + }, + "'{0}' has no exported member named '{1}'. Did you mean '{2}'?": { + "category": "Error", + "code": 2724 + }, + "Class name cannot be 'Object' when targeting ES5 and above with module {0}.": { + "category": "Error", + "code": 2725 + }, + "Cannot find lib definition for '{0}'.": { + "category": "Error", + "code": 2726 + }, + "Cannot find lib definition for '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 2727 + }, + "'{0}' is declared here.": { + "category": "Message", + "code": 2728 + }, + "Property '{0}' is used before its initialization.": { + "category": "Error", + "code": 2729 + }, + "An arrow function cannot have a 'this' parameter.": { + "category": "Error", + "code": 2730 + }, + "Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.": { + "category": "Error", + "code": 2731 + }, + "Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.": { + "category": "Error", + "code": 2732 + }, + "Property '{0}' was also declared here.": { + "category": "Error", + "code": 2733 + }, + "Are you missing a semicolon?": { + "category": "Error", + "code": 2734 + }, + "Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?": { + "category": "Error", + "code": 2735 + }, + "Operator '{0}' cannot be applied to type '{1}'.": { + "category": "Error", + "code": 2736 + }, + "BigInt literals are not available when targeting lower than ES2020.": { + "category": "Error", + "code": 2737 + }, + "An outer value of 'this' is shadowed by this container.": { + "category": "Message", + "code": 2738 + }, + "Type '{0}' is missing the following properties from type '{1}': {2}": { + "category": "Error", + "code": 2739 + }, + "Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.": { + "category": "Error", + "code": 2740 + }, + "Property '{0}' is missing in type '{1}' but required in type '{2}'.": { + "category": "Error", + "code": 2741 + }, + "The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.": { + "category": "Error", + "code": 2742 + }, + "No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.": { + "category": "Error", + "code": 2743 + }, + "Type parameter defaults can only reference previously declared type parameters.": { + "category": "Error", + "code": 2744 + }, + "This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.": { + "category": "Error", + "code": 2745 + }, + "This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.": { + "category": "Error", + "code": 2746 + }, + "'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.": { + "category": "Error", + "code": 2747 + }, + "Cannot access ambient const enums when '{0}' is enabled.": { + "category": "Error", + "code": 2748 + }, + "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?": { + "category": "Error", + "code": 2749 + }, + "The implementation signature is declared here.": { + "category": "Error", + "code": 2750 + }, + "Circularity originates in type at this location.": { + "category": "Error", + "code": 2751 + }, + "The first export default is here.": { + "category": "Error", + "code": 2752 + }, + "Another export default is here.": { + "category": "Error", + "code": 2753 + }, + "'super' may not use type arguments.": { + "category": "Error", + "code": 2754 + }, + "No constituent of type '{0}' is callable.": { + "category": "Error", + "code": 2755 + }, + "Not all constituents of type '{0}' are callable.": { + "category": "Error", + "code": 2756 + }, + "Type '{0}' has no call signatures.": { + "category": "Error", + "code": 2757 + }, + "Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.": { + "category": "Error", + "code": 2758 + }, + "No constituent of type '{0}' is constructable.": { + "category": "Error", + "code": 2759 + }, + "Not all constituents of type '{0}' are constructable.": { + "category": "Error", + "code": 2760 + }, + "Type '{0}' has no construct signatures.": { + "category": "Error", + "code": 2761 + }, + "Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.": { + "category": "Error", + "code": 2762 + }, + "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.": { + "category": "Error", + "code": 2763 + }, + "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.": { + "category": "Error", + "code": 2764 + }, + "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.": { + "category": "Error", + "code": 2765 + }, + "Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.": { + "category": "Error", + "code": 2766 + }, + "The '{0}' property of an iterator must be a method.": { + "category": "Error", + "code": 2767 + }, + "The '{0}' property of an async iterator must be a method.": { + "category": "Error", + "code": 2768 + }, + "No overload matches this call.": { + "category": "Error", + "code": 2769 + }, + "The last overload gave the following error.": { + "category": "Error", + "code": 2770 + }, + "The last overload is declared here.": { + "category": "Error", + "code": 2771 + }, + "Overload {0} of {1}, '{2}', gave the following error.": { + "category": "Error", + "code": 2772 + }, + "Did you forget to use 'await'?": { + "category": "Error", + "code": 2773 + }, + "This condition will always return true since this function is always defined. Did you mean to call it instead?": { + "category": "Error", + "code": 2774 + }, + "Assertions require every name in the call target to be declared with an explicit type annotation.": { + "category": "Error", + "code": 2775 + }, + "Assertions require the call target to be an identifier or qualified name.": { + "category": "Error", + "code": 2776 + }, + "The operand of an increment or decrement operator may not be an optional property access.": { + "category": "Error", + "code": 2777 + }, + "The target of an object rest assignment may not be an optional property access.": { + "category": "Error", + "code": 2778 + }, + "The left-hand side of an assignment expression may not be an optional property access.": { + "category": "Error", + "code": 2779 + }, + "The left-hand side of a 'for...in' statement may not be an optional property access.": { + "category": "Error", + "code": 2780 + }, + "The left-hand side of a 'for...of' statement may not be an optional property access.": { + "category": "Error", + "code": 2781 + }, + "'{0}' needs an explicit type annotation.": { + "category": "Message", + "code": 2782 + }, + "'{0}' is specified more than once, so this usage will be overwritten.": { + "category": "Error", + "code": 2783 + }, + "'get' and 'set' accessors cannot declare 'this' parameters.": { + "category": "Error", + "code": 2784 + }, + "This spread always overwrites this property.": { + "category": "Error", + "code": 2785 + }, + "'{0}' cannot be used as a JSX component.": { + "category": "Error", + "code": 2786 + }, + "Its return type '{0}' is not a valid JSX element.": { + "category": "Error", + "code": 2787 + }, + "Its instance type '{0}' is not a valid JSX element.": { + "category": "Error", + "code": 2788 + }, + "Its element type '{0}' is not a valid JSX element.": { + "category": "Error", + "code": 2789 + }, + "The operand of a 'delete' operator must be optional.": { + "category": "Error", + "code": 2790 + }, + "Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.": { + "category": "Error", + "code": 2791 + }, + "Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?": { + "category": "Error", + "code": 2792 + }, + "The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.": { + "category": "Error", + "code": 2793 + }, + "Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?": { + "category": "Error", + "code": 2794 + }, + "The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.": { + "category": "Error", + "code": 2795 + }, + "It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.": { + "category": "Error", + "code": 2796 + }, + "A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.": { + "category": "Error", + "code": 2797 + }, + "The declaration was marked as deprecated here.": { + "category": "Error", + "code": 2798 + }, + "Type produces a tuple type that is too large to represent.": { + "category": "Error", + "code": 2799 + }, + "Expression produces a tuple type that is too large to represent.": { + "category": "Error", + "code": 2800 + }, + "This condition will always return true since this '{0}' is always defined.": { + "category": "Error", + "code": 2801 + }, + "Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.": { + "category": "Error", + "code": 2802 + }, + "Cannot assign to private method '{0}'. Private methods are not writable.": { + "category": "Error", + "code": 2803 + }, + "Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.": { + "category": "Error", + "code": 2804 + }, + "Private accessor was defined without a getter.": { + "category": "Error", + "code": 2806 + }, + "This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.": { + "category": "Error", + "code": 2807 + }, + "A get accessor must be at least as accessible as the setter": { + "category": "Error", + "code": 2808 + }, + "Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.": { + "category": "Error", + "code": 2809 + }, + "Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.": { + "category": "Error", + "code": 2810 + }, + "Initializer for property '{0}'": { + "category": "Error", + "code": 2811 + }, + "Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.": { + "category": "Error", + "code": 2812 + }, + "Class declaration cannot implement overload list for '{0}'.": { + "category": "Error", + "code": 2813 + }, + "Function with bodies can only merge with classes that are ambient.": { + "category": "Error", + "code": 2814 + }, + "'arguments' cannot be referenced in property initializers or class static initialization blocks.": { + "category": "Error", + "code": 2815 + }, + "Cannot use 'this' in a static property initializer of a decorated class.": { + "category": "Error", + "code": 2816 + }, + "Property '{0}' has no initializer and is not definitely assigned in a class static block.": { + "category": "Error", + "code": 2817 + }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.": { + "category": "Error", + "code": 2818 + }, + "Namespace name cannot be '{0}'.": { + "category": "Error", + "code": 2819 + }, + "Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?": { + "category": "Error", + "code": 2820 + }, + "Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.": { + "category": "Error", + "code": 2821 + }, + "Import assertions cannot be used with type-only imports or exports.": { + "category": "Error", + "code": 2822 + }, + "Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.": { + "category": "Error", + "code": 2823 + }, + "Cannot find namespace '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 2833 + }, + "Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.": { + "category": "Error", + "code": 2834 + }, + "Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?": { + "category": "Error", + "code": 2835 + }, + "Import assertions are not allowed on statements that compile to CommonJS 'require' calls.": { + "category": "Error", + "code": 2836 + }, + "Import assertion values must be string literal expressions.": { + "category": "Error", + "code": 2837 + }, + "All declarations of '{0}' must have identical constraints.": { + "category": "Error", + "code": 2838 + }, + "This condition will always return '{0}' since JavaScript compares objects by reference, not value.": { + "category": "Error", + "code": 2839 + }, + "An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.": { + "category": "Error", + "code": 2840 + }, + "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?": { + "category": "Error", + "code": 2842 + }, + "We can only write a type for '{0}' by adding a type for the entire parameter here.": { + "category": "Error", + "code": 2843 + }, + "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { + "category": "Error", + "code": 2844 + }, + "This condition will always return '{0}'.": { + "category": "Error", + "code": 2845 + }, + "A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?": { + "category": "Error", + "code": 2846 + }, + "The right-hand side of an 'instanceof' expression must not be an instantiation expression.": { + "category": "Error", + "code": 2848 + }, + "Target signature provides too few arguments. Expected {0} or more, but got {1}.": { + "category": "Error", + "code": 2849 + }, + "The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.": { + "category": "Error", + "code": 2850 + }, + "The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.": { + "category": "Error", + "code": 2851 + }, + "'await using' statements are only allowed within async functions and at the top levels of modules.": { + "category": "Error", + "code": 2852 + }, + "'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.": { + "category": "Error", + "code": 2853 + }, + "Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.": { + "category": "Error", + "code": 2854 + }, + "Class field '{0}' defined by the parent class is not accessible in the child class via super.": { + "category": "Error", + "code": 2855 + }, + "Import attributes are not allowed on statements that compile to CommonJS 'require' calls.": { + "category": "Error", + "code": 2856 + }, + "Import attributes cannot be used with type-only imports or exports.": { + "category": "Error", + "code": 2857 + }, + "Import attribute values must be string literal expressions.": { + "category": "Error", + "code": 2858 + }, + "Excessive complexity comparing types '{0}' and '{1}'.": { + "category": "Error", + "code": 2859 + }, + "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.": { + "category": "Error", + "code": 2860 + }, + "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.": { + "category": "Error", + "code": 2861 + }, + "Type '{0}' is generic and can only be indexed for reading.": { + "category": "Error", + "code": 2862 + }, + "A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.": { + "category": "Error", + "code": 2863 + }, + "A class cannot implement a primitive type like '{0}'. It can only implement other named object types.": { + "category": "Error", + "code": 2864 + }, + "Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.": { + "category": "Error", + "code": 2865 + }, + "Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.": { + "category": "Error", + "code": 2866 + }, + "Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.": { + "category": "Error", + "code": 2867 + }, + "Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.": { + "category": "Error", + "code": 2868 + }, + "Right operand of ?? is unreachable because the left operand is never nullish.": { + "category": "Error", + "code": 2869 + }, + "This binary expression is never nullish. Are you missing parentheses?": { + "category": "Error", + "code": 2870 + }, + "This expression is always nullish.": { + "category": "Error", + "code": 2871 + }, + "This kind of expression is always truthy.": { + "category": "Error", + "code": 2872 + }, + "This kind of expression is always falsy.": { + "category": "Error", + "code": 2873 + }, + "This JSX tag requires '{0}' to be in scope, but it could not be found.": { + "category": "Error", + "code": 2874 + }, + "This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.": { + "category": "Error", + "code": 2875 + }, + "This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".": { + "category": "Error", + "code": 2876 + }, + "This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.": { + "category": "Error", + "code": 2877 + }, + "This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.": { + "category": "Error", + "code": 2878 + }, + "Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.": { + "category": "Error", + "code": 2879 + }, + "Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'.": { + "category": "Error", + "code": 2880 + }, + "This expression is never nullish.": { + "category": "Error", + "code": 2881 + }, + "Cannot find module or type declarations for side-effect import of '{0}'.": { + "category": "Error", + "code": 2882 + }, + "The inferred type of '{0}' cannot be named without a reference to '{2}' from '{1}'. This is likely not portable. A type annotation is necessary.": { + "category": "Error", + "code": 2883 + }, + "Import declaration '{0}' is using private name '{1}'.": { + "category": "Error", + "code": 4000 + }, + "Type parameter '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4002 + }, + "Type parameter '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4004 + }, + "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4006 + }, + "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4008 + }, + "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4010 + }, + "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4012 + }, + "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4014 + }, + "Type parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4016 + }, + "Implements clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4019 + }, + "'extends' clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4020 + }, + "'extends' clause of exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4021 + }, + "'extends' clause of exported interface '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4022 + }, + "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4023 + }, + "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4024 + }, + "Exported variable '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4025 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4026 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4027 + }, + "Public static property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4028 + }, + "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4029 + }, + "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4030 + }, + "Public property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4031 + }, + "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4032 + }, + "Property '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4033 + }, + "Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4034 + }, + "Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4035 + }, + "Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4036 + }, + "Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4037 + }, + "Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4038 + }, + "Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4039 + }, + "Return type of public static getter '{0}' from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4040 + }, + "Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4041 + }, + "Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4042 + }, + "Return type of public getter '{0}' from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4043 + }, + "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4044 + }, + "Return type of constructor signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4045 + }, + "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4046 + }, + "Return type of call signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4047 + }, + "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4048 + }, + "Return type of index signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4049 + }, + "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4050 + }, + "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4051 + }, + "Return type of public static method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4052 + }, + "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4053 + }, + "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4054 + }, + "Return type of public method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4055 + }, + "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4056 + }, + "Return type of method from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4057 + }, + "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4058 + }, + "Return type of exported function has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4059 + }, + "Return type of exported function has or is using private name '{0}'.": { + "category": "Error", + "code": 4060 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4061 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4062 + }, + "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4063 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4064 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4065 + }, + "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4066 + }, + "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4067 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4068 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4069 + }, + "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4070 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4071 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4072 + }, + "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4073 + }, + "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4074 + }, + "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4075 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4076 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4077 + }, + "Parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4078 + }, + "Exported type alias '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4081 + }, + "Default export of the module has or is using private name '{0}'.": { + "category": "Error", + "code": 4082 + }, + "Type parameter '{0}' of exported type alias has or is using private name '{1}'.": { + "category": "Error", + "code": 4083 + }, + "Exported type alias '{0}' has or is using private name '{1}' from module {2}.": { + "category": "Error", + "code": 4084 + }, + "Extends clause for inferred type '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4085 + }, + "Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4091 + }, + "Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4092 + }, + "Property '{0}' of exported anonymous class type may not be private or protected.": { + "category": "Error", + "code": 4094 + }, + "Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4095 + }, + "Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4096 + }, + "Public static method '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4097 + }, + "Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4098 + }, + "Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4099 + }, + "Public method '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4100 + }, + "Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4101 + }, + "Method '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4102 + }, + "Type parameter '{0}' of exported mapped object type is using private name '{1}'.": { + "category": "Error", + "code": 4103 + }, + "The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.": { + "category": "Error", + "code": 4104 + }, + "Private or protected member '{0}' cannot be accessed on a type parameter.": { + "category": "Error", + "code": 4105 + }, + "Parameter '{0}' of accessor has or is using private name '{1}'.": { + "category": "Error", + "code": 4106 + }, + "Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4107 + }, + "Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.": { + "category": "Error", + "code": 4108 + }, + "Type arguments for '{0}' circularly reference themselves.": { + "category": "Error", + "code": 4109 + }, + "Tuple type arguments circularly reference themselves.": { + "category": "Error", + "code": 4110 + }, + "Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].": { + "category": "Error", + "code": 4111 + }, + "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.": { + "category": "Error", + "code": 4112 + }, + "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.": { + "category": "Error", + "code": 4113 + }, + "This member must have an 'override' modifier because it overrides a member in the base class '{0}'.": { + "category": "Error", + "code": 4114 + }, + "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.": { + "category": "Error", + "code": 4115 + }, + "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.": { + "category": "Error", + "code": 4116 + }, + "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 4117 + }, + "The type of this node cannot be serialized because its property '{0}' cannot be serialized.": { + "category": "Error", + "code": 4118 + }, + "This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.": { + "category": "Error", + "code": 4119 + }, + "This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.": { + "category": "Error", + "code": 4120 + }, + "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.": { + "category": "Error", + "code": 4121 + }, + "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.": { + "category": "Error", + "code": 4122 + }, + "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 4123 + }, + "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.": { + "category": "Error", + "code": 4124 + }, + "Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.": { + "category": "Error", + "code": 4125 + }, + "One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.": { + "category": "Error", + "code": 4126 + }, + "This member cannot have an 'override' modifier because its name is dynamic.": { + "category": "Error", + "code": 4127 + }, + "This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic.": { + "category": "Error", + "code": 4128 + }, + "The current host does not support the '{0}' option.": { + "category": "Error", + "code": 5001 + }, + "Cannot find the common subdirectory path for the input files.": { + "category": "Error", + "code": 5009 + }, + "File specification cannot end in a recursive directory wildcard ('**'): '{0}'.": { + "category": "Error", + "code": 5010 + }, + "The common source directory of '{0}' is '{1}'. The 'rootDir' setting must be explicitly set to this or another path to adjust your output's file layout.": { + "category": "Error", + "code": 5011 + }, + "Cannot read file '{0}': {1}.": { + "category": "Error", + "code": 5012 + }, + "Unknown compiler option '{0}'.": { + "category": "Error", + "code": 5023 + }, + "Compiler option '{0}' requires a value of type {1}.": { + "category": "Error", + "code": 5024 + }, + "Unknown compiler option '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 5025 + }, + "Could not write file '{0}': {1}.": { + "category": "Error", + "code": 5033 + }, + "Option 'project' cannot be mixed with source files on a command line.": { + "category": "Error", + "code": 5042 + }, + "Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.": { + "category": "Error", + "code": 5047 + }, + "Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.": { + "category": "Error", + "code": 5051 + }, + "Option '{0}' cannot be specified without specifying option '{1}'.": { + "category": "Error", + "code": 5052 + }, + "Option '{0}' cannot be specified with option '{1}'.": { + "category": "Error", + "code": 5053 + }, + "A 'tsconfig.json' file is already defined at: '{0}'.": { + "category": "Error", + "code": 5054 + }, + "Cannot write file '{0}' because it would overwrite input file.": { + "category": "Error", + "code": 5055 + }, + "Cannot write file '{0}' because it would be overwritten by multiple input files.": { + "category": "Error", + "code": 5056 + }, + "Cannot find a tsconfig.json file at the specified directory: '{0}'.": { + "category": "Error", + "code": 5057 + }, + "The specified path does not exist: '{0}'.": { + "category": "Error", + "code": 5058 + }, + "Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.": { + "category": "Error", + "code": 5059 + }, + "Pattern '{0}' can have at most one '*' character.": { + "category": "Error", + "code": 5061 + }, + "Substitution '{0}' in pattern '{1}' can have at most one '*' character.": { + "category": "Error", + "code": 5062 + }, + "Substitutions for pattern '{0}' should be an array.": { + "category": "Error", + "code": 5063 + }, + "Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.": { + "category": "Error", + "code": 5064 + }, + "File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.": { + "category": "Error", + "code": 5065 + }, + "Substitutions for pattern '{0}' shouldn't be an empty array.": { + "category": "Error", + "code": 5066 + }, + "Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.": { + "category": "Error", + "code": 5067 + }, + "Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.": { + "category": "Error", + "code": 5068 + }, + "Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.": { + "category": "Error", + "code": 5069 + }, + "Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.": { + "category": "Error", + "code": 5070 + }, + "Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.": { + "category": "Error", + "code": 5071 + }, + "Unknown build option '{0}'.": { + "category": "Error", + "code": 5072 + }, + "Build option '{0}' requires a value of type {1}.": { + "category": "Error", + "code": 5073 + }, + "Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.": { + "category": "Error", + "code": 5074 + }, + "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.": { + "category": "Error", + "code": 5075 + }, + "'{0}' and '{1}' operations cannot be mixed without parentheses.": { + "category": "Error", + "code": 5076 + }, + "Unknown build option '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 5077 + }, + "Unknown watch option '{0}'.": { + "category": "Error", + "code": 5078 + }, + "Unknown watch option '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 5079 + }, + "Watch option '{0}' requires a value of type {1}.": { + "category": "Error", + "code": 5080 + }, + "Cannot find a tsconfig.json file at the current directory: {0}.": { + "category": "Error", + "code": 5081 + }, + "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.": { + "category": "Error", + "code": 5082 + }, + "Cannot read file '{0}'.": { + "category": "Error", + "code": 5083 + }, + "A tuple member cannot be both optional and rest.": { + "category": "Error", + "code": 5085 + }, + "A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.": { + "category": "Error", + "code": 5086 + }, + "A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.": { + "category": "Error", + "code": 5087 + }, + "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.": { + "category": "Error", + "code": 5088 + }, + "Option '{0}' cannot be specified when option 'jsx' is '{1}'.": { + "category": "Error", + "code": 5089 + }, + "Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?": { + "category": "Error", + "code": 5090 + }, + "Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.": { + "category": "Error", + "code": 5091 + }, + "The root value of a '{0}' file must be an object.": { + "category": "Error", + "code": 5092 + }, + "Compiler option '--{0}' may only be used with '--build'.": { + "category": "Error", + "code": 5093 + }, + "Compiler option '--{0}' may not be used with '--build'.": { + "category": "Error", + "code": 5094 + }, + "Option '{0}' can only be used when 'module' is set to 'preserve', 'commonjs', or 'es2015' or later.": { + "category": "Error", + "code": 5095 + }, + "Option 'allowImportingTsExtensions' can only be used when one of 'noEmit', 'emitDeclarationOnly', or 'rewriteRelativeImportExtensions' is set.": { + "category": "Error", + "code": 5096 + }, + "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.": { + "category": "Error", + "code": 5097 + }, + "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.": { + "category": "Error", + "code": 5098 + }, + "Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.": { + "category": "Error", + "code": 5101 + }, + "Option '{0}' has been removed. Please remove it from your configuration.": { + "category": "Error", + "code": 5102 + }, + "Invalid value for '--ignoreDeprecations'.": { + "category": "Error", + "code": 5103 + }, + "Option '{0}' is redundant and cannot be specified with option '{1}'.": { + "category": "Error", + "code": 5104 + }, + "Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.": { + "category": "Error", + "code": 5105 + }, + "Use '{0}' instead.": { + "category": "Message", + "code": 5106 + }, + "Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.": { + "category": "Error", + "code": 5107 + }, + "Option '{0}={1}' has been removed. Please remove it from your configuration.": { + "category": "Error", + "code": 5108 + }, + "Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.": { + "category": "Error", + "code": 5109 + }, + "Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.": { + "category": "Error", + "code": 5110 + }, + "Visit https://aka.ms/ts6 for migration information.": { + "category": "Message", + "code": 5111 + }, + "tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error.": { + "category": "Error", + "code": 5112 + }, + "Generates a sourcemap for each corresponding '.d.ts' file.": { + "category": "Message", + "code": 6000 + }, + "Concatenate and emit output to single file.": { + "category": "Message", + "code": 6001 + }, + "Generates corresponding '.d.ts' file.": { + "category": "Message", + "code": 6002 + }, + "Specify the location where debugger should locate TypeScript files instead of source locations.": { + "category": "Message", + "code": 6004 + }, + "Watch input files.": { + "category": "Message", + "code": 6005 + }, + "Redirect output structure to the directory.": { + "category": "Message", + "code": 6006 + }, + "Do not erase const enum declarations in generated code.": { + "category": "Message", + "code": 6007 + }, + "Do not emit outputs if any errors were reported.": { + "category": "Message", + "code": 6008 + }, + "Do not emit comments to output.": { + "category": "Message", + "code": 6009 + }, + "Do not emit outputs.": { + "category": "Message", + "code": 6010 + }, + "Allow default imports from modules with no default export. This does not affect code emit, just typechecking.": { + "category": "Message", + "code": 6011 + }, + "Skip type checking of declaration files.": { + "category": "Message", + "code": 6012 + }, + "Do not resolve the real path of symlinks.": { + "category": "Message", + "code": 6013 + }, + "Only emit '.d.ts' declaration files.": { + "category": "Message", + "code": 6014 + }, + "Specify ECMAScript target version.": { + "category": "Message", + "code": 6015 + }, + "Specify module code generation.": { + "category": "Message", + "code": 6016 + }, + "Print this message.": { + "category": "Message", + "code": 6017 + }, + "Print the compiler's version.": { + "category": "Message", + "code": 6019 + }, + "Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.": { + "category": "Message", + "code": 6020 + }, + "Syntax: {0}": { + "category": "Message", + "code": 6023 + }, + "options": { + "category": "Message", + "code": 6024 + }, + "file": { + "category": "Message", + "code": 6025 + }, + "Examples: {0}": { + "category": "Message", + "code": 6026 + }, + "Options:": { + "category": "Message", + "code": 6027 + }, + "Version {0}": { + "category": "Message", + "code": 6029 + }, + "Insert command line options and files from a file.": { + "category": "Message", + "code": 6030 + }, + "Starting compilation in watch mode...": { + "category": "Message", + "code": 6031 + }, + "File change detected. Starting incremental compilation...": { + "category": "Message", + "code": 6032 + }, + "KIND": { + "category": "Message", + "code": 6034 + }, + "FILE": { + "category": "Message", + "code": 6035 + }, + "VERSION": { + "category": "Message", + "code": 6036 + }, + "LOCATION": { + "category": "Message", + "code": 6037 + }, + "DIRECTORY": { + "category": "Message", + "code": 6038 + }, + "STRATEGY": { + "category": "Message", + "code": 6039 + }, + "FILE OR DIRECTORY": { + "category": "Message", + "code": 6040 + }, + "Errors Files": { + "category": "Message", + "code": 6041 + }, + "Generates corresponding '.map' file.": { + "category": "Message", + "code": 6043 + }, + "Compiler option '{0}' expects an argument.": { + "category": "Error", + "code": 6044 + }, + "Unterminated quoted string in response file '{0}'.": { + "category": "Error", + "code": 6045 + }, + "Argument for '{0}' option must be: {1}.": { + "category": "Error", + "code": 6046 + }, + "Locale must be of the form or -. For example '{0}' or '{1}'.": { + "category": "Error", + "code": 6048 + }, + "Unable to open file '{0}'.": { + "category": "Error", + "code": 6050 + }, + "Corrupted locale file {0}.": { + "category": "Error", + "code": 6051 + }, + "Raise error on expressions and declarations with an implied 'any' type.": { + "category": "Message", + "code": 6052 + }, + "File '{0}' not found.": { + "category": "Error", + "code": 6053 + }, + "File '{0}' has an unsupported extension. The only supported extensions are {1}.": { + "category": "Error", + "code": 6054 + }, + "Suppress noImplicitAny errors for indexing objects lacking index signatures.": { + "category": "Message", + "code": 6055 + }, + "Do not emit declarations for code that has an '@internal' annotation.": { + "category": "Message", + "code": 6056 + }, + "Specify the root directory of input files. Use to control the output directory structure with --outDir.": { + "category": "Message", + "code": 6058 + }, + "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.": { + "category": "Error", + "code": 6059 + }, + "Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).": { + "category": "Message", + "code": 6060 + }, + "NEWLINE": { + "category": "Message", + "code": 6061 + }, + "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.": { + "category": "Error", + "code": 6064 + }, + "Enables experimental support for ES7 decorators.": { + "category": "Message", + "code": 6065 + }, + "Enables experimental support for emitting type metadata for decorators.": { + "category": "Message", + "code": 6066 + }, + "Initializes a TypeScript project and creates a tsconfig.json file.": { + "category": "Message", + "code": 6070 + }, + "Successfully created a tsconfig.json file.": { + "category": "Message", + "code": 6071 + }, + "Suppress excess property checks for object literals.": { + "category": "Message", + "code": 6072 + }, + "Stylize errors and messages using color and context (experimental).": { + "category": "Message", + "code": 6073 + }, + "Do not report errors on unused labels.": { + "category": "Message", + "code": 6074 + }, + "Report error when not all code paths in function return a value.": { + "category": "Message", + "code": 6075 + }, + "Report errors for fallthrough cases in switch statement.": { + "category": "Message", + "code": 6076 + }, + "Do not report errors on unreachable code.": { + "category": "Message", + "code": 6077 + }, + "Disallow inconsistently-cased references to the same file.": { + "category": "Message", + "code": 6078 + }, + "Specify library files to be included in the compilation.": { + "category": "Message", + "code": 6079 + }, + "Specify JSX code generation.": { + "category": "Message", + "code": 6080 + }, + "Only 'amd' and 'system' modules are supported alongside --{0}.": { + "category": "Error", + "code": 6082 + }, + "Base directory to resolve non-absolute module names.": { + "category": "Message", + "code": 6083 + }, + "[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit": { + "category": "Message", + "code": 6084 + }, + "Enable tracing of the name resolution process.": { + "category": "Message", + "code": 6085 + }, + "======== Resolving module '{0}' from '{1}'. ========": { + "category": "Message", + "code": 6086 + }, + "Explicitly specified module resolution kind: '{0}'.": { + "category": "Message", + "code": 6087 + }, + "Module resolution kind is not specified, using '{0}'.": { + "category": "Message", + "code": 6088 + }, + "======== Module name '{0}' was successfully resolved to '{1}'. ========": { + "category": "Message", + "code": 6089 + }, + "======== Module name '{0}' was not resolved. ========": { + "category": "Message", + "code": 6090 + }, + "'paths' option is specified, looking for a pattern to match module name '{0}'.": { + "category": "Message", + "code": 6091 + }, + "Module name '{0}', matched pattern '{1}'.": { + "category": "Message", + "code": 6092 + }, + "Trying substitution '{0}', candidate module location: '{1}'.": { + "category": "Message", + "code": 6093 + }, + "Resolving module name '{0}' relative to base url '{1}' - '{2}'.": { + "category": "Message", + "code": 6094 + }, + "Loading module as file / folder, candidate module location '{0}', target file types: {1}.": { + "category": "Message", + "code": 6095 + }, + "File '{0}' does not exist.": { + "category": "Message", + "code": 6096 + }, + "File '{0}' exists - use it as a name resolution result.": { + "category": "Message", + "code": 6097 + }, + "Loading module '{0}' from 'node_modules' folder, target file types: {1}.": { + "category": "Message", + "code": 6098 + }, + "Found 'package.json' at '{0}'.": { + "category": "Message", + "code": 6099 + }, + "'package.json' does not have a '{0}' field.": { + "category": "Message", + "code": 6100 + }, + "'package.json' has '{0}' field '{1}' that references '{2}'.": { + "category": "Message", + "code": 6101 + }, + "Allow javascript files to be compiled.": { + "category": "Message", + "code": 6102 + }, + "Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.": { + "category": "Message", + "code": 6104 + }, + "Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.": { + "category": "Message", + "code": 6105 + }, + "'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.": { + "category": "Message", + "code": 6106 + }, + "'rootDirs' option is set, using it to resolve relative module name '{0}'.": { + "category": "Message", + "code": 6107 + }, + "Longest matching prefix for '{0}' is '{1}'.": { + "category": "Message", + "code": 6108 + }, + "Loading '{0}' from the root dir '{1}', candidate location '{2}'.": { + "category": "Message", + "code": 6109 + }, + "Trying other entries in 'rootDirs'.": { + "category": "Message", + "code": 6110 + }, + "Module resolution using 'rootDirs' has failed.": { + "category": "Message", + "code": 6111 + }, + "Do not emit 'use strict' directives in module output.": { + "category": "Message", + "code": 6112 + }, + "Enable strict null checks.": { + "category": "Message", + "code": 6113 + }, + "Unknown option 'excludes'. Did you mean 'exclude'?": { + "category": "Error", + "code": 6114 + }, + "Raise error on 'this' expressions with an implied 'any' type.": { + "category": "Message", + "code": 6115 + }, + "======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========": { + "category": "Message", + "code": 6116 + }, + "======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========": { + "category": "Message", + "code": 6119 + }, + "======== Type reference directive '{0}' was not resolved. ========": { + "category": "Message", + "code": 6120 + }, + "Resolving with primary search path '{0}'.": { + "category": "Message", + "code": 6121 + }, + "Root directory cannot be determined, skipping primary search paths.": { + "category": "Message", + "code": 6122 + }, + "======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========": { + "category": "Message", + "code": 6123 + }, + "Type declaration files to be included in compilation.": { + "category": "Message", + "code": 6124 + }, + "Looking up in 'node_modules' folder, initial location '{0}'.": { + "category": "Message", + "code": 6125 + }, + "Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.": { + "category": "Message", + "code": 6126 + }, + "======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========": { + "category": "Message", + "code": 6127 + }, + "======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========": { + "category": "Message", + "code": 6128 + }, + "Resolving real path for '{0}', result '{1}'.": { + "category": "Message", + "code": 6130 + }, + "Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.": { + "category": "Error", + "code": 6131 + }, + "File name '{0}' has a '{1}' extension - stripping it.": { + "category": "Message", + "code": 6132 + }, + "'{0}' is declared but its value is never read.": { + "category": "Error", + "code": 6133 + }, + "Report errors on unused locals.": { + "category": "Message", + "code": 6134 + }, + "Report errors on unused parameters.": { + "category": "Message", + "code": 6135 + }, + "The maximum dependency depth to search under node_modules and load JavaScript files.": { + "category": "Message", + "code": 6136 + }, + "Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.": { + "category": "Error", + "code": 6137 + }, + "Property '{0}' is declared but its value is never read.": { + "category": "Error", + "code": 6138 + }, + "Import emit helpers from 'tslib'.": { + "category": "Message", + "code": 6139 + }, + "Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.": { + "category": "Error", + "code": 6140 + }, + "Parse in strict mode and emit \"use strict\" for each source file.": { + "category": "Message", + "code": 6141 + }, + "Module '{0}' was resolved to '{1}', but '--jsx' is not set.": { + "category": "Error", + "code": 6142 + }, + "Module '{0}' was resolved as locally declared ambient module in file '{1}'.": { + "category": "Message", + "code": 6144 + }, + "Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.": { + "category": "Message", + "code": 6146 + }, + "Resolution for module '{0}' was found in cache from location '{1}'.": { + "category": "Message", + "code": 6147 + }, + "Directory '{0}' does not exist, skipping all lookups in it.": { + "category": "Message", + "code": 6148 + }, + "Show diagnostic information.": { + "category": "Message", + "code": 6149 + }, + "Show verbose diagnostic information.": { + "category": "Message", + "code": 6150 + }, + "Emit a single file with source maps instead of having a separate file.": { + "category": "Message", + "code": 6151 + }, + "Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.": { + "category": "Message", + "code": 6152 + }, + "Transpile each file as a separate module (similar to 'ts.transpileModule').": { + "category": "Message", + "code": 6153 + }, + "Print names of generated files part of the compilation.": { + "category": "Message", + "code": 6154 + }, + "Print names of files part of the compilation.": { + "category": "Message", + "code": 6155 + }, + "The locale used when displaying messages to the user (e.g. 'en-us')": { + "category": "Message", + "code": 6156 + }, + "Do not generate custom helper functions like '__extends' in compiled output.": { + "category": "Message", + "code": 6157 + }, + "Do not include the default library file (lib.d.ts).": { + "category": "Message", + "code": 6158 + }, + "Do not add triple-slash references or imported modules to the list of compiled files.": { + "category": "Message", + "code": 6159 + }, + "[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.": { + "category": "Message", + "code": 6160 + }, + "List of folders to include type definitions from.": { + "category": "Message", + "code": 6161 + }, + "Disable size limitations on JavaScript projects.": { + "category": "Message", + "code": 6162 + }, + "The character set of the input files.": { + "category": "Message", + "code": 6163 + }, + "Skipping module '{0}' that looks like an absolute URI, target file types: {1}.": { + "category": "Message", + "code": 6164 + }, + "Do not truncate error messages.": { + "category": "Message", + "code": 6165 + }, + "Output directory for generated declaration files.": { + "category": "Message", + "code": 6166 + }, + "A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.": { + "category": "Message", + "code": 6167 + }, + "List of root folders whose combined content represents the structure of the project at runtime.": { + "category": "Message", + "code": 6168 + }, + "Show all compiler options.": { + "category": "Message", + "code": 6169 + }, + "[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file": { + "category": "Message", + "code": 6170 + }, + "Command-line Options": { + "category": "Message", + "code": 6171 + }, + "Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.": { + "category": "Message", + "code": 6179 + }, + "Enable all strict type-checking options.": { + "category": "Message", + "code": 6180 + }, + "Scoped package detected, looking in '{0}'": { + "category": "Message", + "code": 6182 + }, + "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.": { + "category": "Message", + "code": 6183 + }, + "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.": { + "category": "Message", + "code": 6184 + }, + "Enable strict checking of function types.": { + "category": "Message", + "code": 6186 + }, + "Enable strict checking of property initialization in classes.": { + "category": "Message", + "code": 6187 + }, + "Numeric separators are not allowed here.": { + "category": "Error", + "code": 6188 + }, + "Multiple consecutive numeric separators are not permitted.": { + "category": "Error", + "code": 6189 + }, + "Whether to keep outdated console output in watch mode instead of clearing the screen.": { + "category": "Message", + "code": 6191 + }, + "All imports in import declaration are unused.": { + "category": "Error", + "code": 6192 + }, + "Found 1 error. Watching for file changes.": { + "category": "Message", + "code": 6193 + }, + "Found {0} errors. Watching for file changes.": { + "category": "Message", + "code": 6194 + }, + "Resolve 'keyof' to string valued property names only (no numbers or symbols).": { + "category": "Message", + "code": 6195 + }, + "'{0}' is declared but never used.": { + "category": "Error", + "code": 6196 + }, + "Include modules imported with '.json' extension": { + "category": "Message", + "code": 6197 + }, + "All destructured elements are unused.": { + "category": "Error", + "code": 6198 + }, + "All variables are unused.": { + "category": "Error", + "code": 6199 + }, + "Definitions of the following identifiers conflict with those in another file: {0}": { + "category": "Error", + "code": 6200 + }, + "Conflicts are in this file.": { + "category": "Message", + "code": 6201 + }, + "Project references may not form a circular graph. Cycle detected: {0}": { + "category": "Error", + "code": 6202 + }, + "'{0}' was also declared here.": { + "category": "Message", + "code": 6203 + }, + "and here.": { + "category": "Message", + "code": 6204 + }, + "All type parameters are unused.": { + "category": "Error", + "code": 6205 + }, + "'package.json' has a 'typesVersions' field with version-specific path mappings.": { + "category": "Message", + "code": 6206 + }, + "'package.json' does not have a 'typesVersions' entry that matches version '{0}'.": { + "category": "Message", + "code": 6207 + }, + "'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.": { + "category": "Message", + "code": 6208 + }, + "'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.": { + "category": "Message", + "code": 6209 + }, + "An argument for '{0}' was not provided.": { + "category": "Message", + "code": 6210 + }, + "An argument matching this binding pattern was not provided.": { + "category": "Message", + "code": 6211 + }, + "Did you mean to call this expression?": { + "category": "Message", + "code": 6212 + }, + "Did you mean to use 'new' with this expression?": { + "category": "Message", + "code": 6213 + }, + "Enable strict 'bind', 'call', and 'apply' methods on functions.": { + "category": "Message", + "code": 6214 + }, + "Using compiler options of project reference redirect '{0}'.": { + "category": "Message", + "code": 6215 + }, + "Found 1 error.": { + "category": "Message", + "code": 6216 + }, + "Found {0} errors.": { + "category": "Message", + "code": 6217 + }, + "======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========": { + "category": "Message", + "code": 6218 + }, + "======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========": { + "category": "Message", + "code": 6219 + }, + "'package.json' had a falsy '{0}' field.": { + "category": "Message", + "code": 6220 + }, + "Disable use of source files instead of declaration files from referenced projects.": { + "category": "Message", + "code": 6221 + }, + "Emit class fields with Define instead of Set.": { + "category": "Message", + "code": 6222 + }, + "Generates a CPU profile.": { + "category": "Message", + "code": 6223 + }, + "Disable solution searching for this project.": { + "category": "Message", + "code": 6224 + }, + "Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.": { + "category": "Message", + "code": 6225 + }, + "Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.": { + "category": "Message", + "code": 6226 + }, + "Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.": { + "category": "Message", + "code": 6227 + }, + "Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.": { + "category": "Error", + "code": 6229 + }, + "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.": { + "category": "Error", + "code": 6230 + }, + "Could not resolve the path '{0}' with the extensions: {1}.": { + "category": "Error", + "code": 6231 + }, + "Declaration augments declaration in another file. This cannot be serialized.": { + "category": "Error", + "code": 6232 + }, + "This is the declaration being augmented. Consider moving the augmenting declaration into the same file.": { + "category": "Error", + "code": 6233 + }, + "This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?": { + "category": "Error", + "code": 6234 + }, + "Disable loading referenced projects.": { + "category": "Message", + "code": 6235 + }, + "Arguments for the rest parameter '{0}' were not provided.": { + "category": "Error", + "code": 6236 + }, + "Generates an event trace and a list of types.": { + "category": "Message", + "code": 6237 + }, + "Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react": { + "category": "Error", + "code": 6238 + }, + "File '{0}' exists according to earlier cached lookups.": { + "category": "Message", + "code": 6239 + }, + "File '{0}' does not exist according to earlier cached lookups.": { + "category": "Message", + "code": 6240 + }, + "Resolution for type reference directive '{0}' was found in cache from location '{1}'.": { + "category": "Message", + "code": 6241 + }, + "======== Resolving type reference directive '{0}', containing file '{1}'. ========": { + "category": "Message", + "code": 6242 + }, + "Interpret optional property types as written, rather than adding 'undefined'.": { + "category": "Message", + "code": 6243 + }, + "Modules": { + "category": "Message", + "code": 6244 + }, + "File Management": { + "category": "Message", + "code": 6245 + }, + "Emit": { + "category": "Message", + "code": 6246 + }, + "JavaScript Support": { + "category": "Message", + "code": 6247 + }, + "Type Checking": { + "category": "Message", + "code": 6248 + }, + "Editor Support": { + "category": "Message", + "code": 6249 + }, + "Watch and Build Modes": { + "category": "Message", + "code": 6250 + }, + "Compiler Diagnostics": { + "category": "Message", + "code": 6251 + }, + "Interop Constraints": { + "category": "Message", + "code": 6252 + }, + "Backwards Compatibility": { + "category": "Message", + "code": 6253 + }, + "Language and Environment": { + "category": "Message", + "code": 6254 + }, + "Projects": { + "category": "Message", + "code": 6255 + }, + "Output Formatting": { + "category": "Message", + "code": 6256 + }, + "Completeness": { + "category": "Message", + "code": 6257 + }, + "'{0}' should be set inside the 'compilerOptions' object of the config json file": { + "category": "Error", + "code": 6258 + }, + "Found 1 error in {0}": { + "category": "Message", + "code": 6259 + }, + "Found {0} errors in the same file, starting at: {1}": { + "category": "Message", + "code": 6260 + }, + "Found {0} errors in {1} files.": { + "category": "Message", + "code": 6261 + }, + "File name '{0}' has a '{1}' extension - looking up '{2}' instead.": { + "category": "Message", + "code": 6262 + }, + "Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.": { + "category": "Error", + "code": 6263 + }, + "Enable importing files with any extension, provided a declaration file is present.": { + "category": "Message", + "code": 6264 + }, + "Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.": { + "category": "Message", + "code": 6265 + }, + "Option '{0}' can only be specified on command line.": { + "category": "Error", + "code": 6266 + }, + "Directory '{0}' has no containing package.json scope. Imports will not resolve.": { + "category": "Message", + "code": 6270 + }, + "Import specifier '{0}' does not exist in package.json scope at path '{1}'.": { + "category": "Message", + "code": 6271 + }, + "Invalid import specifier '{0}' has no possible resolutions.": { + "category": "Message", + "code": 6272 + }, + "package.json scope '{0}' has no imports defined.": { + "category": "Message", + "code": 6273 + }, + "package.json scope '{0}' explicitly maps specifier '{1}' to null.": { + "category": "Message", + "code": 6274 + }, + "package.json scope '{0}' has invalid type for target of specifier '{1}'": { + "category": "Message", + "code": 6275 + }, + "Export specifier '{0}' does not exist in package.json scope at path '{1}'.": { + "category": "Message", + "code": 6276 + }, + "Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.": { + "category": "Message", + "code": 6277 + }, + "There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.": { + "category": "Message", + "code": 6278 + }, + "Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.": { + "category": "Message", + "code": 6279 + }, + "There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.": { + "category": "Message", + "code": 6280 + }, + "'package.json' has a 'peerDependencies' field.": { + "category": "Message", + "code": 6281 + }, + "Found peerDependency '{0}' with '{1}' version.": { + "category": "Message", + "code": 6282 + }, + "Failed to find peerDependency '{0}'.": { + "category": "Message", + "code": 6283 + }, + "File Layout": { + "category": "Message", + "code": 6284 + }, + "Environment Settings": { + "category": "Message", + "code": 6285 + }, + "See also https://aka.ms/tsconfig/module": { + "category": "Message", + "code": 6286 + }, + "For nodejs:": { + "category": "Message", + "code": 6287 + }, + "and npm install -D @types/node": { + "category": "Message", + "code": 6290 + }, + "Other Outputs": { + "category": "Message", + "code": 6291 + }, + "Stricter Typechecking Options": { + "category": "Message", + "code": 6292 + }, + "Style Options": { + "category": "Message", + "code": 6293 + }, + "Recommended Options": { + "category": "Message", + "code": 6294 + }, + "Enable project compilation": { + "category": "Message", + "code": 6302 + }, + "Composite projects may not disable declaration emit.": { + "category": "Error", + "code": 6304 + }, + "Output file '{0}' has not been built from source file '{1}'.": { + "category": "Error", + "code": 6305 + }, + "Referenced project '{0}' must have setting \"composite\": true.": { + "category": "Error", + "code": 6306 + }, + "File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.": { + "category": "Error", + "code": 6307 + }, + "Referenced project '{0}' may not disable emit.": { + "category": "Error", + "code": 6310 + }, + "Project '{0}' is out of date because output '{1}' is older than input '{2}'": { + "category": "Message", + "code": 6350 + }, + "Project '{0}' is up to date because newest input '{1}' is older than output '{2}'": { + "category": "Message", + "code": 6351 + }, + "Project '{0}' is out of date because output file '{1}' does not exist": { + "category": "Message", + "code": 6352 + }, + "Project '{0}' is out of date because its dependency '{1}' is out of date": { + "category": "Message", + "code": 6353 + }, + "Project '{0}' is up to date with .d.ts files from its dependencies": { + "category": "Message", + "code": 6354 + }, + "Projects in this build: {0}": { + "category": "Message", + "code": 6355 + }, + "A non-dry build would delete the following files: {0}": { + "category": "Message", + "code": 6356 + }, + "A non-dry build would build project '{0}'": { + "category": "Message", + "code": 6357 + }, + "Building project '{0}'...": { + "category": "Message", + "code": 6358 + }, + "Updating output timestamps of project '{0}'...": { + "category": "Message", + "code": 6359 + }, + "Project '{0}' is up to date": { + "category": "Message", + "code": 6361 + }, + "Skipping build of project '{0}' because its dependency '{1}' has errors": { + "category": "Message", + "code": 6362 + }, + "Project '{0}' can't be built because its dependency '{1}' has errors": { + "category": "Message", + "code": 6363 + }, + "Build one or more projects and their dependencies, if out of date": { + "category": "Message", + "code": 6364 + }, + "Delete the outputs of all projects.": { + "category": "Message", + "code": 6365 + }, + "Show what would be built (or deleted, if specified with '--clean')": { + "category": "Message", + "code": 6367 + }, + "Option '--build' must be the first command line argument.": { + "category": "Error", + "code": 6369 + }, + "Options '{0}' and '{1}' cannot be combined.": { + "category": "Error", + "code": 6370 + }, + "Updating unchanged output timestamps of project '{0}'...": { + "category": "Message", + "code": 6371 + }, + "A non-dry build would update timestamps for output of project '{0}'": { + "category": "Message", + "code": 6374 + }, + "Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'": { + "category": "Error", + "code": 6377 + }, + "Composite projects may not disable incremental compilation.": { + "category": "Error", + "code": 6379 + }, + "Specify file to store incremental compilation information": { + "category": "Message", + "code": 6380 + }, + "Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'": { + "category": "Message", + "code": 6381 + }, + "Skipping build of project '{0}' because its dependency '{1}' was not built": { + "category": "Message", + "code": 6382 + }, + "Project '{0}' can't be built because its dependency '{1}' was not built": { + "category": "Message", + "code": 6383 + }, + "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.": { + "category": "Message", + "code": 6384 + }, + "'{0}' is deprecated.": { + "category": "Suggestion", + "code": 6385 + }, + "Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.": { + "category": "Message", + "code": 6386 + }, + "The signature '{0}' of '{1}' is deprecated.": { + "category": "Suggestion", + "code": 6387 + }, + "Project '{0}' is being forcibly rebuilt": { + "category": "Message", + "code": 6388 + }, + "Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.": { + "category": "Message", + "code": 6389 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.": { + "category": "Message", + "code": 6390 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.": { + "category": "Message", + "code": 6391 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.": { + "category": "Message", + "code": 6392 + }, + "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.": { + "category": "Message", + "code": 6393 + }, + "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.": { + "category": "Message", + "code": 6394 + }, + "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.": { + "category": "Message", + "code": 6395 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.": { + "category": "Message", + "code": 6396 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.": { + "category": "Message", + "code": 6397 + }, + "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.": { + "category": "Message", + "code": 6398 + }, + "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted": { + "category": "Message", + "code": 6399 + }, + "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files": { + "category": "Message", + "code": 6400 + }, + "Project '{0}' is out of date because there was error reading file '{1}'": { + "category": "Message", + "code": 6401 + }, + "Resolving in {0} mode with conditions {1}.": { + "category": "Message", + "code": 6402 + }, + "Matched '{0}' condition '{1}'.": { + "category": "Message", + "code": 6403 + }, + "Using '{0}' subpath '{1}' with target '{2}'.": { + "category": "Message", + "code": 6404 + }, + "Saw non-matching condition '{0}'.": { + "category": "Message", + "code": 6405 + }, + "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions": { + "category": "Message", + "code": 6406 + }, + "Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.": { + "category": "Message", + "code": 6407 + }, + "Use the package.json 'exports' field when resolving package imports.": { + "category": "Message", + "code": 6408 + }, + "Use the package.json 'imports' field when resolving imports.": { + "category": "Message", + "code": 6409 + }, + "Conditions to set in addition to the resolver-specific defaults when resolving imports.": { + "category": "Message", + "code": 6410 + }, + "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.": { + "category": "Message", + "code": 6411 + }, + "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.": { + "category": "Message", + "code": 6412 + }, + "Entering conditional exports.": { + "category": "Message", + "code": 6413 + }, + "Resolved under condition '{0}'.": { + "category": "Message", + "code": 6414 + }, + "Failed to resolve under condition '{0}'.": { + "category": "Message", + "code": 6415 + }, + "Exiting conditional exports.": { + "category": "Message", + "code": 6416 + }, + "Searching all ancestor node_modules directories for preferred extensions: {0}.": { + "category": "Message", + "code": 6417 + }, + "Searching all ancestor node_modules directories for fallback extensions: {0}.": { + "category": "Message", + "code": 6418 + }, + "Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.": { + "category": "Message", + "code": 6419 + }, + "Project '{0}' is out of date because {1}.": { + "category": "Message", + "code": 6420 + }, + "Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.": { + "category": "Message", + "code": 6421 + }, + "The expected type comes from property '{0}' which is declared here on type '{1}'": { + "category": "Message", + "code": 6500 + }, + "The expected type comes from this index signature.": { + "category": "Message", + "code": 6501 + }, + "The expected type comes from the return type of this signature.": { + "category": "Message", + "code": 6502 + }, + "Print names of files that are part of the compilation and then stop processing.": { + "category": "Message", + "code": 6503 + }, + "File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?": { + "category": "Error", + "code": 6504 + }, + "Print names of files and the reason they are part of the compilation.": { + "category": "Message", + "code": 6505 + }, + "Consider adding a 'declare' modifier to this class.": { + "category": "Message", + "code": 6506 + }, + "Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files.": { + "category": "Message", + "code": 6600 + }, + "Allow 'import x from y' when a module doesn't have a default export.": { + "category": "Message", + "code": 6601 + }, + "Allow accessing UMD globals from modules.": { + "category": "Message", + "code": 6602 + }, + "Disable error reporting for unreachable code.": { + "category": "Message", + "code": 6603 + }, + "Disable error reporting for unused labels.": { + "category": "Message", + "code": 6604 + }, + "Ensure 'use strict' is always emitted.": { + "category": "Message", + "code": 6605 + }, + "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.": { + "category": "Message", + "code": 6606 + }, + "Specify the base directory to resolve non-relative module names.": { + "category": "Message", + "code": 6607 + }, + "No longer supported. In early versions, manually set the text encoding for reading files.": { + "category": "Message", + "code": 6608 + }, + "Enable error reporting in type-checked JavaScript files.": { + "category": "Message", + "code": 6609 + }, + "Enable constraints that allow a TypeScript project to be used with project references.": { + "category": "Message", + "code": 6611 + }, + "Generate .d.ts files from TypeScript and JavaScript files in your project.": { + "category": "Message", + "code": 6612 + }, + "Specify the output directory for generated declaration files.": { + "category": "Message", + "code": 6613 + }, + "Create sourcemaps for d.ts files.": { + "category": "Message", + "code": 6614 + }, + "Output compiler performance information after building.": { + "category": "Message", + "code": 6615 + }, + "Disables inference for type acquisition by looking at filenames in a project.": { + "category": "Message", + "code": 6616 + }, + "Reduce the number of projects loaded automatically by TypeScript.": { + "category": "Message", + "code": 6617 + }, + "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.": { + "category": "Message", + "code": 6618 + }, + "Opt a project out of multi-project reference checking when editing.": { + "category": "Message", + "code": 6619 + }, + "Disable preferring source files instead of declaration files when referencing composite projects.": { + "category": "Message", + "code": 6620 + }, + "Emit more compliant, but verbose and less performant JavaScript for iteration.": { + "category": "Message", + "code": 6621 + }, + "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.": { + "category": "Message", + "code": 6622 + }, + "Only output d.ts files and not JavaScript files.": { + "category": "Message", + "code": 6623 + }, + "Emit design-type metadata for decorated declarations in source files.": { + "category": "Message", + "code": 6624 + }, + "Disable the type acquisition for JavaScript projects": { + "category": "Message", + "code": 6625 + }, + "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.": { + "category": "Message", + "code": 6626 + }, + "Filters results from the `include` option.": { + "category": "Message", + "code": 6627 + }, + "Remove a list of directories from the watch process.": { + "category": "Message", + "code": 6628 + }, + "Remove a list of files from the watch mode's processing.": { + "category": "Message", + "code": 6629 + }, + "Enable experimental support for legacy experimental decorators.": { + "category": "Message", + "code": 6630 + }, + "Print files read during the compilation including why it was included.": { + "category": "Message", + "code": 6631 + }, + "Output more detailed compiler performance information after building.": { + "category": "Message", + "code": 6632 + }, + "Specify one or more path or node module references to base configuration files from which settings are inherited.": { + "category": "Message", + "code": 6633 + }, + "Specify what approach the watcher should use if the system runs out of native file watchers.": { + "category": "Message", + "code": 6634 + }, + "Include a list of files. This does not support glob patterns, as opposed to `include`.": { + "category": "Message", + "code": 6635 + }, + "Build all projects, including those that appear to be up to date.": { + "category": "Message", + "code": 6636 + }, + "Ensure that casing is correct in imports.": { + "category": "Message", + "code": 6637 + }, + "Emit a v8 CPU profile of the compiler run for debugging.": { + "category": "Message", + "code": 6638 + }, + "Allow importing helper functions from tslib once per project, instead of including them per-file.": { + "category": "Message", + "code": 6639 + }, + "Skip building downstream projects on error in upstream project.": { + "category": "Message", + "code": 6640 + }, + "Specify a list of glob patterns that match files to be included in compilation.": { + "category": "Message", + "code": 6641 + }, + "Save .tsbuildinfo files to allow for incremental compilation of projects.": { + "category": "Message", + "code": 6642 + }, + "Include sourcemap files inside the emitted JavaScript.": { + "category": "Message", + "code": 6643 + }, + "Include source code in the sourcemaps inside the emitted JavaScript.": { + "category": "Message", + "code": 6644 + }, + "Ensure that each file can be safely transpiled without relying on other imports.": { + "category": "Message", + "code": 6645 + }, + "Specify what JSX code is generated.": { + "category": "Message", + "code": 6646 + }, + "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.": { + "category": "Message", + "code": 6647 + }, + "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.": { + "category": "Message", + "code": 6648 + }, + "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.": { + "category": "Message", + "code": 6649 + }, + "Make keyof only return strings instead of string, numbers or symbols. Legacy option.": { + "category": "Message", + "code": 6650 + }, + "Specify a set of bundled library declaration files that describe the target runtime environment.": { + "category": "Message", + "code": 6651 + }, + "Print the names of emitted files after a compilation.": { + "category": "Message", + "code": 6652 + }, + "Print all of the files read during the compilation.": { + "category": "Message", + "code": 6653 + }, + "Set the language of the messaging from TypeScript. This does not affect emit.": { + "category": "Message", + "code": 6654 + }, + "Specify the location where debugger should locate map files instead of generated locations.": { + "category": "Message", + "code": 6655 + }, + "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.": { + "category": "Message", + "code": 6656 + }, + "Specify what module code is generated.": { + "category": "Message", + "code": 6657 + }, + "Specify how TypeScript looks up a file from a given module specifier.": { + "category": "Message", + "code": 6658 + }, + "Set the newline character for emitting files.": { + "category": "Message", + "code": 6659 + }, + "Disable emitting files from a compilation.": { + "category": "Message", + "code": 6660 + }, + "Disable generating custom helper functions like '__extends' in compiled output.": { + "category": "Message", + "code": 6661 + }, + "Disable emitting files if any type checking errors are reported.": { + "category": "Message", + "code": 6662 + }, + "Disable truncating types in error messages.": { + "category": "Message", + "code": 6663 + }, + "Enable error reporting for fallthrough cases in switch statements.": { + "category": "Message", + "code": 6664 + }, + "Enable error reporting for expressions and declarations with an implied 'any' type.": { + "category": "Message", + "code": 6665 + }, + "Ensure overriding members in derived classes are marked with an override modifier.": { + "category": "Message", + "code": 6666 + }, + "Enable error reporting for codepaths that do not explicitly return in a function.": { + "category": "Message", + "code": 6667 + }, + "Enable error reporting when 'this' is given the type 'any'.": { + "category": "Message", + "code": 6668 + }, + "Disable adding 'use strict' directives in emitted JavaScript files.": { + "category": "Message", + "code": 6669 + }, + "Disable including any library files, including the default lib.d.ts.": { + "category": "Message", + "code": 6670 + }, + "Enforces using indexed accessors for keys declared using an indexed type.": { + "category": "Message", + "code": 6671 + }, + "Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.": { + "category": "Message", + "code": 6672 + }, + "Disable strict checking of generic signatures in function types.": { + "category": "Message", + "code": 6673 + }, + "Add 'undefined' to a type when accessed using an index.": { + "category": "Message", + "code": 6674 + }, + "Enable error reporting when local variables aren't read.": { + "category": "Message", + "code": 6675 + }, + "Raise an error when a function parameter isn't read.": { + "category": "Message", + "code": 6676 + }, + "Deprecated setting. Use 'outFile' instead.": { + "category": "Message", + "code": 6677 + }, + "Specify an output folder for all emitted files.": { + "category": "Message", + "code": 6678 + }, + "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.": { + "category": "Message", + "code": 6679 + }, + "Specify a set of entries that re-map imports to additional lookup locations.": { + "category": "Message", + "code": 6680 + }, + "Specify a list of language service plugins to include.": { + "category": "Message", + "code": 6681 + }, + "Disable erasing 'const enum' declarations in generated code.": { + "category": "Message", + "code": 6682 + }, + "Disable resolving symlinks to their realpath. This correlates to the same flag in node.": { + "category": "Message", + "code": 6683 + }, + "Disable wiping the console in watch mode.": { + "category": "Message", + "code": 6684 + }, + "Enable color and formatting in TypeScript's output to make compiler errors easier to read.": { + "category": "Message", + "code": 6685 + }, + "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.": { + "category": "Message", + "code": 6686 + }, + "Specify an array of objects that specify paths for projects. Used in project references.": { + "category": "Message", + "code": 6687 + }, + "Disable emitting comments.": { + "category": "Message", + "code": 6688 + }, + "Enable importing .json files.": { + "category": "Message", + "code": 6689 + }, + "Specify the root folder within your source files.": { + "category": "Message", + "code": 6690 + }, + "Allow multiple folders to be treated as one when resolving modules.": { + "category": "Message", + "code": 6691 + }, + "Skip type checking .d.ts files that are included with TypeScript.": { + "category": "Message", + "code": 6692 + }, + "Skip type checking all .d.ts files.": { + "category": "Message", + "code": 6693 + }, + "Create source map files for emitted JavaScript files.": { + "category": "Message", + "code": 6694 + }, + "Specify the root path for debuggers to find the reference source code.": { + "category": "Message", + "code": 6695 + }, + "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.": { + "category": "Message", + "code": 6697 + }, + "When assigning functions, check to ensure parameters and the return values are subtype-compatible.": { + "category": "Message", + "code": 6698 + }, + "When type checking, take into account 'null' and 'undefined'.": { + "category": "Message", + "code": 6699 + }, + "Check for class properties that are declared but not set in the constructor.": { + "category": "Message", + "code": 6700 + }, + "Disable emitting declarations that have '@internal' in their JSDoc comments.": { + "category": "Message", + "code": 6701 + }, + "Disable reporting of excess property errors during the creation of object literals.": { + "category": "Message", + "code": 6702 + }, + "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.": { + "category": "Message", + "code": 6703 + }, + "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.": { + "category": "Message", + "code": 6704 + }, + "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.": { + "category": "Message", + "code": 6705 + }, + "Log paths used during the 'moduleResolution' process.": { + "category": "Message", + "code": 6706 + }, + "Specify the path to .tsbuildinfo incremental compilation file.": { + "category": "Message", + "code": 6707 + }, + "Specify options for automatic acquisition of declaration files.": { + "category": "Message", + "code": 6709 + }, + "Specify multiple folders that act like './node_modules/@types'.": { + "category": "Message", + "code": 6710 + }, + "Specify type package names to be included without being referenced in a source file.": { + "category": "Message", + "code": 6711 + }, + "Emit ECMAScript-standard-compliant class fields.": { + "category": "Message", + "code": 6712 + }, + "Enable verbose logging.": { + "category": "Message", + "code": 6713 + }, + "Specify how directories are watched on systems that lack recursive file-watching functionality.": { + "category": "Message", + "code": 6714 + }, + "Specify how the TypeScript watch mode works.": { + "category": "Message", + "code": 6715 + }, + "Require undeclared properties from index signatures to use element accesses.": { + "category": "Message", + "code": 6717 + }, + "Specify emit/checking behavior for imports that are only used for types.": { + "category": "Message", + "code": 6718 + }, + "Require sufficient annotation on exports so other tools can trivially generate declaration files.": { + "category": "Message", + "code": 6719 + }, + "Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.": { + "category": "Message", + "code": 6720 + }, + "Do not allow runtime constructs that are not part of ECMAScript.": { + "category": "Message", + "code": 6721 + }, + "Default catch clause variables as 'unknown' instead of 'any'.": { + "category": "Message", + "code": 6803 + }, + "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.": { + "category": "Message", + "code": 6804 + }, + "Disable full type checking (only critical parse and emit errors will be reported).": { + "category": "Message", + "code": 6805 + }, + "Check side effect imports.": { + "category": "Message", + "code": 6806 + }, + "This operation can be simplified. This shift is identical to `{0} {1} {2}`.": { + "category": "Error", + "code": 6807 + }, + "Enable lib replacement.": { + "category": "Message", + "code": 6808 + }, + "Ensure types are ordered stably and deterministically across compilations.": { + "category": "Message", + "code": 6809 + }, + "one of:": { + "category": "Message", + "code": 6900 + }, + "one or more:": { + "category": "Message", + "code": 6901 + }, + "type:": { + "category": "Message", + "code": 6902 + }, + "default:": { + "category": "Message", + "code": 6903 + }, + "`true`, unless `strict` is `false`": { + "category": "Message", + "code": 6905 + }, + "`false`, unless `composite` is set": { + "category": "Message", + "code": 6906 + }, + "`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.": { + "category": "Message", + "code": 6907 + }, + "`[]` if `files` is specified, otherwise `[\"**/*\"]`": { + "category": "Message", + "code": 6908 + }, + "`true` if `composite`, `false` otherwise": { + "category": "Message", + "code": 6909 + }, + "Computed from the list of input files": { + "category": "Message", + "code": 6911 + }, + "Platform specific": { + "category": "Message", + "code": 6912 + }, + "You can learn about all of the compiler options at {0}": { + "category": "Message", + "code": 6913 + }, + "Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:": { + "category": "Message", + "code": 6914 + }, + "Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}": { + "category": "Message", + "code": 6915 + }, + "COMMON COMMANDS": { + "category": "Message", + "code": 6916 + }, + "ALL COMPILER OPTIONS": { + "category": "Message", + "code": 6917 + }, + "WATCH OPTIONS": { + "category": "Message", + "code": 6918 + }, + "BUILD OPTIONS": { + "category": "Message", + "code": 6919 + }, + "COMMON COMPILER OPTIONS": { + "category": "Message", + "code": 6920 + }, + "COMMAND LINE FLAGS": { + "category": "Message", + "code": 6921 + }, + "tsc: The TypeScript Compiler": { + "category": "Message", + "code": 6922 + }, + "Compiles the current project (tsconfig.json in the working directory.)": { + "category": "Message", + "code": 6923 + }, + "Ignoring tsconfig.json, compiles the specified files with default compiler options.": { + "category": "Message", + "code": 6924 + }, + "Build a composite project in the working directory.": { + "category": "Message", + "code": 6925 + }, + "Creates a tsconfig.json with the recommended settings in the working directory.": { + "category": "Message", + "code": 6926 + }, + "Compiles the TypeScript project located at the specified path.": { + "category": "Message", + "code": 6927 + }, + "An expanded version of this information, showing all possible compiler options": { + "category": "Message", + "code": 6928 + }, + "Compiles the current project, with additional settings.": { + "category": "Message", + "code": 6929 + }, + "`true` for ES2022 and above, including ESNext.": { + "category": "Message", + "code": 6930 + }, + "List of file name suffixes to search when resolving a module.": { + "category": "Error", + "code": 6931 + }, + "`false`, unless `checkJs` is set": { + "category": "Message", + "code": 6932 + }, + "Variable '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7005 + }, + "Parameter '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7006 + }, + "Member '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7008 + }, + "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.": { + "category": "Error", + "code": 7009 + }, + "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.": { + "category": "Error", + "code": 7010 + }, + "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.": { + "category": "Error", + "code": 7011 + }, + "This overload implicitly returns the type '{0}' because it lacks a return type annotation.": { + "category": "Error", + "code": 7012 + }, + "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7013 + }, + "Function type, which lacks return-type annotation, implicitly has an '{0}' return type.": { + "category": "Error", + "code": 7014 + }, + "Element implicitly has an 'any' type because index expression is not of type 'number'.": { + "category": "Error", + "code": 7015 + }, + "Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.": { + "category": "Error", + "code": 7016 + }, + "Element implicitly has an 'any' type because type '{0}' has no index signature.": { + "category": "Error", + "code": 7017 + }, + "Object literal's property '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7018 + }, + "Rest parameter '{0}' implicitly has an 'any[]' type.": { + "category": "Error", + "code": 7019 + }, + "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7020 + }, + "'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.": { + "category": "Error", + "code": 7022 + }, + "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.": { + "category": "Error", + "code": 7023 + }, + "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.": { + "category": "Error", + "code": 7024 + }, + "Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.": { + "category": "Error", + "code": 7025 + }, + "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.": { + "category": "Error", + "code": 7026 + }, + "Unreachable code detected.": { + "category": "Error", + "code": 7027 + }, + "Unused label.": { + "category": "Error", + "code": 7028 + }, + "Fallthrough case in switch.": { + "category": "Error", + "code": 7029 + }, + "Not all code paths return a value.": { + "category": "Error", + "code": 7030 + }, + "Binding element '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7031 + }, + "Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.": { + "category": "Error", + "code": 7032 + }, + "Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.": { + "category": "Error", + "code": 7033 + }, + "Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.": { + "category": "Error", + "code": 7034 + }, + "Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`": { + "category": "Error", + "code": 7035 + }, + "Dynamic import's specifier must be of type 'string', but here has type '{0}'.": { + "category": "Error", + "code": 7036 + }, + "Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.": { + "category": "Message", + "code": 7037 + }, + "Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.": { + "category": "Message", + "code": 7038 + }, + "Mapped object type implicitly has an 'any' template type.": { + "category": "Error", + "code": 7039 + }, + "If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'": { + "category": "Error", + "code": 7040 + }, + "The containing arrow function captures the global value of 'this'.": { + "category": "Error", + "code": 7041 + }, + "Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.": { + "category": "Error", + "code": 7042 + }, + "Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7043 + }, + "Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7044 + }, + "Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7045 + }, + "Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7046 + }, + "Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7047 + }, + "Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.": { + "category": "Suggestion", + "code": 7048 + }, + "Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.": { + "category": "Suggestion", + "code": 7049 + }, + "'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.": { + "category": "Suggestion", + "code": 7050 + }, + "Parameter has a name but no type. Did you mean '{0}: {1}'?": { + "category": "Error", + "code": 7051 + }, + "Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?": { + "category": "Error", + "code": 7052 + }, + "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.": { + "category": "Error", + "code": 7053 + }, + "No index signature with a parameter of type '{0}' was found on type '{1}'.": { + "category": "Error", + "code": 7054 + }, + "'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.": { + "category": "Error", + "code": 7055 + }, + "The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.": { + "category": "Error", + "code": 7056 + }, + "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.": { + "category": "Error", + "code": 7057 + }, + "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`": { + "category": "Error", + "code": 7058 + }, + "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.": { + "category": "Error", + "code": 7059 + }, + "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.": { + "category": "Error", + "code": 7060 + }, + "A mapped type may not declare properties or methods.": { + "category": "Error", + "code": 7061 + }, + "You cannot rename this element.": { + "category": "Error", + "code": 8000 + }, + "You cannot rename elements that are defined in the standard TypeScript library.": { + "category": "Error", + "code": 8001 + }, + "'import ... =' can only be used in TypeScript files.": { + "category": "Error", + "code": 8002 + }, + "'export =' can only be used in TypeScript files.": { + "category": "Error", + "code": 8003 + }, + "Type parameter declarations can only be used in TypeScript files.": { + "category": "Error", + "code": 8004 + }, + "'implements' clauses can only be used in TypeScript files.": { + "category": "Error", + "code": 8005 + }, + "'{0}' declarations can only be used in TypeScript files.": { + "category": "Error", + "code": 8006 + }, + "Type aliases can only be used in TypeScript files.": { + "category": "Error", + "code": 8008 + }, + "The '{0}' modifier can only be used in TypeScript files.": { + "category": "Error", + "code": 8009 + }, + "Type annotations can only be used in TypeScript files.": { + "category": "Error", + "code": 8010 + }, + "Type arguments can only be used in TypeScript files.": { + "category": "Error", + "code": 8011 + }, + "Parameter modifiers can only be used in TypeScript files.": { + "category": "Error", + "code": 8012 + }, + "Non-null assertions can only be used in TypeScript files.": { + "category": "Error", + "code": 8013 + }, + "Type assertion expressions can only be used in TypeScript files.": { + "category": "Error", + "code": 8016 + }, + "Signature declarations can only be used in TypeScript files.": { + "category": "Error", + "code": 8017 + }, + "Report errors in .js files.": { + "category": "Message", + "code": 8019 + }, + "JSDoc types can only be used inside documentation comments.": { + "category": "Error", + "code": 8020 + }, + "JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.": { + "category": "Error", + "code": 8021 + }, + "JSDoc '@{0}' is not attached to a class.": { + "category": "Error", + "code": 8022 + }, + "JSDoc '@{0} {1}' does not match the 'extends {2}' clause.": { + "category": "Error", + "code": 8023 + }, + "JSDoc '@param' tag has name '{0}', but there is no parameter with that name.": { + "category": "Error", + "code": 8024 + }, + "Class declarations cannot have more than one '@augments' or '@extends' tag.": { + "category": "Error", + "code": 8025 + }, + "Expected {0} type arguments; provide these with an '@extends' tag.": { + "category": "Error", + "code": 8026 + }, + "Expected {0}-{1} type arguments; provide these with an '@extends' tag.": { + "category": "Error", + "code": 8027 + }, + "JSDoc '...' may only appear in the last parameter of a signature.": { + "category": "Error", + "code": 8028 + }, + "JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.": { + "category": "Error", + "code": 8029 + }, + "The type of a function declaration must match the function's signature.": { + "category": "Error", + "code": 8030 + }, + "You cannot rename a module via a global import.": { + "category": "Error", + "code": 8031 + }, + "Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.": { + "category": "Error", + "code": 8032 + }, + "A JSDoc '@typedef' comment may not contain multiple '@type' tags.": { + "category": "Error", + "code": 8033 + }, + "The tag was first specified here.": { + "category": "Error", + "code": 8034 + }, + "You cannot rename elements that are defined in a 'node_modules' folder.": { + "category": "Error", + "code": 8035 + }, + "You cannot rename elements that are defined in another 'node_modules' folder.": { + "category": "Error", + "code": 8036 + }, + "Type satisfaction expressions can only be used in TypeScript files.": { + "category": "Error", + "code": 8037 + }, + "Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.": { + "category": "Error", + "code": 8038 + }, + "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag": { + "category": "Error", + "code": 8039 + }, + "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.": { + "category": "Error", + "code": 9005 + }, + "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.": { + "category": "Error", + "code": 9006 + }, + "Function must have an explicit return type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9007 + }, + "Method must have an explicit return type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9008 + }, + "At least one accessor must have an explicit type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9009 + }, + "Variable must have an explicit type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9010 + }, + "Parameter must have an explicit type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9011 + }, + "Property must have an explicit type annotation with --isolatedDeclarations.": { + "category": "Error", + "code": 9012 + }, + "Expression type can't be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9013 + }, + "Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.": { + "category": "Error", + "code": 9014 + }, + "Objects that contain spread assignments can't be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9015 + }, + "Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9016 + }, + "Only const arrays can be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9017 + }, + "Arrays with spread elements can't inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9018 + }, + "Binding elements can't be exported directly with --isolatedDeclarations.": { + "category": "Error", + "code": 9019 + }, + "Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.": { + "category": "Error", + "code": 9020 + }, + "Extends clause can't contain an expression with --isolatedDeclarations.": { + "category": "Error", + "code": 9021 + }, + "Inference from class expressions is not supported with --isolatedDeclarations.": { + "category": "Error", + "code": 9022 + }, + "Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.": { + "category": "Error", + "code": 9023 + }, + "Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.": { + "category": "Error", + "code": 9025 + }, + "Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.": { + "category": "Error", + "code": 9026 + }, + "Add a type annotation to the variable {0}.": { + "category": "Error", + "code": 9027 + }, + "Add a type annotation to the parameter {0}.": { + "category": "Error", + "code": 9028 + }, + "Add a type annotation to the property {0}.": { + "category": "Error", + "code": 9029 + }, + "Add a return type to the function expression.": { + "category": "Error", + "code": 9030 + }, + "Add a return type to the function declaration.": { + "category": "Error", + "code": 9031 + }, + "Add a return type to the get accessor declaration.": { + "category": "Error", + "code": 9032 + }, + "Add a type to parameter of the set accessor declaration.": { + "category": "Error", + "code": 9033 + }, + "Add a return type to the method": { + "category": "Error", + "code": 9034 + }, + "Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.": { + "category": "Error", + "code": 9035 + }, + "Move the expression in default export to a variable and add a type annotation to it.": { + "category": "Error", + "code": 9036 + }, + "Default exports can't be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9037 + }, + "Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.": { + "category": "Error", + "code": 9038 + }, + "Type containing private name '{0}' can't be used with --isolatedDeclarations.": { + "category": "Error", + "code": 9039 + }, + "JSX attributes must only be assigned a non-empty 'expression'.": { + "category": "Error", + "code": 17000 + }, + "JSX elements cannot have multiple attributes with the same name.": { + "category": "Error", + "code": 17001 + }, + "Expected corresponding JSX closing tag for '{0}'.": { + "category": "Error", + "code": 17002 + }, + "Cannot use JSX unless the '--jsx' flag is provided.": { + "category": "Error", + "code": 17004 + }, + "A constructor cannot contain a 'super' call when its class extends 'null'.": { + "category": "Error", + "code": 17005 + }, + "An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.": { + "category": "Error", + "code": 17006 + }, + "A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.": { + "category": "Error", + "code": 17007 + }, + "JSX element '{0}' has no corresponding closing tag.": { + "category": "Error", + "code": 17008 + }, + "'super' must be called before accessing 'this' in the constructor of a derived class.": { + "category": "Error", + "code": 17009 + }, + "Unknown type acquisition option '{0}'.": { + "category": "Error", + "code": 17010 + }, + "'super' must be called before accessing a property of 'super' in the constructor of a derived class.": { + "category": "Error", + "code": 17011 + }, + "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?": { + "category": "Error", + "code": 17012 + }, + "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.": { + "category": "Error", + "code": 17013 + }, + "JSX fragment has no corresponding closing tag.": { + "category": "Error", + "code": 17014 + }, + "Expected corresponding closing tag for JSX fragment.": { + "category": "Error", + "code": 17015 + }, + "The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.": { + "category": "Error", + "code": 17016 + }, + "An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.": { + "category": "Error", + "code": 17017 + }, + "Unknown type acquisition option '{0}'. Did you mean '{1}'?": { + "category": "Error", + "code": 17018 + }, + "'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?": { + "category": "Error", + "code": 17019 + }, + "'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?": { + "category": "Error", + "code": 17020 + }, + "Unicode escape sequence cannot appear here.": { + "category": "Error", + "code": 17021 + }, + "Circularity detected while resolving configuration: {0}": { + "category": "Error", + "code": 18000 + }, + "The 'files' list in config file '{0}' is empty.": { + "category": "Error", + "code": 18002 + }, + "No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.": { + "category": "Error", + "code": 18003 + }, + "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.": { + "category": "Error", + "code": 18004 + }, + "Classes may not have a field named 'constructor'.": { + "category": "Error", + "code": 18006 + }, + "JSX expressions may not use the comma operator. Did you mean to write an array?": { + "category": "Error", + "code": 18007 + }, + "Private identifiers cannot be used as parameters.": { + "category": "Error", + "code": 18009 + }, + "An accessibility modifier cannot be used with a private identifier.": { + "category": "Error", + "code": 18010 + }, + "The operand of a 'delete' operator cannot be a private identifier.": { + "category": "Error", + "code": 18011 + }, + "'#constructor' is a reserved word.": { + "category": "Error", + "code": 18012 + }, + "Property '{0}' is not accessible outside class '{1}' because it has a private identifier.": { + "category": "Error", + "code": 18013 + }, + "The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.": { + "category": "Error", + "code": 18014 + }, + "Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.": { + "category": "Error", + "code": 18015 + }, + "Private identifiers are not allowed outside class bodies.": { + "category": "Error", + "code": 18016 + }, + "The shadowing declaration of '{0}' is defined here": { + "category": "Error", + "code": 18017 + }, + "The declaration of '{0}' that you probably intended to use is defined here": { + "category": "Error", + "code": 18018 + }, + "'{0}' modifier cannot be used with a private identifier.": { + "category": "Error", + "code": 18019 + }, + "An enum member cannot be named with a private identifier.": { + "category": "Error", + "code": 18024 + }, + "'#!' can only be used at the start of a file.": { + "category": "Error", + "code": 18026 + }, + "Compiler reserves name '{0}' when emitting private identifier downlevel.": { + "category": "Error", + "code": 18027 + }, + "Private identifiers are only available when targeting ECMAScript 2015 and higher.": { + "category": "Error", + "code": 18028 + }, + "Private identifiers are not allowed in variable declarations.": { + "category": "Error", + "code": 18029 + }, + "An optional chain cannot contain private identifiers.": { + "category": "Error", + "code": 18030 + }, + "The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.": { + "category": "Error", + "code": 18031 + }, + "The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.": { + "category": "Error", + "code": 18032 + }, + "Type '{0}' is not assignable to type '{1}' as required for computed enum member values.": { + "category": "Error", + "code": 18033 + }, + "Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.": { + "category": "Message", + "code": 18034 + }, + "Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.": { + "category": "Error", + "code": 18035 + }, + "Class decorators can't be used with static private identifier. Consider removing the experimental decorator.": { + "category": "Error", + "code": 18036 + }, + "'await' expression cannot be used inside a class static block.": { + "category": "Error", + "code": 18037 + }, + "'for await' loops cannot be used inside a class static block.": { + "category": "Error", + "code": 18038 + }, + "Invalid use of '{0}'. It cannot be used inside a class static block.": { + "category": "Error", + "code": 18039 + }, + "A 'return' statement cannot be used inside a class static block.": { + "category": "Error", + "code": 18041 + }, + "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.": { + "category": "Error", + "code": 18042 + }, + "Types cannot appear in export declarations in JavaScript files.": { + "category": "Error", + "code": 18043 + }, + "'{0}' is automatically exported here.": { + "category": "Message", + "code": 18044 + }, + "Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.": { + "category": "Error", + "code": 18045 + }, + "'{0}' is of type 'unknown'.": { + "category": "Error", + "code": 18046 + }, + "'{0}' is possibly 'null'.": { + "category": "Error", + "code": 18047 + }, + "'{0}' is possibly 'undefined'.": { + "category": "Error", + "code": 18048 + }, + "'{0}' is possibly 'null' or 'undefined'.": { + "category": "Error", + "code": 18049 + }, + "The value '{0}' cannot be used here.": { + "category": "Error", + "code": 18050 + }, + "Compiler option '{0}' cannot be given an empty string.": { + "category": "Error", + "code": 18051 + }, + "Its type '{0}' is not a valid JSX element type.": { + "category": "Error", + "code": 18053 + }, + "'await using' statements cannot be used inside a class static block.": { + "category": "Error", + "code": 18054 + }, + "'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.": { + "category": "Error", + "code": 18055 + }, + "Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.": { + "category": "Error", + "code": 18056 + }, + "String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.": { + "category": "Error", + "code": 18057 + }, + "Default imports are not allowed in a deferred import.": { + "category": "Error", + "code": 18058 + }, + "Named imports are not allowed in a deferred import.": { + "category": "Error", + "code": 18059 + }, + "Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.": { + "category": "Error", + "code": 18060 + }, + "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?": { + "category": "Error", + "code": 18061 + }, + "`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.": { + "category": "Message", + "code": 69010 + }, + "File is a CommonJS module; it may be converted to an ES module.": { + "category": "Suggestion", + "code": 80001 + }, + "This constructor function may be converted to a class declaration.": { + "category": "Suggestion", + "code": 80002 + }, + "Import may be converted to a default import.": { + "category": "Suggestion", + "code": 80003 + }, + "JSDoc types may be moved to TypeScript types.": { + "category": "Suggestion", + "code": 80004 + }, + "'require' call may be converted to an import.": { + "category": "Suggestion", + "code": 80005 + }, + "This may be converted to an async function.": { + "category": "Suggestion", + "code": 80006 + }, + "'await' has no effect on the type of this expression.": { + "category": "Suggestion", + "code": 80007 + }, + "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.": { + "category": "Suggestion", + "code": 80008 + }, + "JSDoc typedef may be converted to TypeScript type.": { + "category": "Suggestion", + "code": 80009 + }, + "JSDoc typedefs may be converted to TypeScript types.": { + "category": "Suggestion", + "code": 80010 + }, + "Add missing 'super()' call": { + "category": "Message", + "code": 90001 + }, + "Make 'super()' call the first statement in the constructor": { + "category": "Message", + "code": 90002 + }, + "Change 'extends' to 'implements'": { + "category": "Message", + "code": 90003 + }, + "Remove unused declaration for: '{0}'": { + "category": "Message", + "code": 90004 + }, + "Remove import from '{0}'": { + "category": "Message", + "code": 90005 + }, + "Implement interface '{0}'": { + "category": "Message", + "code": 90006 + }, + "Implement inherited abstract class": { + "category": "Message", + "code": 90007 + }, + "Add '{0}.' to unresolved variable": { + "category": "Message", + "code": 90008 + }, + "Remove variable statement": { + "category": "Message", + "code": 90010 + }, + "Remove template tag": { + "category": "Message", + "code": 90011 + }, + "Remove type parameters": { + "category": "Message", + "code": 90012 + }, + "Import '{0}' from \"{1}\"": { + "category": "Message", + "code": 90013 + }, + "Change '{0}' to '{1}'": { + "category": "Message", + "code": 90014 + }, + "Declare property '{0}'": { + "category": "Message", + "code": 90016 + }, + "Add index signature for property '{0}'": { + "category": "Message", + "code": 90017 + }, + "Disable checking for this file": { + "category": "Message", + "code": 90018 + }, + "Ignore this error message": { + "category": "Message", + "code": 90019 + }, + "Initialize property '{0}' in the constructor": { + "category": "Message", + "code": 90020 + }, + "Initialize static property '{0}'": { + "category": "Message", + "code": 90021 + }, + "Change spelling to '{0}'": { + "category": "Message", + "code": 90022 + }, + "Declare method '{0}'": { + "category": "Message", + "code": 90023 + }, + "Declare static method '{0}'": { + "category": "Message", + "code": 90024 + }, + "Prefix '{0}' with an underscore": { + "category": "Message", + "code": 90025 + }, + "Rewrite as the indexed access type '{0}'": { + "category": "Message", + "code": 90026 + }, + "Declare static property '{0}'": { + "category": "Message", + "code": 90027 + }, + "Call decorator expression": { + "category": "Message", + "code": 90028 + }, + "Add async modifier to containing function": { + "category": "Message", + "code": 90029 + }, + "Replace 'infer {0}' with 'unknown'": { + "category": "Message", + "code": 90030 + }, + "Replace all unused 'infer' with 'unknown'": { + "category": "Message", + "code": 90031 + }, + "Add parameter name": { + "category": "Message", + "code": 90034 + }, + "Declare private property '{0}'": { + "category": "Message", + "code": 90035 + }, + "Replace '{0}' with 'Promise<{1}>'": { + "category": "Message", + "code": 90036 + }, + "Fix all incorrect return type of an async functions": { + "category": "Message", + "code": 90037 + }, + "Declare private method '{0}'": { + "category": "Message", + "code": 90038 + }, + "Remove unused destructuring declaration": { + "category": "Message", + "code": 90039 + }, + "Remove unused declarations for: '{0}'": { + "category": "Message", + "code": 90041 + }, + "Declare a private field named '{0}'.": { + "category": "Message", + "code": 90053 + }, + "Includes imports of types referenced by '{0}'": { + "category": "Message", + "code": 90054 + }, + "Remove 'type' from import declaration from \"{0}\"": { + "category": "Message", + "code": 90055 + }, + "Remove 'type' from import of '{0}' from \"{1}\"": { + "category": "Message", + "code": 90056 + }, + "Add import from \"{0}\"": { + "category": "Message", + "code": 90057 + }, + "Update import from \"{0}\"": { + "category": "Message", + "code": 90058 + }, + "Export '{0}' from module '{1}'": { + "category": "Message", + "code": 90059 + }, + "Export all referenced locals": { + "category": "Message", + "code": 90060 + }, + "Update modifiers of '{0}'": { + "category": "Message", + "code": 90061 + }, + "Add annotation of type '{0}'": { + "category": "Message", + "code": 90062 + }, + "Add return type '{0}'": { + "category": "Message", + "code": 90063 + }, + "Extract base class to variable": { + "category": "Message", + "code": 90064 + }, + "Extract default export to variable": { + "category": "Message", + "code": 90065 + }, + "Extract binding expressions to variable": { + "category": "Message", + "code": 90066 + }, + "Add all missing type annotations": { + "category": "Message", + "code": 90067 + }, + "Add satisfies and an inline type assertion with '{0}'": { + "category": "Message", + "code": 90068 + }, + "Extract to variable and replace with '{0} as typeof {0}'": { + "category": "Message", + "code": 90069 + }, + "Mark array literal as const": { + "category": "Message", + "code": 90070 + }, + "Annotate types of properties expando function in a namespace": { + "category": "Message", + "code": 90071 + }, + "Convert function to an ES2015 class": { + "category": "Message", + "code": 95001 + }, + "Convert '{0}' to '{1} in {0}'": { + "category": "Message", + "code": 95003 + }, + "Extract to {0} in {1}": { + "category": "Message", + "code": 95004 + }, + "Extract function": { + "category": "Message", + "code": 95005 + }, + "Extract constant": { + "category": "Message", + "code": 95006 + }, + "Extract to {0} in enclosing scope": { + "category": "Message", + "code": 95007 + }, + "Extract to {0} in {1} scope": { + "category": "Message", + "code": 95008 + }, + "Annotate with type from JSDoc": { + "category": "Message", + "code": 95009 + }, + "Infer type of '{0}' from usage": { + "category": "Message", + "code": 95011 + }, + "Infer parameter types from usage": { + "category": "Message", + "code": 95012 + }, + "Convert to default import": { + "category": "Message", + "code": 95013 + }, + "Install '{0}'": { + "category": "Message", + "code": 95014 + }, + "Replace import with '{0}'.": { + "category": "Message", + "code": 95015 + }, + "Use synthetic 'default' member.": { + "category": "Message", + "code": 95016 + }, + "Convert to ES module": { + "category": "Message", + "code": 95017 + }, + "Add 'undefined' type to property '{0}'": { + "category": "Message", + "code": 95018 + }, + "Add initializer to property '{0}'": { + "category": "Message", + "code": 95019 + }, + "Add definite assignment assertion to property '{0}'": { + "category": "Message", + "code": 95020 + }, + "Convert all type literals to mapped type": { + "category": "Message", + "code": 95021 + }, + "Add all missing members": { + "category": "Message", + "code": 95022 + }, + "Infer all types from usage": { + "category": "Message", + "code": 95023 + }, + "Delete all unused declarations": { + "category": "Message", + "code": 95024 + }, + "Prefix all unused declarations with '_' where possible": { + "category": "Message", + "code": 95025 + }, + "Fix all detected spelling errors": { + "category": "Message", + "code": 95026 + }, + "Add initializers to all uninitialized properties": { + "category": "Message", + "code": 95027 + }, + "Add definite assignment assertions to all uninitialized properties": { + "category": "Message", + "code": 95028 + }, + "Add undefined type to all uninitialized properties": { + "category": "Message", + "code": 95029 + }, + "Change all jsdoc-style types to TypeScript": { + "category": "Message", + "code": 95030 + }, + "Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)": { + "category": "Message", + "code": 95031 + }, + "Implement all unimplemented interfaces": { + "category": "Message", + "code": 95032 + }, + "Install all missing types packages": { + "category": "Message", + "code": 95033 + }, + "Rewrite all as indexed access types": { + "category": "Message", + "code": 95034 + }, + "Convert all to default imports": { + "category": "Message", + "code": 95035 + }, + "Make all 'super()' calls the first statement in their constructor": { + "category": "Message", + "code": 95036 + }, + "Add qualifier to all unresolved variables matching a member name": { + "category": "Message", + "code": 95037 + }, + "Change all extended interfaces to 'implements'": { + "category": "Message", + "code": 95038 + }, + "Add all missing super calls": { + "category": "Message", + "code": 95039 + }, + "Implement all inherited abstract classes": { + "category": "Message", + "code": 95040 + }, + "Add all missing 'async' modifiers": { + "category": "Message", + "code": 95041 + }, + "Add '@ts-ignore' to all error messages": { + "category": "Message", + "code": 95042 + }, + "Annotate everything with types from JSDoc": { + "category": "Message", + "code": 95043 + }, + "Add '()' to all uncalled decorators": { + "category": "Message", + "code": 95044 + }, + "Convert all constructor functions to classes": { + "category": "Message", + "code": 95045 + }, + "Generate 'get' and 'set' accessors": { + "category": "Message", + "code": 95046 + }, + "Convert 'require' to 'import'": { + "category": "Message", + "code": 95047 + }, + "Convert all 'require' to 'import'": { + "category": "Message", + "code": 95048 + }, + "Move to a new file": { + "category": "Message", + "code": 95049 + }, + "Remove unreachable code": { + "category": "Message", + "code": 95050 + }, + "Remove all unreachable code": { + "category": "Message", + "code": 95051 + }, + "Add missing 'typeof'": { + "category": "Message", + "code": 95052 + }, + "Remove unused label": { + "category": "Message", + "code": 95053 + }, + "Remove all unused labels": { + "category": "Message", + "code": 95054 + }, + "Convert '{0}' to mapped object type": { + "category": "Message", + "code": 95055 + }, + "Convert namespace import to named imports": { + "category": "Message", + "code": 95056 + }, + "Convert named imports to namespace import": { + "category": "Message", + "code": 95057 + }, + "Add or remove braces in an arrow function": { + "category": "Message", + "code": 95058 + }, + "Add braces to arrow function": { + "category": "Message", + "code": 95059 + }, + "Remove braces from arrow function": { + "category": "Message", + "code": 95060 + }, + "Convert default export to named export": { + "category": "Message", + "code": 95061 + }, + "Convert named export to default export": { + "category": "Message", + "code": 95062 + }, + "Add missing enum member '{0}'": { + "category": "Message", + "code": 95063 + }, + "Add all missing imports": { + "category": "Message", + "code": 95064 + }, + "Convert to async function": { + "category": "Message", + "code": 95065 + }, + "Convert all to async functions": { + "category": "Message", + "code": 95066 + }, + "Add missing call parentheses": { + "category": "Message", + "code": 95067 + }, + "Add all missing call parentheses": { + "category": "Message", + "code": 95068 + }, + "Add 'unknown' conversion for non-overlapping types": { + "category": "Message", + "code": 95069 + }, + "Add 'unknown' to all conversions of non-overlapping types": { + "category": "Message", + "code": 95070 + }, + "Add missing 'new' operator to call": { + "category": "Message", + "code": 95071 + }, + "Add missing 'new' operator to all calls": { + "category": "Message", + "code": 95072 + }, + "Add names to all parameters without names": { + "category": "Message", + "code": 95073 + }, + "Enable the 'experimentalDecorators' option in your configuration file": { + "category": "Message", + "code": 95074 + }, + "Convert parameters to destructured object": { + "category": "Message", + "code": 95075 + }, + "Extract type": { + "category": "Message", + "code": 95077 + }, + "Extract to type alias": { + "category": "Message", + "code": 95078 + }, + "Extract to typedef": { + "category": "Message", + "code": 95079 + }, + "Infer 'this' type of '{0}' from usage": { + "category": "Message", + "code": 95080 + }, + "Add 'const' to unresolved variable": { + "category": "Message", + "code": 95081 + }, + "Add 'const' to all unresolved variables": { + "category": "Message", + "code": 95082 + }, + "Add 'await'": { + "category": "Message", + "code": 95083 + }, + "Add 'await' to initializer for '{0}'": { + "category": "Message", + "code": 95084 + }, + "Fix all expressions possibly missing 'await'": { + "category": "Message", + "code": 95085 + }, + "Remove unnecessary 'await'": { + "category": "Message", + "code": 95086 + }, + "Remove all unnecessary uses of 'await'": { + "category": "Message", + "code": 95087 + }, + "Enable the '--jsx' flag in your configuration file": { + "category": "Message", + "code": 95088 + }, + "Add 'await' to initializers": { + "category": "Message", + "code": 95089 + }, + "Extract to interface": { + "category": "Message", + "code": 95090 + }, + "Convert to a bigint numeric literal": { + "category": "Message", + "code": 95091 + }, + "Convert all to bigint numeric literals": { + "category": "Message", + "code": 95092 + }, + "Convert 'const' to 'let'": { + "category": "Message", + "code": 95093 + }, + "Prefix with 'declare'": { + "category": "Message", + "code": 95094 + }, + "Prefix all incorrect property declarations with 'declare'": { + "category": "Message", + "code": 95095 + }, + "Convert to template string": { + "category": "Message", + "code": 95096 + }, + "Add 'export {}' to make this file into a module": { + "category": "Message", + "code": 95097 + }, + "Set the 'target' option in your configuration file to '{0}'": { + "category": "Message", + "code": 95098 + }, + "Set the 'module' option in your configuration file to '{0}'": { + "category": "Message", + "code": 95099 + }, + "Convert invalid character to its html entity code": { + "category": "Message", + "code": 95100 + }, + "Convert all invalid characters to HTML entity code": { + "category": "Message", + "code": 95101 + }, + "Convert all 'const' to 'let'": { + "category": "Message", + "code": 95102 + }, + "Convert function expression '{0}' to arrow function": { + "category": "Message", + "code": 95105 + }, + "Convert function declaration '{0}' to arrow function": { + "category": "Message", + "code": 95106 + }, + "Fix all implicit-'this' errors": { + "category": "Message", + "code": 95107 + }, + "Wrap invalid character in an expression container": { + "category": "Message", + "code": 95108 + }, + "Wrap all invalid characters in an expression container": { + "category": "Message", + "code": 95109 + }, + "Visit https://aka.ms/tsconfig to read more about this file": { + "category": "Message", + "code": 95110 + }, + "Add a return statement": { + "category": "Message", + "code": 95111 + }, + "Remove braces from arrow function body": { + "category": "Message", + "code": 95112 + }, + "Wrap the following body with parentheses which should be an object literal": { + "category": "Message", + "code": 95113 + }, + "Add all missing return statement": { + "category": "Message", + "code": 95114 + }, + "Remove braces from all arrow function bodies with relevant issues": { + "category": "Message", + "code": 95115 + }, + "Wrap all object literal with parentheses": { + "category": "Message", + "code": 95116 + }, + "Move labeled tuple element modifiers to labels": { + "category": "Message", + "code": 95117 + }, + "Convert overload list to single signature": { + "category": "Message", + "code": 95118 + }, + "Generate 'get' and 'set' accessors for all overriding properties": { + "category": "Message", + "code": 95119 + }, + "Wrap in JSX fragment": { + "category": "Message", + "code": 95120 + }, + "Wrap all unparented JSX in JSX fragment": { + "category": "Message", + "code": 95121 + }, + "Convert arrow function or function expression": { + "category": "Message", + "code": 95122 + }, + "Convert to anonymous function": { + "category": "Message", + "code": 95123 + }, + "Convert to named function": { + "category": "Message", + "code": 95124 + }, + "Convert to arrow function": { + "category": "Message", + "code": 95125 + }, + "Remove parentheses": { + "category": "Message", + "code": 95126 + }, + "Could not find a containing arrow function": { + "category": "Message", + "code": 95127 + }, + "Containing function is not an arrow function": { + "category": "Message", + "code": 95128 + }, + "Could not find export statement": { + "category": "Message", + "code": 95129 + }, + "This file already has a default export": { + "category": "Message", + "code": 95130 + }, + "Could not find import clause": { + "category": "Message", + "code": 95131 + }, + "Could not find namespace import or named imports": { + "category": "Message", + "code": 95132 + }, + "Selection is not a valid type node": { + "category": "Message", + "code": 95133 + }, + "No type could be extracted from this type node": { + "category": "Message", + "code": 95134 + }, + "Could not find property for which to generate accessor": { + "category": "Message", + "code": 95135 + }, + "Name is not valid": { + "category": "Message", + "code": 95136 + }, + "Can only convert property with modifier": { + "category": "Message", + "code": 95137 + }, + "Switch each misused '{0}' to '{1}'": { + "category": "Message", + "code": 95138 + }, + "Convert to optional chain expression": { + "category": "Message", + "code": 95139 + }, + "Could not find convertible access expression": { + "category": "Message", + "code": 95140 + }, + "Could not find matching access expressions": { + "category": "Message", + "code": 95141 + }, + "Can only convert logical AND access chains": { + "category": "Message", + "code": 95142 + }, + "Add 'void' to Promise resolved without a value": { + "category": "Message", + "code": 95143 + }, + "Add 'void' to all Promises resolved without a value": { + "category": "Message", + "code": 95144 + }, + "Use element access for '{0}'": { + "category": "Message", + "code": 95145 + }, + "Use element access for all undeclared properties.": { + "category": "Message", + "code": 95146 + }, + "Delete all unused imports": { + "category": "Message", + "code": 95147 + }, + "Infer function return type": { + "category": "Message", + "code": 95148 + }, + "Return type must be inferred from a function": { + "category": "Message", + "code": 95149 + }, + "Could not determine function return type": { + "category": "Message", + "code": 95150 + }, + "Could not convert to arrow function": { + "category": "Message", + "code": 95151 + }, + "Could not convert to named function": { + "category": "Message", + "code": 95152 + }, + "Could not convert to anonymous function": { + "category": "Message", + "code": 95153 + }, + "Can only convert string concatenations and string literals": { + "category": "Message", + "code": 95154 + }, + "Selection is not a valid statement or statements": { + "category": "Message", + "code": 95155 + }, + "Add missing function declaration '{0}'": { + "category": "Message", + "code": 95156 + }, + "Add all missing function declarations": { + "category": "Message", + "code": 95157 + }, + "Method not implemented.": { + "category": "Message", + "code": 95158 + }, + "Function not implemented.": { + "category": "Message", + "code": 95159 + }, + "Add 'override' modifier": { + "category": "Message", + "code": 95160 + }, + "Remove 'override' modifier": { + "category": "Message", + "code": 95161 + }, + "Add all missing 'override' modifiers": { + "category": "Message", + "code": 95162 + }, + "Remove all unnecessary 'override' modifiers": { + "category": "Message", + "code": 95163 + }, + "Can only convert named export": { + "category": "Message", + "code": 95164 + }, + "Add missing properties": { + "category": "Message", + "code": 95165 + }, + "Add all missing properties": { + "category": "Message", + "code": 95166 + }, + "Add missing attributes": { + "category": "Message", + "code": 95167 + }, + "Add all missing attributes": { + "category": "Message", + "code": 95168 + }, + "Add 'undefined' to optional property type": { + "category": "Message", + "code": 95169 + }, + "Convert named imports to default import": { + "category": "Message", + "code": 95170 + }, + "Delete unused '@param' tag '{0}'": { + "category": "Message", + "code": 95171 + }, + "Delete all unused '@param' tags": { + "category": "Message", + "code": 95172 + }, + "Rename '@param' tag name '{0}' to '{1}'": { + "category": "Message", + "code": 95173 + }, + "Use `{0}`.": { + "category": "Message", + "code": 95174 + }, + "Use `Number.isNaN` in all conditions.": { + "category": "Message", + "code": 95175 + }, + "Convert typedef to TypeScript type.": { + "category": "Message", + "code": 95176 + }, + "Convert all typedef to TypeScript types.": { + "category": "Message", + "code": 95177 + }, + "Move to file": { + "category": "Message", + "code": 95178 + }, + "Cannot move to file, selected file is invalid": { + "category": "Message", + "code": 95179 + }, + "Use 'import type'": { + "category": "Message", + "code": 95180 + }, + "Use 'type {0}'": { + "category": "Message", + "code": 95181 + }, + "Fix all with type-only imports": { + "category": "Message", + "code": 95182 + }, + "Cannot move statements to the selected file": { + "category": "Message", + "code": 95183 + }, + "Inline variable": { + "category": "Message", + "code": 95184 + }, + "Could not find variable to inline.": { + "category": "Message", + "code": 95185 + }, + "Variables with multiple declarations cannot be inlined.": { + "category": "Message", + "code": 95186 + }, + "Add missing comma for object member completion '{0}'.": { + "category": "Message", + "code": 95187 + }, + "Add missing parameter to '{0}'": { + "category": "Message", + "code": 95188 + }, + "Add missing parameters to '{0}'": { + "category": "Message", + "code": 95189 + }, + "Add all missing parameters": { + "category": "Message", + "code": 95190 + }, + "Add optional parameter to '{0}'": { + "category": "Message", + "code": 95191 + }, + "Add optional parameters to '{0}'": { + "category": "Message", + "code": 95192 + }, + "Add all optional parameters": { + "category": "Message", + "code": 95193 + }, + "Wrap in parentheses": { + "category": "Message", + "code": 95194 + }, + "Wrap all invalid decorator expressions in parentheses": { + "category": "Message", + "code": 95195 + }, + "Add 'resolution-mode' import attribute": { + "category": "Message", + "code": 95196 + }, + "Add 'resolution-mode' import attribute to all type-only imports that need it": { + "category": "Message", + "code": 95197 + } +} diff --git a/packages/error-translator/src/getImprovedMessage.ts b/packages/error-translator/src/getImprovedMessage.ts new file mode 100644 index 0000000..941c410 --- /dev/null +++ b/packages/error-translator/src/getImprovedMessage.ts @@ -0,0 +1,26 @@ +// The runtime package consumes pre-generated JSON, so the body filler must remain +// pure and must not depend on filesystem access or markdown parsing. +function createMarkdownCodeSpan(text: string): string { + const longestBacktickRun = Math.max( + 0, + ...Array.from(text.matchAll(/`+/gu), (match) => match[0].length), + ); + const fence = "`".repeat(longestBacktickRun + 1); + const needsPadding = text.startsWith("`") || text.endsWith("`"); + const content = needsPadding ? ` ${text} ` : text; + return `${fence}${content}${fence}`; +} + +export function fillBodyWithItems( + body: string, + items: readonly (string | number)[], +) { + items.forEach((item, index) => { + const bodyRegex = new RegExp(`'?\\{${index}\\}'?`, "g"); + body = body.replace(bodyRegex, createMarkdownCodeSpan(String(item))); + }); + + return { + body, + }; +} diff --git a/packages/error-translator/src/index.ts b/packages/error-translator/src/index.ts new file mode 100644 index 0000000..1cc5f37 --- /dev/null +++ b/packages/error-translator/src/index.ts @@ -0,0 +1,12 @@ +export { fillBodyWithItems } from "./getImprovedMessage"; +export { + parseErrors, + parseErrorsWithDb, + type ParsedDiagnosticMessage, + type ParsedDiagnosticMatch, +} from "./parseErrors"; +export { + hasTranslation, + translateDiagnosticMessage, + type PlainEnglishTranslation, +} from "./translateDiagnosticMessage"; diff --git a/packages/error-translator/src/parseErrors.ts b/packages/error-translator/src/parseErrors.ts new file mode 100644 index 0000000..ba22ceb --- /dev/null +++ b/packages/error-translator/src/parseErrors.ts @@ -0,0 +1,206 @@ +import tsErrorMessages from "./generated/tsErrorMessages.json"; + +type TsErrorMessageDb = Record; + +interface TSDiagnosticMatcher { + regexGlobal: RegExp; + regexLocal: RegExp; + parameterIndexes: number[]; +} + +const DiagnosticHashMap = new Map(); + +const escapeRegex = /[.*+?^${}()|[\]\\]/g; + +function escapeRegExp(str: string) { + return str.replace(escapeRegex, "\\$&"); +} + +const parameterRegex = /{(\d+)}/g; +const escapedParameterRegex = /\\\{(\d+)\\\}/g; + +function isTsErrorMessageDb(value: unknown): value is TsErrorMessageDb { + if (typeof value !== "object" || value === null) { + return false; + } + + return Object.values(value).every((entry) => { + return ( + typeof entry === "object" && + entry !== null && + "code" in entry && + typeof entry.code === "number" + ); + }); +} + +function ensureTsErrorMessageDb(value: unknown): TsErrorMessageDb { + if (!isTsErrorMessageDb(value)) { + throw new Error( + "TypeScript diagnostic matcher database has an invalid shape." + ); + } + + return value; +} + +const tsErrorMessageDb = ensureTsErrorMessageDb(tsErrorMessages); + +function getDiagnosticMatcher(text: string): TSDiagnosticMatcher { + const existing = DiagnosticHashMap.get(text); + + if (existing) { + return existing; + } + + const regexSource = escapeRegExp(text).replace(escapedParameterRegex, "(.+)"); + const regexLocal = new RegExp(regexSource); + const regexGlobal = new RegExp(regexSource, "g"); + const parameterIndexes = Array.from( + text.matchAll(parameterRegex), + ([, parameterIndex]) => Number(parameterIndex) + ); + + const diagnosticMatcher = { + regexGlobal, + regexLocal, + parameterIndexes, + }; + + DiagnosticHashMap.set(text, diagnosticMatcher); + + return diagnosticMatcher; +} + +function associateMatchedParameters( + parameterIndexes: number[], + matchedParams: string[] +): (string | number)[] { + const paramsByIndex = new Map(); + + for (let i = 0; i < matchedParams.length; i++) { + const parameterIndex = parameterIndexes[i]; + if ( + parameterIndex !== undefined && + Number.isInteger(parameterIndex) && + !paramsByIndex.has(parameterIndex) + ) { + paramsByIndex.set(parameterIndex, matchedParams[i] ?? ""); + } + } + + if (paramsByIndex.size === 0) { + return []; + } + + const highestParameterIndex = Math.max(...paramsByIndex.keys()); + + return Array.from({ length: highestParameterIndex + 1 }, (_unused, index) => { + return paramsByIndex.get(index) ?? ""; + }); +} + +interface ParseInfo { + rawError: string; + startIndex: number; + endIndex: number; + items: (string | number)[]; +} + +export interface ParsedDiagnosticMatch { + code: number; + error: string; + parseInfo: ParseInfo; +} + +export type ParsedDiagnosticMessage = ParsedDiagnosticMatch[]; + +export function parseErrorsWithDb( + db: TsErrorMessageDb, + message: string +): ParsedDiagnosticMessage { + const errorMessageByKey: Record = {}; + + const keys = Object.keys(db); + + keys.forEach((newError) => { + const dbEntry = db[newError]; + if (dbEntry === undefined) { + return; + } + + const { regexGlobal, regexLocal, parameterIndexes } = + getDiagnosticMatcher(newError); + const matches = message.match(regexGlobal); + + if (matches === null) { + return; + } + + let searchOffset = 0; + + for (const matchElem of matches) { + const startIndex = message.indexOf(matchElem, searchOffset); + if (startIndex === -1) { + continue; + } + const endIndex = startIndex + matchElem.length; + const key = `${startIndex}_${endIndex}`; + searchOffset = endIndex; + + const items = associateMatchedParameters( + parameterIndexes, + matchElem.match(regexLocal)?.slice(1) ?? [] + ); + + const errorObj: ParsedDiagnosticMatch = { + code: dbEntry.code, + error: newError, + parseInfo: { + rawError: matchElem, + startIndex, + endIndex, + items, + }, + }; + + if (errorMessageByKey[key]) { + const existingRule = errorMessageByKey[key]; + + errorMessageByKey[key] = + newError.length > existingRule.error.length ? errorObj : existingRule; + } else { + errorMessageByKey[key] = errorObj; + } + } + }); + + const sortedMatches = Object.values(errorMessageByKey).sort((left, right) => { + if (left.parseInfo.startIndex !== right.parseInfo.startIndex) { + return left.parseInfo.startIndex - right.parseInfo.startIndex; + } + + return right.parseInfo.endIndex - left.parseInfo.endIndex; + }); + + const filteredMatches: ParsedDiagnosticMatch[] = []; + + for (const candidate of sortedMatches) { + const isContainedByAcceptedMatch = filteredMatches.some((accepted) => { + return ( + candidate.parseInfo.startIndex >= accepted.parseInfo.startIndex && + candidate.parseInfo.endIndex <= accepted.parseInfo.endIndex + ); + }); + + if (!isContainedByAcceptedMatch) { + filteredMatches.push(candidate); + } + } + + return filteredMatches; +} + +export function parseErrors(message: string): ParsedDiagnosticMessage { + return parseErrorsWithDb(tsErrorMessageDb, message); +} diff --git a/packages/error-translator/src/translateDiagnosticMessage.ts b/packages/error-translator/src/translateDiagnosticMessage.ts new file mode 100644 index 0000000..c8b87a0 --- /dev/null +++ b/packages/error-translator/src/translateDiagnosticMessage.ts @@ -0,0 +1,85 @@ +import bundleErrors from "./generated/bundleErrors.json"; +import { fillBodyWithItems } from "./getImprovedMessage"; +import { parseErrors } from "./parseErrors"; + +export type TranslationCategory = "Error" | "Message" | "Suggestion"; +export type TranslationSource = "curated" | "generated"; + +interface TranslationEntry { + body: string; + category: TranslationCategory; + code: number; + message: string; + source: TranslationSource; +} + +type TranslationBundle = Record; + +function isTranslationBundle(value: unknown): value is TranslationBundle { + if (typeof value !== "object" || value === null) { + return false; + } + + return Object.values(value).every((entry) => { + return ( + typeof entry === "object" && + entry !== null && + "body" in entry && + typeof entry.body === "string" && + "category" in entry && + (entry.category === "Error" || + entry.category === "Message" || + entry.category === "Suggestion") && + "code" in entry && + typeof entry.code === "number" && + "message" in entry && + typeof entry.message === "string" && + "source" in entry && + (entry.source === "curated" || entry.source === "generated") + ); + }); +} + +function ensureTranslationBundle(value: unknown): TranslationBundle { + if (!isTranslationBundle(value)) { + throw new Error("Plain-English translation bundle has an invalid shape."); + } + + return value; +} + +const translationBundle = ensureTranslationBundle(bundleErrors); + +export interface PlainEnglishTranslation { + category: TranslationCategory; + code: number; + rawError: string; + body: string; + source: TranslationSource; +} + +function buildFallbackBody(message: string): string { + return `TypeScript reports this diagnostic: ${message}`; +} + +export function hasTranslation(code: number): boolean { + return translationBundle[String(code)] !== undefined; +} + +export function translateDiagnosticMessage( + message: string, +): PlainEnglishTranslation[] { + return parseErrors(message).map((error) => { + const translation = translationBundle[String(error.code)]; + const bodyTemplate = + translation?.body ?? buildFallbackBody(error.parseInfo.rawError); + + return { + category: translation?.category ?? "Error", + code: error.code, + rawError: error.parseInfo.rawError, + body: fillBodyWithItems(bodyTemplate, error.parseInfo.items).body, + source: translation?.source ?? "generated", + }; + }); +} diff --git a/packages/error-translator/test/engine.test.ts b/packages/error-translator/test/engine.test.ts new file mode 100644 index 0000000..fd4d4fa --- /dev/null +++ b/packages/error-translator/test/engine.test.ts @@ -0,0 +1,243 @@ +import { describe, expect, it } from "vitest"; +import { fillBodyWithItems } from "../src/getImprovedMessage"; +import { + parseErrors, + parseErrorsWithDb, +} from "../src/parseErrors"; +import { translateDiagnosticMessage } from "../src/translateDiagnosticMessage"; + +describe("parseErrors", () => { + it("Should catch multiple of the same error", () => { + const errors = parseErrors( + `Types of property 'URL_NAVIGATION' are incompatible. + Types of property 'actions' are incompatible.`, + ); + + expect(errors).toHaveLength(2); + }); + + it("should match diagnostic variadic arguments for quoted types and arbitrary (non-quoted) values", () => { + const input = ` + Generic type 'T' requires between 5 and 10 type arguments. + Type 'B' is missing the following properties from type 'A': two, three + 'T' refers to a value, but is being used as a type here. Did you mean 'typeof T'? + `; + const errors = parseErrors(input); + + expect(errors).toMatchInlineSnapshot(` + [ + { + "code": 2707, + "error": "Generic type '{0}' requires between {1} and {2} type arguments.", + "parseInfo": { + "endIndex": 65, + "items": [ + "T", + "5", + "10", + ], + "rawError": "Generic type 'T' requires between 5 and 10 type arguments.", + "startIndex": 7, + }, + }, + { + "code": 2739, + "error": "Type '{0}' is missing the following properties from type '{1}': {2}", + "parseInfo": { + "endIndex": 142, + "items": [ + "B", + "A", + "two, three", + ], + "rawError": "Type 'B' is missing the following properties from type 'A': two, three", + "startIndex": 72, + }, + }, + { + "code": 2749, + "error": "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?", + "parseInfo": { + "endIndex": 230, + "items": [ + "T", + ], + "rawError": "'T' refers to a value, but is being used as a type here. Did you mean 'typeof T'?", + "startIndex": 149, + }, + }, + ] + `); + }); + + it("Should handle multiple params of ALL the same value", () => { + const result = parseErrorsWithDb( + { + [`'{0}', '{1}', '{2}'`]: { + code: 1, + }, + }, + `'A', 'A', 'A'`, + ); + expect(result[0].parseInfo.items).toEqual(['A', 'A', 'A']); + }); + + it("Should handle multiple params of SOME the same value", () => { + const result = parseErrorsWithDb( + { + [`'{0}', '{1}', '{2}'`]: { + code: 1, + }, + }, + `'A', 'A', 'B'`, + ); + expect(result[0].parseInfo.items).toEqual(['A', 'A', 'B']); + }); + + it("Should handle non-quoted params", () => { + const result = parseErrorsWithDb( + { + [`Imported via {0} from file '{1}'`]: { + code: 1, + }, + }, + `Imported via A from file 'B'`, + ); + + expect(result[0].parseInfo.items).toEqual(['A', 'B']); + }); + + it("Should handle params in the incorrect order", () => { + const result = parseErrorsWithDb( + { + [`{2}, {0}, {1}`]: { + code: 1, + }, + }, + `C, A, B`, + ); + + expect(result[0].parseInfo.items).toEqual(['A', 'B', 'C']); + }); + + it("should parse current TypeScript diagnostics with out-of-order placeholders", () => { + const [result] = parseErrors( + "The parser expected to find a ')' to match the '(' token here.", + ); + + expect(result).toMatchObject({ + code: 1007, + parseInfo: { + items: ["(", ")"], + rawError: + "The parser expected to find a ')' to match the '(' token here.", + }, + }); + }); + + it("Should handle params specified multiple times", () => { + const result = parseErrorsWithDb( + { + [`{0}, {1}, {1}, {2}`]: { + code: 1, + }, + }, + `A, B, B, C`, + ); + + expect(result[0].parseInfo.items).toEqual(['A', 'B', 'C']); + }); + + describe("When two sections match, but one is longer", () => { + it("Should choose the longer one", () => { + const result = parseErrorsWithDb( + { + [`{0}, {1}, {2}`]: { + code: 1, + }, + [`{0}, {1}, {2}, {3}`]: { + code: 1, + }, + }, + `A, B, C, D`, + ); + + expect(result).toHaveLength(1); + expect(result[0].parseInfo.items).toEqual(['A', 'B', 'C', 'D']); + }); + }); + + it("Should handle cases where there are no params", () => { + const result = parseErrorsWithDb( + { + [`Hello!`]: { + code: 1, + }, + }, + `Hello!`, + ); + + expect(result[0].parseInfo.items).toEqual([]); + }); +}); + +describe("fillBodyWithItems", () => { + it("Should handle {0} AND '{1}' cases in excerpt", () => { + const result = fillBodyWithItems(`{0} and '{1}'`, ["A", "B"]); + + expect(result.body).toEqual("`A` and `B`"); + }); + + it("Should use a longer markdown code fence when the item contains backticks", () => { + const result = fillBodyWithItems( + "Value: '{0}'", + ["{ email: `${string}@${string}.${string}` }"], + ); + + expect(result.body).toContain("``{ email: `${string}@${string}.${string}` }``"); + }); +}); + +describe("translateDiagnosticMessage", () => { + it("Should return a local plain-English translation when one exists", () => { + const [translation] = translateDiagnosticMessage( + "Type 'A' is not assignable to type 'B'.", + ); + + expect(translation).toMatchObject({ + category: "Error", + code: 2322, + rawError: "Type 'A' is not assignable to type 'B'.", + body: "I was expecting a type matching `B`, but instead you passed `A`.", + source: "curated", + }); + }); + + it("Should preserve the concrete missing-property details for TS2739", () => { + const [translation] = translateDiagnosticMessage( + "Type '{ email: \"usr@usr.io\"; }' is missing the following properties from type '{ name: string; email: `${string}@${string}.${string}`; age: number; address: { street: string; city: string; country: string; }; }': name, age, address", + ); + + expect(translation).toMatchObject({ + code: 2739, + source: "curated", + }); + expect(translation?.body).toContain("missing some required properties"); + expect(translation?.body).toContain("name, age, address"); + expect(translation?.body).toContain("usr@usr.io"); + }); + + it("Should keep TS2741 template literal types inside a valid markdown code span", () => { + const [translation] = translateDiagnosticMessage( + "Property 'user' is missing in type '{ person: { username: string; email: string; }; }' but required in type '{ user: { name: string; email: `${string}@${string}.${string}`; age: number; }; }'.", + ); + + expect(translation).toMatchObject({ + code: 2741, + source: "curated", + }); + expect(translation?.body).toContain("``{ user:"); + expect(translation?.body).toContain("`${string}@${string}.${string}`"); + expect(translation?.body).toContain("`` - "); + }); +}); diff --git a/packages/error-translator/test/translationContract.test.ts b/packages/error-translator/test/translationContract.test.ts new file mode 100644 index 0000000..a76967a --- /dev/null +++ b/packages/error-translator/test/translationContract.test.ts @@ -0,0 +1,155 @@ +import { createRequire } from "node:module"; +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { describe, expect, it } from "vitest"; +import bundleErrors from "../src/generated/bundleErrors.json"; +import tsErrorMessages from "../src/generated/tsErrorMessages.json"; + +const require = createRequire(import.meta.url); +const ts = require("typescript"); + +const packageRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + ".." +); +const curatedErrorsDir = path.join( + packageRoot, + "vendor", + "matt-pocock", + "errors" +); + +interface TsDiagnostic { + category: number; + code: number; + message: string; +} + +interface TsErrorMessageEntry { + category: string; + code: number; +} + +interface BundleEntry { + body: string; + category: string; + code: number; + message: string; + source: string; +} + +function getCategoryName(category: number): string { + const categoryName = ts.DiagnosticCategory?.[category]; + return typeof categoryName === "string" ? categoryName : "Error"; +} + +function isTsDiagnostic(diagnostic: unknown): diagnostic is TsDiagnostic { + return ( + typeof diagnostic === "object" && + diagnostic !== null && + "code" in diagnostic && + typeof diagnostic.code === "number" && + "message" in diagnostic && + typeof diagnostic.message === "string" && + "category" in diagnostic && + typeof diagnostic.category === "number" + ); +} + +function getCurrentDiagnostics(): TsDiagnostic[] { + return Object.values(ts.Diagnostics) + .filter(isTsDiagnostic) + .sort((left, right) => left.code - right.code); +} + +function unwrapQuotedValue(value: string): string { + if ( + (value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'")) + ) { + return value.slice(1, -1); + } + + return value; +} + +function parseOriginalMessage(markdown: string, fileName: string): string { + const match = /^---\r?\n([\s\S]*?)\r?\n---/u.exec(markdown); + if (match === null) { + throw new Error(`Missing front matter in ${fileName}.`); + } + + const originalMatch = /^original:\s*(.+)$/mu.exec(match[1]); + if (originalMatch === null) { + throw new Error(`Missing original diagnostic message in ${fileName}.`); + } + + return unwrapQuotedValue(originalMatch[1].trim()); +} + +describe("translator contract", () => { + it("keeps tsErrorMessages.json aligned with the installed TypeScript diagnostics", () => { + const currentDiagnostics = getCurrentDiagnostics(); + const messageDb = tsErrorMessages as Record; + + expect(Object.keys(messageDb)).toHaveLength(currentDiagnostics.length); + + currentDiagnostics.forEach((diagnostic) => { + expect(messageDb[diagnostic.message]).toEqual({ + category: getCategoryName(diagnostic.category), + code: diagnostic.code, + }); + }); + }); + + it("keeps bundleErrors.json complete for all current TypeScript diagnostics", () => { + const currentDiagnostics = getCurrentDiagnostics(); + const diagnosticsByCode = new Map( + currentDiagnostics.map((diagnostic) => [diagnostic.code, diagnostic]) + ); + const bundle = bundleErrors as Record; + const bundleEntries = Object.values(bundle).sort((left, right) => { + return left.code - right.code; + }); + + expect(bundleEntries).toHaveLength(currentDiagnostics.length); + expect(bundleEntries.map((entry) => entry.code)).toEqual( + currentDiagnostics.map((diagnostic) => diagnostic.code) + ); + + bundleEntries.forEach((entry) => { + const diagnostic = diagnosticsByCode.get(entry.code); + expect(diagnostic).toBeDefined(); + expect(entry.body.length).toBeGreaterThan(0); + expect(entry.category).toBe(getCategoryName(diagnostic?.category ?? 1)); + expect(entry.message).toBe(diagnostic?.message); + expect(["curated", "generated"]).toContain(entry.source); + }); + }); + + it("keeps curated translation overrides aligned with current TypeScript messages", async () => { + const currentDiagnostics = new Map( + getCurrentDiagnostics().map((diagnostic) => [diagnostic.code, diagnostic]) + ); + const files = (await readdir(curatedErrorsDir)) + .filter((file) => file.endsWith(".md")) + .sort((left, right) => left.localeCompare(right, "en")); + + for (const fileName of files) { + const code = Number(path.parse(fileName).name); + expect(Number.isInteger(code)).toBe(true); + + const diagnostic = currentDiagnostics.get(code); + expect(diagnostic).toBeDefined(); + + const markdown = await readFile( + path.join(curatedErrorsDir, fileName), + "utf8" + ); + const original = parseOriginalMessage(markdown, fileName); + + expect(original).toBe(diagnostic?.message); + } + }); +}); diff --git a/packages/error-translator/tsconfig.json b/packages/error-translator/tsconfig.json new file mode 100644 index 0000000..6f8e6a1 --- /dev/null +++ b/packages/error-translator/tsconfig.json @@ -0,0 +1,26 @@ +{ + /** + * Root coordination surface for the shared package leaf. + * This file owns references only and does not become the artifact lane itself. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth. + */ + "extends": "../../tsconfig.base.json", + + /** + * The coordination surface owns no files directly. + */ + "files": [], + + /** + * Register the package-artifact surface explicitly. + */ + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] +} diff --git a/packages/error-translator/tsconfig.lib.json b/packages/error-translator/tsconfig.lib.json new file mode 100644 index 0000000..e8c163c --- /dev/null +++ b/packages/error-translator/tsconfig.lib.json @@ -0,0 +1,31 @@ +{ + /** + * Thin buildable shared package leaf for the `@pretty-ts-errors/error-translator` package. + * This file owns only local producer facts and reuses the shared workspace role. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the generic buildable library producer contract instead of + * redefining producer semantics locally. + */ + "extends": "../../tsconfig.lib.base.json", + + "compilerOptions": { + /** + * The artifact leaf alone knows its concrete source root. + */ + "rootDir": "./src", + + /** + * Package artifacts are emitted into the leaf-local distribution lane. + */ + "outDir": "./dist" + }, + + /** + * The artifact lane covers production-facing package sources and generated + * JSON data that belongs to the package contract. + */ + "include": ["src/**/*", "src/generated/**/*.json"] +} diff --git a/packages/error-translator/vendor/matt-pocock/errors/1002.md b/packages/error-translator/vendor/matt-pocock/errors/1002.md new file mode 100644 index 0000000..c579425 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1002.md @@ -0,0 +1,5 @@ +--- +original: 'Unterminated string literal.' +--- + +You've started a string (via a single or double quote) but haven't ended it. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1003.md b/packages/error-translator/vendor/matt-pocock/errors/1003.md new file mode 100644 index 0000000..9fc4892 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1003.md @@ -0,0 +1,5 @@ +--- +original: 'Identifier expected.' +--- + +I was expecting a name but none was provided. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1006.md b/packages/error-translator/vendor/matt-pocock/errors/1006.md new file mode 100644 index 0000000..70043d4 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1006.md @@ -0,0 +1,5 @@ +--- +original: 'A file cannot have a reference to itself.' +--- + +You've got a triple-slash reference inside a file that's referencing itself. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1009.md b/packages/error-translator/vendor/matt-pocock/errors/1009.md new file mode 100644 index 0000000..013842c --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1009.md @@ -0,0 +1,5 @@ +--- +original: 'Trailing comma not allowed.' +--- + +You've added a trailing comma when you're not supposed to add it. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1014.md b/packages/error-translator/vendor/matt-pocock/errors/1014.md new file mode 100644 index 0000000..d49376a --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1014.md @@ -0,0 +1,5 @@ +--- +original: 'A rest parameter must be last in a parameter list.' +--- + +A parameter in a function that starts with `...` must be the last one in the list. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1015.md b/packages/error-translator/vendor/matt-pocock/errors/1015.md new file mode 100644 index 0000000..f4783f0 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1015.md @@ -0,0 +1,5 @@ +--- +original: 'Parameter cannot have question mark and initializer.' +--- + +You can use a question mark or an default value, but not both at once. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1091.md b/packages/error-translator/vendor/matt-pocock/errors/1091.md new file mode 100644 index 0000000..da1fc7b --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1091.md @@ -0,0 +1,5 @@ +--- +original: "Only a single variable declaration is allowed in a 'for...in' statement." +--- + +You can only create a single variable in a 'for...in' statement diff --git a/packages/error-translator/vendor/matt-pocock/errors/1109.md b/packages/error-translator/vendor/matt-pocock/errors/1109.md new file mode 100644 index 0000000..f65f173 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1109.md @@ -0,0 +1,5 @@ +--- +original: 'Expression expected.' +--- + +I am expecting a code that resolves to a value. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1117.md b/packages/error-translator/vendor/matt-pocock/errors/1117.md new file mode 100644 index 0000000..20144b8 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1117.md @@ -0,0 +1,5 @@ +--- +original: 'An object literal cannot have multiple properties with the same name.' +--- + +You can't add the same property multiple times to an object. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1155.md b/packages/error-translator/vendor/matt-pocock/errors/1155.md new file mode 100644 index 0000000..f8b7b3d --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1155.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' declarations must be initialized." +--- + +A `{0}` declaration must be given a value when it is declared. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1163.md b/packages/error-translator/vendor/matt-pocock/errors/1163.md new file mode 100644 index 0000000..1c6bf75 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1163.md @@ -0,0 +1,5 @@ +--- +original: "A 'yield' expression is only allowed in a generator body." +--- + +The `yield` keyword can only be used inside a generator function diff --git a/packages/error-translator/vendor/matt-pocock/errors/1240.md b/packages/error-translator/vendor/matt-pocock/errors/1240.md new file mode 100644 index 0000000..80a5dad --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1240.md @@ -0,0 +1,5 @@ +--- +original: 'Unable to resolve signature of property decorator when called as an expression.' +--- + +You can't use a decorator on an expression, like an arrow function. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1254.md b/packages/error-translator/vendor/matt-pocock/errors/1254.md new file mode 100644 index 0000000..bf508e3 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1254.md @@ -0,0 +1,5 @@ +--- +original: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference." +--- + +You can't use runtime code in a declaration file. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1268.md b/packages/error-translator/vendor/matt-pocock/errors/1268.md new file mode 100644 index 0000000..d4e1493 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1268.md @@ -0,0 +1,5 @@ +--- +original: "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type." +--- + +Objects in TypeScript (and JavaScript!) can only have strings, numbers or symbols as keys. [Template literal types](https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html) are a way of constructing strings. diff --git a/packages/error-translator/vendor/matt-pocock/errors/1313.md b/packages/error-translator/vendor/matt-pocock/errors/1313.md new file mode 100644 index 0000000..56bf834 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1313.md @@ -0,0 +1,5 @@ +--- +original: "The body of an 'if' statement cannot be the empty statement." +--- + +An if statement shouldn't be empty diff --git a/packages/error-translator/vendor/matt-pocock/errors/1434.md b/packages/error-translator/vendor/matt-pocock/errors/1434.md new file mode 100644 index 0000000..03df76c --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/1434.md @@ -0,0 +1,5 @@ +--- +original: 'Unexpected keyword or identifier.' +--- + +There's a syntax error in your code, so I can't tell exactly what's wrong. diff --git a/packages/error-translator/vendor/matt-pocock/errors/17004.md b/packages/error-translator/vendor/matt-pocock/errors/17004.md new file mode 100644 index 0000000..5460eb9 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/17004.md @@ -0,0 +1,5 @@ +--- +original: "Cannot use JSX unless the '--jsx' flag is provided." +--- + +You can't use JSX yet because you haven't added `jsx` to your `tsconfig.json`. [Learn more](https://www.totaltypescript.com/cannot-use-jsx-unless-the-jsx-flag-is-provided). diff --git a/packages/error-translator/vendor/matt-pocock/errors/18004.md b/packages/error-translator/vendor/matt-pocock/errors/18004.md new file mode 100644 index 0000000..9cc8a55 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/18004.md @@ -0,0 +1,5 @@ +--- +original: "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer." +--- + +You're trying to pass '{0}' as a key AND value to this object using a shorthand. You'll need to declare '{0}' as a variable first. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2304.md b/packages/error-translator/vendor/matt-pocock/errors/2304.md new file mode 100644 index 0000000..46d168e --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2304.md @@ -0,0 +1,5 @@ +--- +original: "Cannot find name '{0}'." +--- + +I can't find the variable you're trying to access. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2305.md b/packages/error-translator/vendor/matt-pocock/errors/2305.md new file mode 100644 index 0000000..e64edd1 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2305.md @@ -0,0 +1,5 @@ +--- +original: "Module '{0}' has no exported member '{1}'." +--- + +'{1}' is not one of the things exported from '{0}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2307.md b/packages/error-translator/vendor/matt-pocock/errors/2307.md new file mode 100644 index 0000000..2b5a028 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2307.md @@ -0,0 +1,5 @@ +--- +original: "Cannot find module '{0}' or its corresponding type declarations." +--- + +This could be one of two things - either '{0}' doesn't exist on your file system, or I can't find any type declarations for it. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2312.md b/packages/error-translator/vendor/matt-pocock/errors/2312.md new file mode 100644 index 0000000..009915a --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2312.md @@ -0,0 +1,5 @@ +--- +original: 'An interface can only extend an object type or intersection of object types with statically known members.' +--- + +You might be trying to use an interface to extend a union type. This isn't possible. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2314.md b/packages/error-translator/vendor/matt-pocock/errors/2314.md new file mode 100644 index 0000000..fc56e3a --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2314.md @@ -0,0 +1,5 @@ +--- +original: "Generic type '{0}' requires {1} type argument(s)." +--- + +It looks like '{0}' requires '{1}' type arguments, which means you need to pass them in via a generic. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2322.md b/packages/error-translator/vendor/matt-pocock/errors/2322.md new file mode 100644 index 0000000..73aa84d --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2322.md @@ -0,0 +1,5 @@ +--- +original: "Type '{0}' is not assignable to type '{1}'." +--- + +I was expecting a type matching '{1}', but instead you passed '{0}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2324.md b/packages/error-translator/vendor/matt-pocock/errors/2324.md new file mode 100644 index 0000000..4bd2166 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2324.md @@ -0,0 +1,5 @@ +--- +original: "Property '{0}' is missing in type '{1}'." +--- + +You haven't passed all the required properties to '{1}' - you've missed out '{0}' diff --git a/packages/error-translator/vendor/matt-pocock/errors/2326.md b/packages/error-translator/vendor/matt-pocock/errors/2326.md new file mode 100644 index 0000000..65bf49c --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2326.md @@ -0,0 +1,5 @@ +--- +original: "Types of property '{0}' are incompatible." +--- + +Two similar types have a property '{0}' which is different, making them incompatible. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2327.md b/packages/error-translator/vendor/matt-pocock/errors/2327.md new file mode 100644 index 0000000..7119e02 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2327.md @@ -0,0 +1,5 @@ +--- +original: "Property '{0}' is optional in type '{1}' but required in type '{2}'." +--- + +Property '{0}' in type '{2}' must exist. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2339.md b/packages/error-translator/vendor/matt-pocock/errors/2339.md new file mode 100644 index 0000000..f7e38b6 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2339.md @@ -0,0 +1,5 @@ +--- +original: "Property '{0}' does not exist on type '{1}'." +--- + +You're trying to access '{0}' on an object that doesn't contain it. [Learn more](https://totaltypescript.com/concepts/property-does-not-exist-on-type). diff --git a/packages/error-translator/vendor/matt-pocock/errors/2344.md b/packages/error-translator/vendor/matt-pocock/errors/2344.md new file mode 100644 index 0000000..4318e12 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2344.md @@ -0,0 +1,5 @@ +--- +original: "Type '{0}' does not satisfy the constraint '{1}'." +--- + +You're trying to pass in '{0}' into a slot where I can see only '{1}' can be passed. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2345.md b/packages/error-translator/vendor/matt-pocock/errors/2345.md new file mode 100644 index 0000000..d58e063 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2345.md @@ -0,0 +1,5 @@ +--- +original: "Argument of type '{0}' is not assignable to parameter of type '{1}'." +--- + +I was expecting '{1}', but you passed '{0}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2349.md b/packages/error-translator/vendor/matt-pocock/errors/2349.md new file mode 100644 index 0000000..dcc53b9 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2349.md @@ -0,0 +1,5 @@ +--- +original: 'This expression is not callable.' +--- + +I can't call this expression because I can't call it like a function. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2352.md b/packages/error-translator/vendor/matt-pocock/errors/2352.md new file mode 100644 index 0000000..5f69d81 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2352.md @@ -0,0 +1,5 @@ +--- +original: "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first." +--- + +You can't use 'as' to convert '{0}' into a '{1}' - they don't share enough in common. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2353.md b/packages/error-translator/vendor/matt-pocock/errors/2353.md new file mode 100644 index 0000000..a43ca84 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2353.md @@ -0,0 +1,5 @@ +--- +original: "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'." +--- + +You can't pass property '{0}' to type '{1}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2355.md b/packages/error-translator/vendor/matt-pocock/errors/2355.md new file mode 100644 index 0000000..f2c9881 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2355.md @@ -0,0 +1,5 @@ +--- +original: "A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value." +--- + +This function says it returns a value, but at least one path does not return one. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2365.md b/packages/error-translator/vendor/matt-pocock/errors/2365.md new file mode 100644 index 0000000..54743d3 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2365.md @@ -0,0 +1,5 @@ +--- +original: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." +--- + +You can't use '{0}' on the types '{1}' and '{2}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2393.md b/packages/error-translator/vendor/matt-pocock/errors/2393.md new file mode 100644 index 0000000..65b5627 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2393.md @@ -0,0 +1,5 @@ +--- +original: 'Duplicate function implementation.' +--- + +You've already declared a function with the same name. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2414.md b/packages/error-translator/vendor/matt-pocock/errors/2414.md new file mode 100644 index 0000000..174b9a8 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2414.md @@ -0,0 +1,5 @@ +--- +original: "Class name cannot be '{0}'." +--- + +You can't give a class the name of '{0}' because it's protected by TypeScript. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2451.md b/packages/error-translator/vendor/matt-pocock/errors/2451.md new file mode 100644 index 0000000..9bfa811 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2451.md @@ -0,0 +1,5 @@ +--- +original: "Cannot redeclare block-scoped variable '{0}'." +--- + +'{0}' has already been declared - you can't declare it again. [Learn more](https://www.totaltypescript.com/cannot-redeclare-block-scoped-variable). diff --git a/packages/error-translator/vendor/matt-pocock/errors/2488.md b/packages/error-translator/vendor/matt-pocock/errors/2488.md new file mode 100644 index 0000000..cb4d2c1 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2488.md @@ -0,0 +1,5 @@ +--- +original: "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator." +--- + +Type '{0}' isn't iterable. To make it iterable, add a [`Symbol.iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator) key. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2551.md b/packages/error-translator/vendor/matt-pocock/errors/2551.md new file mode 100644 index 0000000..86d5d56 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2551.md @@ -0,0 +1,5 @@ +--- +original: "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?" +--- + +You're trying to access '{0}' on an object that doesn't contain it. Did you mean '{2}'? diff --git a/packages/error-translator/vendor/matt-pocock/errors/2552.md b/packages/error-translator/vendor/matt-pocock/errors/2552.md new file mode 100644 index 0000000..b31d91b --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2552.md @@ -0,0 +1,5 @@ +--- +original: "Cannot find name '{0}'. Did you mean '{1}'?" +--- + +You are trying to reference a function or variable which I can't find in the current scope. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2554.md b/packages/error-translator/vendor/matt-pocock/errors/2554.md new file mode 100644 index 0000000..f3b64da --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2554.md @@ -0,0 +1,5 @@ +--- +original: 'Expected {0} arguments, but got {1}.' +--- + +The function you're trying to call needs {0} arguments, but you're passing {1}. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2556.md b/packages/error-translator/vendor/matt-pocock/errors/2556.md new file mode 100644 index 0000000..f19df11 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2556.md @@ -0,0 +1,5 @@ +--- +original: 'A spread argument must either have a tuple type or be passed to a rest parameter.' +--- + +You're spreading arguments into a function. To do that, either the argument needs to be a tuple OR the function needs to accept a dynamic number of arguments. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2571.md b/packages/error-translator/vendor/matt-pocock/errors/2571.md new file mode 100644 index 0000000..9a84f74 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2571.md @@ -0,0 +1,5 @@ +--- +original: "Object is of type 'unknown'." +--- + +I don't know what type this object is, so I've defaulted it to 'unknown'. [Learn more](https://www.totaltypescript.com/concepts/object-is-of-type-unknown). diff --git a/packages/error-translator/vendor/matt-pocock/errors/2590.md b/packages/error-translator/vendor/matt-pocock/errors/2590.md new file mode 100644 index 0000000..3e5c665 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2590.md @@ -0,0 +1,5 @@ +--- +original: "Expression produces a union type that is too complex to represent." +--- + +This union type has become so large that TypeScript cannot represent it any more. The usual fix is to simplify the type so it produces fewer possible combinations. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2604.md b/packages/error-translator/vendor/matt-pocock/errors/2604.md new file mode 100644 index 0000000..02a84ca --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2604.md @@ -0,0 +1,5 @@ +--- +original: "JSX element type '{0}' does not have any construct or call signatures." +--- + +'{0}' cannot be used as a JSX component because it isn't a function. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2614.md b/packages/error-translator/vendor/matt-pocock/errors/2614.md new file mode 100644 index 0000000..557c154 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2614.md @@ -0,0 +1,5 @@ +--- +original: "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?" +--- + +'{1}' is not one of the things exported from '{0}'. Did you mean to import '{1}' from '{0}' instead? diff --git a/packages/error-translator/vendor/matt-pocock/errors/2686.md b/packages/error-translator/vendor/matt-pocock/errors/2686.md new file mode 100644 index 0000000..0ee1e87 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2686.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead." +--- + +You might not have configured `jsx` in your `tsconfig.json` correctly. [Learn more](https://www.totaltypescript.com/react-refers-to-a-umd-global). diff --git a/packages/error-translator/vendor/matt-pocock/errors/2722.md b/packages/error-translator/vendor/matt-pocock/errors/2722.md new file mode 100644 index 0000000..ef3287e --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2722.md @@ -0,0 +1,5 @@ +--- +original: "Cannot invoke an object which is possibly 'undefined'." +--- + +This function might be undefined. You'll need to check it's defined before calling it. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2739.md b/packages/error-translator/vendor/matt-pocock/errors/2739.md new file mode 100644 index 0000000..0497cb1 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2739.md @@ -0,0 +1,5 @@ +--- +original: "Type '{0}' is missing the following properties from type '{1}': {2}" +--- + +'{0}' is missing some required properties from type '{1}': {2}. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2741.md b/packages/error-translator/vendor/matt-pocock/errors/2741.md new file mode 100644 index 0000000..874b509 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2741.md @@ -0,0 +1,5 @@ +--- +original: "Property '{0}' is missing in type '{1}' but required in type '{2}'." +--- + +You haven't passed all the required properties to '{2}' - '{1}' is missing the '{0}' property. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2749.md b/packages/error-translator/vendor/matt-pocock/errors/2749.md new file mode 100644 index 0000000..21ea6e6 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2749.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?" +--- + +You're trying to use a JavaScript variable where you should be passing a type. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2761.md b/packages/error-translator/vendor/matt-pocock/errors/2761.md new file mode 100644 index 0000000..62c29db --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2761.md @@ -0,0 +1,5 @@ +--- +original: "Type '{0}' has no construct signatures." +--- + +Type '{0}' is not a class. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2775.md b/packages/error-translator/vendor/matt-pocock/errors/2775.md new file mode 100644 index 0000000..b079f25 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2775.md @@ -0,0 +1,5 @@ +--- +original: 'Assertions require every name in the call target to be declared with an explicit type annotation.' +--- + +You might be using an `asserts` keyword on an arrow function. If you are, change the function to use the `function` keyword. diff --git a/packages/error-translator/vendor/matt-pocock/errors/2783.md b/packages/error-translator/vendor/matt-pocock/errors/2783.md new file mode 100644 index 0000000..5dcc392 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/2783.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' is specified more than once, so this usage will be overwritten." +--- + +'{0}' will be overwritten by the spread. diff --git a/packages/error-translator/vendor/matt-pocock/errors/5075.md b/packages/error-translator/vendor/matt-pocock/errors/5075.md new file mode 100644 index 0000000..3b83e39 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/5075.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'." +--- + +You're passing a type '{0}' into a slot which is too narrow. It could be as wide as anything assignable to '{2}'. diff --git a/packages/error-translator/vendor/matt-pocock/errors/6133.md b/packages/error-translator/vendor/matt-pocock/errors/6133.md new file mode 100644 index 0000000..0f74dd1 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/6133.md @@ -0,0 +1,5 @@ +--- +original: "'{0}' is declared but its value is never read." +--- + +I noticed that '{0}' has been declared, but it's never used in the code. diff --git a/packages/error-translator/vendor/matt-pocock/errors/6142.md b/packages/error-translator/vendor/matt-pocock/errors/6142.md new file mode 100644 index 0000000..02f907c --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/6142.md @@ -0,0 +1,5 @@ +--- +original: "Module '{0}' was resolved to '{1}', but '--jsx' is not set." +--- + +You can't import `.jsx` or `.tsx` files until you set `jsx` in your `tsconfig.json`. diff --git a/packages/error-translator/vendor/matt-pocock/errors/7006.md b/packages/error-translator/vendor/matt-pocock/errors/7006.md new file mode 100644 index 0000000..c7859b0 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/7006.md @@ -0,0 +1,5 @@ +--- +original: "Parameter '{0}' implicitly has an '{1}' type." +--- + +I don't know what type '{0}' is supposed to be, so I've defaulted it to '{1}'. Your `tsconfig.json` file says I should throw an error here. [Learn more](https://www.totaltypescript.com/tutorials/beginners-typescript/beginner-s-typescript-section/implicit-any-type-error). diff --git a/packages/error-translator/vendor/matt-pocock/errors/7026.md b/packages/error-translator/vendor/matt-pocock/errors/7026.md new file mode 100644 index 0000000..5bb2029 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/7026.md @@ -0,0 +1,5 @@ +--- +original: "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists." +--- + +`JSX.IntrinsicElements` has not been declared in the global scope. [Learn more](https://www.totaltypescript.com/what-is-jsx-intrinsicelements). diff --git a/packages/error-translator/vendor/matt-pocock/errors/7053.md b/packages/error-translator/vendor/matt-pocock/errors/7053.md new file mode 100644 index 0000000..f7c28d7 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/7053.md @@ -0,0 +1,5 @@ +--- +original: "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'." +--- + +You can't use '{0}' to index into '{1}'. [This article](https://www.totaltypescript.com/concepts/type-string-cannot-be-used-to-index-type) might help. diff --git a/packages/error-translator/vendor/matt-pocock/errors/7057.md b/packages/error-translator/vendor/matt-pocock/errors/7057.md new file mode 100644 index 0000000..75aaf72 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/7057.md @@ -0,0 +1,5 @@ +--- +original: "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation." +--- + +I don't know enough about your generator function's return type to safely infer here. diff --git a/packages/error-translator/vendor/matt-pocock/errors/7061.md b/packages/error-translator/vendor/matt-pocock/errors/7061.md new file mode 100644 index 0000000..008024a --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/7061.md @@ -0,0 +1,5 @@ +--- +original: 'A mapped type may not declare properties or methods.' +--- + +You're trying to create a mapped type with both static and dynamic properties. diff --git a/packages/error-translator/vendor/matt-pocock/errors/8016.md b/packages/error-translator/vendor/matt-pocock/errors/8016.md new file mode 100644 index 0000000..346f01d --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/8016.md @@ -0,0 +1,5 @@ +--- +original: 'Type assertion expressions can only be used in TypeScript files.' +--- + +You can't use type assertions because this isn't a TypeScript file. diff --git a/packages/error-translator/vendor/matt-pocock/errors/95050.md b/packages/error-translator/vendor/matt-pocock/errors/95050.md new file mode 100644 index 0000000..aceb511 --- /dev/null +++ b/packages/error-translator/vendor/matt-pocock/errors/95050.md @@ -0,0 +1,5 @@ +--- +original: 'Remove unreachable code' +--- + +I've spotted a bit of code that will never be run. diff --git a/packages/error-translator/vitest.config.ts b/packages/error-translator/vitest.config.ts new file mode 100644 index 0000000..38ff83a --- /dev/null +++ b/packages/error-translator/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + environment: "node", + globals: true, + include: ["test/**/*.{test,spec,vitest}.{ts,tsx}"], + }, +}); diff --git a/packages/formatter/README.md b/packages/formatter/README.md index d7a0d0f..0c86309 100644 --- a/packages/formatter/README.md +++ b/packages/formatter/README.md @@ -1,6 +1,6 @@ # Pretty TypeScript Error formatter -The formatting package of [pretty-ts-errors](https://github.com/yoavbls/pretty-ts-errors) +The formatting package of [pretty-ts-errors](https://github.com/CyberT33N/pretty-ts-errors) # Usage diff --git a/packages/formatter/package.json b/packages/formatter/package.json index 043e2b5..aefd94d 100644 --- a/packages/formatter/package.json +++ b/packages/formatter/package.json @@ -1,6 +1,7 @@ { "name": "@pretty-ts-errors/formatter", "version": "0.1.8", + "type": "module", "description": "Pretty TypeScript Errors Formatter", "files": [ "src/**", @@ -8,36 +9,33 @@ ], "main": "./dist/index.js", "types": "./dist/index.d.ts", - "scripts": { - "build": "tsdown src/index.ts --format cjs,esm --dts", - "dev": "tsdown src/index.ts --format cjs,esm --dts --watch", - "lint": "tsc -p . --noEmit", - "test": "vitest run", - "test:watch": "vitest", - "test:coverage": "vitest run --coverage", - "publish": "npm run build && npm publish --access public" + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } }, "repository": { "type": "git", - "url": "git+https://github.com/yoavbls/pretty-ts-errors.git" + "url": "git+https://github.com/CyberT33N/pretty-ts-errors.git" }, "keywords": [ "typescript", "errors" ], - "author": "yoavbls", + "author": "CyberT33N", "license": "MIT", "bugs": { - "url": "https://github.com/yoavbls/pretty-ts-errors/issues" + "url": "https://github.com/CyberT33N/pretty-ts-errors/issues" }, - "homepage": "https://github.com/yoavbls/pretty-ts-errors#readme", + "homepage": "https://github.com/CyberT33N/pretty-ts-errors#readme", "devDependencies": { - "@vitest/coverage-v8": "^4.1.2", - "tsdown": "^0.15.6", - "vitest": "^4.1.2" + "@vitest/coverage-v8": "catalog:", + "vitest": "catalog:" }, "dependencies": { - "@pretty-ts-errors/utils": "*", - "prettier": "^3.6.2" + "@pretty-ts-errors/utils": "workspace:*", + "prettier": "catalog:" } } diff --git a/packages/formatter/project.json b/packages/formatter/project.json new file mode 100644 index 0000000..17134de --- /dev/null +++ b/packages/formatter/project.json @@ -0,0 +1,7 @@ +{ + "name": "@pretty-ts-errors/formatter", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/formatter/src", + "projectType": "library", + "tags": ["scope:packages", "type:library"] +} diff --git a/packages/formatter/src/addMissingParentheses.ts b/packages/formatter/src/addMissingParentheses.ts index fc65a00..7b292c8 100644 --- a/packages/formatter/src/addMissingParentheses.ts +++ b/packages/formatter/src/addMissingParentheses.ts @@ -1,4 +1,4 @@ -import { has, invert, objectKeys } from "@pretty-ts-errors/utils"; +import { has } from "@pretty-ts-errors/utils"; const parentheses = { "(": ")", @@ -6,11 +6,18 @@ const parentheses = { "[": "]", } as const; -const openParentheses = objectKeys(parentheses); -const closeParentheses = Object.values(parentheses); +type OpenParenthesis = keyof typeof parentheses; + +const openParentheses = ["(", "{", "["] as const; +const closeParentheses = [")", "}", "]"] as const; +const invertedParentheses = { + ")": "(", + "}": "{", + "]": "[", +} as const; export function addMissingParentheses(type: string): string { - const openStack: (typeof openParentheses)[number][] = []; + const openStack: OpenParenthesis[] = []; const missingClosingChars: string[] = []; for (const char of type) { @@ -20,7 +27,7 @@ export function addMissingParentheses(type: string): string { const lastOpen = openStack[openStack.length - 1]; if (lastOpen === undefined || parentheses[lastOpen] !== char) { // Add the correct opening character before the current closing character - openStack.push(invert(parentheses)[char]); + openStack.push(invertedParentheses[char]); } else { openStack.pop(); } @@ -29,9 +36,11 @@ export function addMissingParentheses(type: string): string { // Add the missing closing characters at the end of the string while (openStack.length > 0) { - const openChar = openStack.pop()!; - const closingChar = parentheses[openChar]; - missingClosingChars.push(closingChar); + const openChar = openStack.pop(); + if (openChar !== undefined) { + const closingChar = parentheses[openChar]; + missingClosingChars.push(closingChar); + } } let validType = type; diff --git a/packages/formatter/src/errorMessagePrettifier.ts b/packages/formatter/src/errorMessagePrettifier.ts index c64450f..3e8f596 100644 --- a/packages/formatter/src/errorMessagePrettifier.ts +++ b/packages/formatter/src/errorMessagePrettifier.ts @@ -31,10 +31,10 @@ export function createErrorMessagePrettifier( }; } -type Rule = { +interface Rule { pattern: RegExp; - replacer: (...args: any[]) => string | Promise; -}; + replacer: (...args: string[]) => string | Promise; +} function getRules(codeBlock: CodeBlockFn): Rule[] { const formatTypeScriptBlock = (code: string) => codeBlock(code, "typescript"); @@ -85,14 +85,7 @@ function getRules(codeBlock: CodeBlockFn): Rule[] { }, { pattern: /type annotation must be ['“](.*?)['”] or ['“](.*?)['”][.]?/gi, - replacer: async (p1: string, p2: string, p3: string | number) => { - if (typeof p3 === "string") { - const [left, right] = await Promise.all([ - formatTypeBlock(p1, p2, codeBlock), - formatTypeBlock("", p3, codeBlock), - ]); - return `${left} or ${right}`; - } + replacer: async (p1: string, p2: string) => { const [left, right] = await Promise.all([ formatTypeBlock("", p1, codeBlock), formatTypeBlock("", p2, codeBlock), diff --git a/packages/formatter/src/formatTypeWithPrettier.ts b/packages/formatter/src/formatTypeWithPrettier.ts index a1f1bf0..d42d329 100644 --- a/packages/formatter/src/formatTypeWithPrettier.ts +++ b/packages/formatter/src/formatTypeWithPrettier.ts @@ -1,12 +1,14 @@ import { format } from "prettier/standalone"; -import * as parserEstree from "prettier/plugins/estree"; -import * as parserTypescript from "prettier/plugins/typescript"; +import parserEstree from "prettier/plugins/estree"; +import parserTypescript from "prettier/plugins/typescript"; export async function formatTypeWithPrettier(text: string) { return format(text, { plugins: [parserTypescript, parserEstree], parser: "typescript", - printWidth: 60, + printWidth: 48, + tabWidth: 4, + useTabs: false, arrowParens: "avoid", semi: false, singleQuote: false, diff --git a/packages/formatter/test/__snapshots__/formatter.vitest.ts.snap b/packages/formatter/test/__snapshots__/formatter.vitest.ts.snap index 558a9d4..ef76397 100644 --- a/packages/formatter/test/__snapshots__/formatter.vitest.ts.snap +++ b/packages/formatter/test/__snapshots__/formatter.vitest.ts.snap @@ -12,36 +12,36 @@ exports[`formatter > prettifies mock error message: errorWithLongType 1`] = ` "Property \`isFlying\` is missing in type: \`\`\`type { - animal: { - __typename?: "Animal" | undefined - id: string - name: string - age: number - isAlived: boolean - /* 8 more */ - attributes: - | { ...; } - | /* 3 more */ - | { ...; } - } + animal: { + __typename?: "Animal" | undefined + id: string + name: string + age: number + isAlived: boolean + /* 8 more */ + attributes: + | { ...; } + | /* 3 more */ + | { ...; } + } } \`\`\` but required in type: \`\`\`type { - animal: { - __typename?: "Animal" | undefined - id: string - name: string - age: number - isAlived: boolean - isFlying: boolean - /* 8 more */ - attributes: - | { ...; } - | /* 3 more */ - | { ...; } - } + animal: { + __typename?: "Animal" | undefined + id: string + name: string + age: number + isAlived: boolean + isFlying: boolean + /* 8 more */ + attributes: + | { ...; } + | /* 3 more */ + | { ...; } + } } \`\`\` ." @@ -56,48 +56,60 @@ exports[`formatter > prettifies mock error message: errorWithParamsDestructuring "Argument of type: \`\`\`type { - $ref: null - ref: (ref: any) => any - columns: ( - | { label: string; prop: string } - | { - label: string - formatter: ({ ip_type }: any) => any - } - | { - actions: { - label: string - disabled: ({ contract_id }: any) => boolean - handler({ contract_id }: any): void - }[] - } - )[] - /* 4 more */ - load(): Promise<...> + $ref: null + ref: (ref: any) => any + columns: ( + | { label: string; prop: string } + | { + label: string + formatter: ({ + ip_type, + }: any) => any + } + | { + actions: { + label: string + disabled: ({ + contract_id, + }: any) => boolean + handler({ + contract_id, + }: any): void + }[] + } + )[] + /* 4 more */ + load(): Promise<...> } \`\`\` is not assignable to parameter of type \`VTableConfig\`. Property \`data\` is missing in type: \`\`\`type { - $ref: null - ref: (ref: any) => any - columns: ( - | { label: string; prop: string } - | { - label: string - formatter: ({ ip_type }: any) => any - } - | { - actions: { - label: string - disabled: ({ contract_id }: any) => boolean - handler({ contract_id }: any): void - }[] - } - )[] - /* 4 more */ - load(): Promise<...> + $ref: null + ref: (ref: any) => any + columns: ( + | { label: string; prop: string } + | { + label: string + formatter: ({ + ip_type, + }: any) => any + } + | { + actions: { + label: string + disabled: ({ + contract_id, + }: any) => boolean + handler({ + contract_id, + }: any): void + }[] + } + )[] + /* 4 more */ + load(): Promise<...> } \`\`\` but required in type \`VTableConfig\`." @@ -118,19 +130,21 @@ exports[`formatter > prettifies mock error message: errorWithTruncatedType2 1`] "Type: \`\`\`type { - "!top": string[] - "xsl:declaration": { - attrs: { - "default-collation": null - "exclude-result-prefixes": null - "extension-element-prefixes": null - "use-when": null - "xpath-default-namespace": null + "!top": string[] + "xsl:declaration": { + attrs: { + "default-collation": null + "exclude-result-prefixes": null + "extension-element-prefixes": null + "use-when": null + "xpath-default-namespace": null + } + } + "xsl:instruction": { + ...; } - } - "xsl:instruction": { ...; } - /* 49 more */ - "xsl:literal-result-element": {} + /* 49 more */ + "xsl:literal-result-element": {} } \`\`\` is missing the following properties from type \`GraphQLSchema\`:
    • description
    • extensions
    • astNode
    • extensionASTNodes
    and 21 more." @@ -139,14 +153,20 @@ exports[`formatter > prettifies mock error message: errorWithTruncatedType2 1`] exports[`formatter > prettifies mock error message: leftSideAritmeticError 1`] = `"The left-hand side of an arithmetic operation must be of type \`any\`, \`number\`, \`bigint\` or an enum type."`; exports[`formatter > prettifies mock error message: missingPropertyError 1`] = ` -"Property \`user\` is missing in type \`{ person: { username: string; email: string } }\` but required in type: +"Property \`user\` is missing in type: \`\`\`type { - user: { - name: string - email: \`\${string}@\${string}.\${string}\` - age: number - } + person: { username: string; email: string } +} +\`\`\` + but required in type: +\`\`\`type +{ + user: { + name: string + email: \`\${string}@\${string}.\${string}\` + age: number + } } \`\`\` ." @@ -164,17 +184,23 @@ exports[`formatter > prettifies mock error message: ts1360Error 1`] = ` "Property \`a\` is missing in type: \`\`\`type { - b: { name: string; icon: undefined } - c: { name: string; icon: undefined } - d: { name: string; icon: undefined } - e: { name: string; icon: undefined } - f: { ...; } - g: { ...; } - h: ... - ... + b: { name: string; icon: undefined } + c: { name: string; icon: undefined } + d: { name: string; icon: undefined } + e: { name: string; icon: undefined } + f: { ...; } + g: { ...; } + h: ... + ... +} +\`\`\` + but required in type: +\`\`\`type +{ + a: { name: string; icon: undefined } } \`\`\` - but required in type \`{ a: { name: string; icon: undefined } }\`." +." `; exports[`formatter > prettifies mock error message: ts1378Error 1`] = `"Top-level \`await\` expressions are only allowed when the \`module\` option is set to \`es2022\` , \`esnext\` , \`system\` , \`node16\` , or \`nodenext\` , and the \`target\` option is set to \`es2017\` or higher."`; @@ -189,24 +215,32 @@ exports[`formatter > prettifies mock error message: ts2322ErrorWithPrivateProper "Type: \`\`\`type Ref<{ - name: string - readonly type: "json" - mm: (px: T) => T - px: (mm: T) => T - /* 18 more */ - toJson: () => string + name: string + readonly type: "json" + mm: ( + px: T, + ) => T + px: ( + mm: T, + ) => T + /* 18 more */ + toJson: () => string }> \`\`\` is not assignable to type \`Ref\`. Type: \`\`\`type { - name: string - readonly type: "json" - mm: (px: T) => T - px: (mm: T) => T - /* 18 more */ - toJson: () => string + name: string + readonly type: "json" + mm: ( + px: T, + ) => T + px: ( + mm: T, + ) => T + /* 18 more */ + toJson: () => string } \`\`\` is missing the following properties from type \`MpcdiConfiguration\`:
    • ratio
    • #overlaps
    • download
    " diff --git a/packages/formatter/test/errorMessageMocks.ts b/packages/formatter/test/errorMessageMocks.ts index a58a271..40f8702 100644 --- a/packages/formatter/test/errorMessageMocks.ts +++ b/packages/formatter/test/errorMessageMocks.ts @@ -15,7 +15,7 @@ Type '{ person: { 'first-name': string; }; }' is not assignable to type 'string' `; /** - * Formatting error from this issue: https://github.com/yoavbls/pretty-ts-errors/issues/20 + * Formatting error from this issue: https://github.com/CyberT33N/pretty-ts-errors/issues/20 */ export const errorWithMethodsWordInIt = d` The 'this' context of type 'ElementHandle' is not assignable to method's 'this' of type 'ElementHandle'. diff --git a/packages/formatter/test/formatter.vitest.ts b/packages/formatter/test/formatter.vitest.ts index 7266401..98c7ba1 100644 --- a/packages/formatter/test/formatter.vitest.ts +++ b/packages/formatter/test/formatter.vitest.ts @@ -14,7 +14,9 @@ import * as errorMessageMocks from "./errorMessageMocks"; // Simple stub that marks code blocks without any rendering logic const stubCodeBlock: CodeBlockFn = (code, language, multiLine) => { - if (multiLine) return `\n\`\`\`${language}\n${code}\n\`\`\`\n`; + if (multiLine) { + return `\n\`\`\`${language}\n${code}\n\`\`\`\n`; + } return `\`${code}\``; }; @@ -39,6 +41,21 @@ describe("formatter", (context) => { ); }); + it("formats missing-property diagnostics as a structured list", async () => { + const result = await prettifyErrorMessage( + "Type '{ email: \"usr@usr.io\"; }' is missing the following properties from type '{ name: string; email: `${string}@${string}.${string}`; age: number; address: { street: string; city: string; country: string; }; }': name, age, address" + ); + + expect(result).toContain("is missing the following properties from type"); + expect(result).toContain( + "
    • name
    • age
    • address
    " + ); + expect(result).toContain("```type"); + expect(result).toContain("name: string"); + expect(result).toContain("street: string"); + expect(result).toContain("country: string"); + }); + it("prettifies type with params destructuring", async () => { await expect( formatType( @@ -49,6 +66,17 @@ describe("formatter", (context) => { ).resolves.toBeTypeOf("string"); }); + it("formats complex types with stronger wrapping and four-space indentation", async () => { + const formatted = await formatType( + d`{ user: { name: string; email: \`\${string}@\${string}.\${string}\`; age: number; address: { street: string; city: string; country: string; }; }; }`, + { throwOnError: true } + ); + + expect(formatted).toContain("\n user: {\n"); + expect(formatted).toContain("\n name: string\n"); + expect(formatted).toContain("address: {\n"); + }); + it("prettifies truncated type", async () => { await expect( formatType( diff --git a/packages/formatter/tsconfig.json b/packages/formatter/tsconfig.json index b3d6e1a..6f8e6a1 100644 --- a/packages/formatter/tsconfig.json +++ b/packages/formatter/tsconfig.json @@ -1,13 +1,26 @@ { + /** + * Root coordination surface for the shared package leaf. + * This file owns references only and does not become the artifact lane itself. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth. + */ "extends": "../../tsconfig.base.json", - "compilerOptions": { - "noEmit": false, - "outDir": "dist", - "rootDir": "src", - "composite": true, - "declaration": true, - "declarationMap": true - }, - "include": ["src/**/*"], - "references": [{ "path": "../utils" }] + + /** + * The coordination surface owns no files directly. + */ + "files": [], + + /** + * Register the package-artifact surface explicitly. + */ + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] } diff --git a/packages/formatter/tsconfig.lib.json b/packages/formatter/tsconfig.lib.json new file mode 100644 index 0000000..8c6365a --- /dev/null +++ b/packages/formatter/tsconfig.lib.json @@ -0,0 +1,39 @@ +{ + /** + * Thin buildable shared package leaf for the `@pretty-ts-errors/formatter` package. + * This file owns only local producer facts and reuses the shared workspace role. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the generic buildable library producer contract instead of + * redefining producer semantics locally. + */ + "extends": "../../tsconfig.lib.base.json", + + "compilerOptions": { + /** + * The artifact leaf alone knows its concrete source root. + */ + "rootDir": "./src", + + /** + * Package artifacts are emitted into the leaf-local distribution lane. + */ + "outDir": "./dist" + }, + + /** + * The artifact lane covers production-facing package sources only. + */ + "include": ["src/**/*"], + + /** + * Upstream shared package references remain local artifact-lane facts. + */ + "references": [ + { + "path": "../utils/tsconfig.lib.json" + } + ] +} diff --git a/packages/utils/package.json b/packages/utils/package.json index f83004b..6ad6941 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,16 +1,22 @@ { "private": true, "name": "@pretty-ts-errors/utils", + "version": "0.1.0", + "type": "module", "files": [ "dist/**" ], "main": "dist/index.js", "types": "dist/index.d.ts", - "scripts": { - "build": "tsc -p ." + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } }, "devDependencies": {}, "dependencies": { - "ts-dedent": "^2.2.0" + "ts-dedent": "catalog:" } } diff --git a/packages/utils/project.json b/packages/utils/project.json new file mode 100644 index 0000000..f643406 --- /dev/null +++ b/packages/utils/project.json @@ -0,0 +1,7 @@ +{ + "name": "@pretty-ts-errors/utils", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/utils/src", + "projectType": "library", + "tags": ["scope:packages", "type:library"] +} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index c2eb13f..ecd5e75 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,11 +1,5 @@ import dedent from "ts-dedent"; -export function objectKeys>( - obj: T -): (keyof T & string)[] { - return Object.keys(obj) as (keyof T & string)[]; -} - export function invert>( obj: T ): Partial<{ @@ -33,7 +27,9 @@ export const d = dedent; * Check if an array contains a string. * Type guard the string if it does. */ -export const has = ( - array: unknown[], +export function has( + array: readonly T[], item: string -): item is Extract<(typeof array)[number], string> => array.includes(item); +): item is T { + return array.some((value) => value === item); +} diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index fb3babe..6f8e6a1 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -1,12 +1,26 @@ { + /** + * Root coordination surface for the shared package leaf. + * This file owns references only and does not become the artifact lane itself. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth. + */ "extends": "../../tsconfig.base.json", - "compilerOptions": { - "noEmit": false, - "outDir": "dist", - "rootDir": "src", - "composite": true, - "declaration": true, - "declarationMap": true - }, - "include": ["src/**/*"] + + /** + * The coordination surface owns no files directly. + */ + "files": [], + + /** + * Register the package-artifact surface explicitly. + */ + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] } diff --git a/packages/utils/tsconfig.lib.json b/packages/utils/tsconfig.lib.json new file mode 100644 index 0000000..25e0ff1 --- /dev/null +++ b/packages/utils/tsconfig.lib.json @@ -0,0 +1,30 @@ +{ + /** + * Thin buildable shared package leaf for the `@pretty-ts-errors/utils` package. + * This file owns only local producer facts and reuses the shared workspace role. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the generic buildable library producer contract instead of + * redefining producer semantics locally. + */ + "extends": "../../tsconfig.lib.base.json", + + "compilerOptions": { + /** + * The artifact leaf alone knows its concrete source root. + */ + "rootDir": "./src", + + /** + * Package artifacts are emitted into the leaf-local distribution lane. + */ + "outDir": "./dist" + }, + + /** + * The artifact lane covers production-facing package sources only. + */ + "include": ["src/**/*"] +} diff --git a/packages/vscode-formatter/package.json b/packages/vscode-formatter/package.json index acfb152..4220d4e 100644 --- a/packages/vscode-formatter/package.json +++ b/packages/vscode-formatter/package.json @@ -1,6 +1,7 @@ { "name": "@pretty-ts-errors/vscode-formatter", "version": "0.1.0", + "type": "module", "description": "Pretty TypeScript Errors Formatter for VSCode hovers", "files": [ "src/**", @@ -8,38 +9,36 @@ ], "main": "./dist/index.js", "types": "./dist/index.d.ts", - "scripts": { - "build": "tsdown src/index.ts --format cjs,esm --dts", - "dev": "tsdown src/index.ts --format cjs,esm --dts --watch", - "lint": "tsc -p . --noEmit", - "test": "vitest run", - "test:watch": "vitest", - "test:coverage": "vitest run --coverage", - "publish": "npm run build && npm publish --access public" + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } }, "repository": { "type": "git", - "url": "git+https://github.com/yoavbls/pretty-ts-errors.git" + "url": "git+https://github.com/CyberT33N/pretty-ts-errors.git" }, "keywords": [ "typescript", "errors" ], - "author": "yoavbls", + "author": "CyberT33N", "license": "MIT", "bugs": { - "url": "https://github.com/yoavbls/pretty-ts-errors/issues" + "url": "https://github.com/CyberT33N/pretty-ts-errors/issues" }, - "homepage": "https://github.com/yoavbls/pretty-ts-errors#readme", + "homepage": "https://github.com/CyberT33N/pretty-ts-errors#readme", "devDependencies": { - "tsdown": "^0.15.6", - "vitest": "^4.1.2" + "@vitest/coverage-v8": "catalog:", + "vitest": "catalog:" }, "dependencies": { - "@pretty-ts-errors/formatter": "*", - "@pretty-ts-errors/utils": "*", - "lz-string": "^1.5.0", - "vscode-languageserver-types": "^3.17.5", - "vscode-uri": "^3.1.0" + "@pretty-ts-errors/error-translator": "workspace:*", + "@pretty-ts-errors/formatter": "workspace:*", + "@pretty-ts-errors/utils": "workspace:*", + "vscode-languageserver-types": "catalog:", + "vscode-uri": "catalog:" } } diff --git a/packages/vscode-formatter/project.json b/packages/vscode-formatter/project.json new file mode 100644 index 0000000..6252829 --- /dev/null +++ b/packages/vscode-formatter/project.json @@ -0,0 +1,7 @@ +{ + "name": "@pretty-ts-errors/vscode-formatter", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/vscode-formatter/src", + "projectType": "library", + "tags": ["scope:packages", "type:library"] +} diff --git a/packages/vscode-formatter/src/components/actions.ts b/packages/vscode-formatter/src/components/actions.ts index fe713bc..960328f 100644 --- a/packages/vscode-formatter/src/components/actions.ts +++ b/packages/vscode-formatter/src/components/actions.ts @@ -1,4 +1,3 @@ -import { compressToEncodedURIComponent } from "lz-string"; import { Diagnostic, Range } from "vscode-languageserver-types"; import { d } from "@pretty-ts-errors/utils"; @@ -41,12 +40,3 @@ export const copyErrorLink = (message: Diagnostic["message"]) => { `; }; - -export const errorMessageTranslationLink = (message: Diagnostic["message"]) => { - const encodedMessage = compressToEncodedURIComponent(message); - return d /*html*/ ` - - - - `; -}; diff --git a/packages/vscode-formatter/src/format/prettifyDiagnosticForHover.ts b/packages/vscode-formatter/src/format/prettifyDiagnosticForHover.ts index 751538d..6411516 100644 --- a/packages/vscode-formatter/src/format/prettifyDiagnosticForHover.ts +++ b/packages/vscode-formatter/src/format/prettifyDiagnosticForHover.ts @@ -1,45 +1,107 @@ -import { createErrorMessagePrettifier } from "@pretty-ts-errors/formatter"; +import { translateDiagnosticMessage } from "@pretty-ts-errors/error-translator"; import { Diagnostic } from "vscode-languageserver-types"; -import { - divider, - showErrorInSidebarLink, - pinErrorLink, - copyErrorLink, - errorCodeExplanationLink, -} from "../components/actions"; -import { errorTitle } from "../components/errorTitle"; -import { miniLine } from "../components/miniLine"; -import { d } from "@pretty-ts-errors/utils"; -import { embedSymbolLinks } from "./embedSymbolLinks"; -import { identSentences } from "./identSentences"; -import { hoverCodeBlock } from "../components/hoverCodeBlock"; - -const prettifyErrorMessageForHover = - createErrorMessagePrettifier(hoverCodeBlock); +import { URI } from "vscode-uri"; + +function encodeCommandArgs(args: unknown[]): string { + return encodeURIComponent(JSON.stringify(args)); +} + +function buildCommandUri(command: string, args: unknown[]): string { + return `command:${command}?${encodeCommandArgs(args)}`; +} + +function toCommandRange(range: Diagnostic["range"]) { + return { + start: { + line: range.start.line, + character: range.start.character, + }, + end: { + line: range.end.line, + character: range.end.character, + }, + }; +} + +function codeLabel(code: Diagnostic["code"]): string { + return typeof code === "number" ? ` (TS${code})` : ""; +} + +function buildRevealLink(diagnostic: Diagnostic): string | null { + const related = diagnostic.relatedInformation?.[0]; + if ( + related === undefined || + !related.message.includes("is declared here") + ) { + return null; + } + + const args = [ + URI.parse(related.location.uri).toString(), + related.location.range, + ]; + + return `[Go to Symbol](${buildCommandUri( + "prettyTsErrors.revealSelection", + args, + )})`; +} /** * Prettify a diagnostic for display in hover tooltips. - * Uses markdown fenced code blocks (required by VS Code's MarkdownString). + * Uses plain markdown only, so the extension does not need `supportHtml`. */ export async function prettifyDiagnosticForHover( diagnostic: Diagnostic ): Promise { - const newDiagnostic = embedSymbolLinks(diagnostic); - const identedSentences = identSentences(newDiagnostic.message); - const prettifiedMessage = - await prettifyErrorMessageForHover(identedSentences); - - return d /*html*/ ` - ${errorTitle( - newDiagnostic.code, - d`${showErrorInSidebarLink(newDiagnostic.range, diagnostic.message)} ${divider} - ${pinErrorLink(newDiagnostic.range, diagnostic.message)} ${divider} - ${copyErrorLink(newDiagnostic.message)} ${divider} - ${errorCodeExplanationLink(newDiagnostic.code)}`, - miniLine - )} - - ${prettifiedMessage} - - `; + const range = toCommandRange(diagnostic.range); + const commandLinks = [ + `[Show in Sidebar](${buildCommandUri( + "prettyTsErrors.showErrorInSidebar", + [range, diagnostic.message], + )})`, + `[Pin](${buildCommandUri("prettyTsErrors.pinError", [ + range, + diagnostic.message, + ])})`, + `[Copy](${buildCommandUri("prettyTsErrors.copyError", [diagnostic.message])})`, + ]; + + const revealLink = buildRevealLink(diagnostic); + if (revealLink !== null) { + commandLinks.push(revealLink); + } + + if (typeof diagnostic.code === "number") { + commandLinks.push( + `[TS${diagnostic.code} Docs](https://typescript.tv/errors/ts${diagnostic.code})`, + ); + } + + const sections = [ + `**Error${codeLabel(diagnostic.code)}**`, + "", + commandLinks.join(" | "), + "", + "```txt", + diagnostic.message, + "```", + ]; + + const translations = translateDiagnosticMessage(diagnostic.message); + if (translations.length > 0) { + sections.push("", "**Local explanation**"); + + translations.forEach((translation) => { + if (translations.length > 1 || translation.rawError !== diagnostic.message) { + sections.push("", `**TS${translation.code}**`, "", "```txt", translation.rawError, "```"); + } else { + sections.push("", `**TS${translation.code}**`); + } + + sections.push("", translation.body); + }); + } + + return sections.join("\n"); } diff --git a/packages/vscode-formatter/src/format/prettifyDiagnosticForSidebar.ts b/packages/vscode-formatter/src/format/prettifyDiagnosticForSidebar.ts index c384d2b..b476f99 100644 --- a/packages/vscode-formatter/src/format/prettifyDiagnosticForSidebar.ts +++ b/packages/vscode-formatter/src/format/prettifyDiagnosticForSidebar.ts @@ -1,17 +1,18 @@ import { createErrorMessagePrettifier } from "@pretty-ts-errors/formatter"; +import { translateDiagnosticMessage } from "@pretty-ts-errors/error-translator"; import { Diagnostic } from "vscode-languageserver-types"; import { htmlCodeBlock } from "../components/htmlCodeBlock"; import { divider, pinErrorLink, copyErrorLink, - errorMessageTranslationLink, errorCodeExplanationLink, } from "../components/actions"; import { errorTitle } from "../components/errorTitle"; import { d } from "@pretty-ts-errors/utils"; import { embedSymbolLinks } from "./embedSymbolLinks"; import { identSentences } from "./identSentences"; +import { renderPlainEnglishTranslations } from "./renderPlainEnglishTranslations"; const prettifyErrorMessageForSidebar = createErrorMessagePrettifier(htmlCodeBlock); @@ -27,17 +28,19 @@ export async function prettifyDiagnosticForSidebar( const identedSentences = identSentences(newDiagnostic.message); const prettifiedMessage = await prettifyErrorMessageForSidebar(identedSentences); + const translations = translateDiagnosticMessage(diagnostic.message); + const renderedTranslations = renderPlainEnglishTranslations(translations); return d /*html*/ ` ${errorTitle( newDiagnostic.code, d`${pinErrorLink(newDiagnostic.range, diagnostic.message)} ${divider} ${copyErrorLink(newDiagnostic.message)} ${divider} - ${errorMessageTranslationLink(newDiagnostic.message)} ${divider} ${errorCodeExplanationLink(newDiagnostic.code)}` )}
    ${prettifiedMessage}
    + ${renderedTranslations} `; } diff --git a/packages/vscode-formatter/src/format/renderPlainEnglishTranslations.ts b/packages/vscode-formatter/src/format/renderPlainEnglishTranslations.ts new file mode 100644 index 0000000..ddb879e --- /dev/null +++ b/packages/vscode-formatter/src/format/renderPlainEnglishTranslations.ts @@ -0,0 +1,91 @@ +import type { PlainEnglishTranslation } from "@pretty-ts-errors/error-translator"; +import { d } from "@pretty-ts-errors/utils"; + +function escapeHtml(value: string): string { + return value + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} + +function escapeAttribute(value: string): string { + return escapeHtml(value); +} + +function renderInlineMarkdown(text: string): string { + const linkPlaceholders: string[] = []; + const codePlaceholders: string[] = []; + + const withLinks = text.replace( + /\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)/gu, + (_match, label: string, url: string) => { + const placeholder = `__PTE_LINK_${linkPlaceholders.length}__`; + linkPlaceholders.push( + `${escapeHtml(label)}`, + ); + return placeholder; + }, + ); + + const withCode = withLinks.replace(/`([^`]+)`/gu, (_match, code: string) => { + const placeholder = `__PTE_CODE_${codePlaceholders.length}__`; + codePlaceholders.push(`${escapeHtml(code)}`); + return placeholder; + }); + + let rendered = escapeHtml(withCode); + + linkPlaceholders.forEach((html, index) => { + rendered = rendered.replace(`__PTE_LINK_${index}__`, html); + }); + + codePlaceholders.forEach((html, index) => { + rendered = rendered.replace(`__PTE_CODE_${index}__`, html); + }); + + return rendered; +} + +function renderTranslationBody(body: string): string { + return body + .split(/\r?\n\r?\n/u) + .map((paragraph) => { + const renderedParagraph = renderInlineMarkdown(paragraph).replaceAll( + /\r?\n/gu, + "
    ", + ); + return `

    ${renderedParagraph}

    `; + }) + .join(""); +} + +export function renderPlainEnglishTranslations( + translations: readonly PlainEnglishTranslation[], +): string { + if (translations.length === 0) { + return ""; + } + + const cards = translations + .map((translation) => { + const body = renderTranslationBody(translation.body); + + return d /*html*/ ` +
    +
    Local explanation · TS${translation.code}
    +
    + ${body} +
    +
    + `; + }) + .join(""); + + return d /*html*/ ` +
    + ${cards} +
    + `; +} diff --git a/packages/vscode-formatter/tsconfig.json b/packages/vscode-formatter/tsconfig.json index 06afded..6f8e6a1 100644 --- a/packages/vscode-formatter/tsconfig.json +++ b/packages/vscode-formatter/tsconfig.json @@ -1,20 +1,26 @@ { + /** + * Root coordination surface for the shared package leaf. + * This file owns references only and does not become the artifact lane itself. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth. + */ "extends": "../../tsconfig.base.json", - "compilerOptions": { - "noEmit": false, - "outDir": "dist", - "rootDir": "src", - "composite": true, - "declaration": true, - "declarationMap": true - }, - "include": ["src/**/*"], + + /** + * The coordination surface owns no files directly. + */ + "files": [], + + /** + * Register the package-artifact surface explicitly. + */ "references": [ { - "path": "../formatter" - }, - { - "path": "../utils" + "path": "./tsconfig.lib.json" } ] } diff --git a/packages/vscode-formatter/tsconfig.lib.json b/packages/vscode-formatter/tsconfig.lib.json new file mode 100644 index 0000000..9bbbf3d --- /dev/null +++ b/packages/vscode-formatter/tsconfig.lib.json @@ -0,0 +1,45 @@ +{ + /** + * Thin buildable shared package leaf for the `@pretty-ts-errors/vscode-formatter` package. + * This file owns only local producer facts and reuses the shared workspace role. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the generic buildable library producer contract instead of + * redefining producer semantics locally. + */ + "extends": "../../tsconfig.lib.base.json", + + "compilerOptions": { + /** + * The artifact leaf alone knows its concrete source root. + */ + "rootDir": "./src", + + /** + * Package artifacts are emitted into the leaf-local distribution lane. + */ + "outDir": "./dist" + }, + + /** + * The artifact lane covers production-facing package sources only. + */ + "include": ["src/**/*"], + + /** + * Upstream shared package references remain local artifact-lane facts. + */ + "references": [ + { + "path": "../utils/tsconfig.lib.json" + }, + { + "path": "../formatter/tsconfig.lib.json" + }, + { + "path": "../error-translator/tsconfig.lib.json" + } + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..5b4a5b8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,11211 @@ +--- +lockfileVersion: "9.0" + +importers: + .: + configDependencies: {} + packageManagerDependencies: + "@pnpm/exe": + specifier: 11.7.0 + version: 11.7.0 + pnpm: + specifier: 11.7.0 + version: 11.7.0 + +packages: + "@pnpm/exe@11.7.0": + resolution: + { + integrity: sha512-3CujpSSp2PIDE0pwu7mWSdjhdDqaZa7OppVooECWWaNEoA/z66s9FZts1MhDO+2yq1XER4gBHh84DVbFN/r1rA==, + } + hasBin: true + + "@pnpm/linux-arm64@11.7.0": + resolution: + { + integrity: sha512-ANTX2SlMO+d2y/4bYQhHCwHPX7gSSADJ5+pMUIiDFzIsybnFFaJdZboaFfq9NOxCbETcnDxqZ95Rz3+NHx1JIw==, + } + cpu: [arm64] + os: [linux] + + "@pnpm/linux-x64@11.7.0": + resolution: + { + integrity: sha512-fr75tqixXoS8cnA81HQIomjOGEPnsOsd3xCDL5pMNY5raOXbKurtgRV+RjATvjxlJxSLIVFKegABlxAiB7q72A==, + } + cpu: [x64] + os: [linux] + + "@pnpm/linuxstatic-arm64@11.7.0": + resolution: + { + integrity: sha512-Q++pgzvXkGeqnVRl26/uqmpMGdttQus0rGyL3XIfYGLCi8ZfajYUaCKdZID2MH7+CNOuugWDdFDup3r7BR7Rfg==, + } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@pnpm/linuxstatic-x64@11.7.0": + resolution: + { + integrity: sha512-z1+exW6ocU/rmOvJnmU3FUBJYaryCUqFoaXN6KZW5BqTj7BPJb7HJcAyXRlirNZMJlEiUY5rXbfStGPQJhGsVA==, + } + cpu: [x64] + os: [linux] + libc: [musl] + + "@pnpm/macos-arm64@11.7.0": + resolution: + { + integrity: sha512-gD34/k3JT5oab4BYaqrUor3e4VdwXvkfLNlEI+lvDtX1MHT+2Nauc9p9NsQnpn1zE8blQEflzbF8wAUQ6Dmvkw==, + } + cpu: [arm64] + os: [darwin] + + "@pnpm/win-arm64@11.7.0": + resolution: + { + integrity: sha512-hRTcDmm2j7KoRwbqNo0rUAu9A1kVJN98Eob7H09U0uPJbEMax85JGOmERkT3Lf6HjVJuFNBvfaJ3OTI3HmlVGg==, + } + cpu: [arm64] + os: [win32] + + "@pnpm/win-x64@11.7.0": + resolution: + { + integrity: sha512-r/1NuKY7Z+6ZXVIzVrUEMj6TTEBdR63geV4Rlm8HKEhgQTdxyIsJoqV3FJGqoyzbRaScObqAwRfMaK9dskPddQ==, + } + cpu: [x64] + os: [win32] + + "@reflink/reflink-darwin-arm64@0.1.19": + resolution: + { + integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [darwin] + + "@reflink/reflink-darwin-x64@0.1.19": + resolution: + { + integrity: sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [darwin] + + "@reflink/reflink-linux-arm64-gnu@0.1.19": + resolution: + { + integrity: sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@reflink/reflink-linux-arm64-musl@0.1.19": + resolution: + { + integrity: sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@reflink/reflink-linux-x64-gnu@0.1.19": + resolution: + { + integrity: sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@reflink/reflink-linux-x64-musl@0.1.19": + resolution: + { + integrity: sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + libc: [musl] + + "@reflink/reflink-win32-arm64-msvc@0.1.19": + resolution: + { + integrity: sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [win32] + + "@reflink/reflink-win32-x64-msvc@0.1.19": + resolution: + { + integrity: sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [win32] + + "@reflink/reflink@0.1.19": + resolution: + { + integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==, + } + engines: { node: ">= 10" } + + detect-libc@2.1.2: + resolution: + { + integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==, + } + engines: { node: ">=8" } + + pnpm@11.7.0: + resolution: + { + integrity: sha512-GcyFLBIMcSV2DyRD7mvgyltA+fUFmN4aCaHxd1A+AQ5Xwjx3ZG4B52HeWb+HT7IqM5jDOrlpH8E+uUa28PTWIA==, + } + engines: { node: ">=22.13" } + hasBin: true + +snapshots: + "@pnpm/exe@11.7.0": + dependencies: + "@reflink/reflink": 0.1.19 + detect-libc: 2.1.2 + optionalDependencies: + "@pnpm/linux-arm64": 11.7.0 + "@pnpm/linux-x64": 11.7.0 + "@pnpm/linuxstatic-arm64": 11.7.0 + "@pnpm/linuxstatic-x64": 11.7.0 + "@pnpm/macos-arm64": 11.7.0 + "@pnpm/win-arm64": 11.7.0 + "@pnpm/win-x64": 11.7.0 + + "@pnpm/linux-arm64@11.7.0": + optional: true + + "@pnpm/linux-x64@11.7.0": + optional: true + + "@pnpm/linuxstatic-arm64@11.7.0": + optional: true + + "@pnpm/linuxstatic-x64@11.7.0": + optional: true + + "@pnpm/macos-arm64@11.7.0": + optional: true + + "@pnpm/win-arm64@11.7.0": + optional: true + + "@pnpm/win-x64@11.7.0": + optional: true + + "@reflink/reflink-darwin-arm64@0.1.19": + optional: true + + "@reflink/reflink-darwin-x64@0.1.19": + optional: true + + "@reflink/reflink-linux-arm64-gnu@0.1.19": + optional: true + + "@reflink/reflink-linux-arm64-musl@0.1.19": + optional: true + + "@reflink/reflink-linux-x64-gnu@0.1.19": + optional: true + + "@reflink/reflink-linux-x64-musl@0.1.19": + optional: true + + "@reflink/reflink-win32-arm64-msvc@0.1.19": + optional: true + + "@reflink/reflink-win32-x64-msvc@0.1.19": + optional: true + + "@reflink/reflink@0.1.19": + optionalDependencies: + "@reflink/reflink-darwin-arm64": 0.1.19 + "@reflink/reflink-darwin-x64": 0.1.19 + "@reflink/reflink-linux-arm64-gnu": 0.1.19 + "@reflink/reflink-linux-arm64-musl": 0.1.19 + "@reflink/reflink-linux-x64-gnu": 0.1.19 + "@reflink/reflink-linux-x64-musl": 0.1.19 + "@reflink/reflink-win32-arm64-msvc": 0.1.19 + "@reflink/reflink-win32-x64-msvc": 0.1.19 + + detect-libc@2.1.2: {} + + pnpm@11.7.0: {} + +--- +lockfileVersion: "9.0" + +settings: + autoInstallPeers: false + excludeLinksFromLockfile: false + +catalogs: + default: + "@eslint/js": + specifier: 10.0.1 + version: 10.0.1 + "@nx/esbuild": + specifier: 23.0.0 + version: 23.0.0 + "@nx/eslint": + specifier: 23.0.0 + version: 23.0.0 + "@nx/js": + specifier: 23.0.0 + version: 23.0.0 + "@nx/vitest": + specifier: 23.0.0 + version: 23.0.0 + "@nx/web": + specifier: 23.0.0 + version: 23.0.0 + "@shikijs/types": + specifier: 3.13.0 + version: 3.13.0 + "@types/mocha": + specifier: 10.0.10 + version: 10.0.10 + "@types/node": + specifier: 25.9.3 + version: 25.9.3 + "@types/vscode": + specifier: 1.105.0 + version: 1.105.0 + "@types/vscode-webview": + specifier: 1.57.5 + version: 1.57.5 + "@vitest/coverage-v8": + specifier: 4.1.2 + version: 4.1.2 + "@vscode/codicons": + specifier: 0.0.41 + version: 0.0.41 + "@vscode/test-electron": + specifier: 3.0.0 + version: 3.0.0 + "@vscode/vsce": + specifier: 3.9.2 + version: 3.9.2 + esbuild: + specifier: 0.28.1 + version: 0.28.1 + eslint: + specifier: 10.5.0 + version: 10.5.0 + glob: + specifier: 13.0.6 + version: 13.0.6 + globals: + specifier: 16.4.0 + version: 16.4.0 + mocha: + specifier: 12.0.0-beta-10 + version: 12.0.0-beta-10 + nx: + specifier: 23.0.0 + version: 23.0.0 + prettier: + specifier: 3.6.2 + version: 3.6.2 + shiki: + specifier: 3.13.0 + version: 3.13.0 + ts-dedent: + specifier: 2.2.0 + version: 2.2.0 + typescript: + specifier: 6.0.3 + version: 6.0.3 + typescript-eslint: + specifier: 8.61.1 + version: 8.61.1 + vitest: + specifier: 4.1.2 + version: 4.1.2 + vscode-languageclient: + specifier: 10.0.0 + version: 10.0.0 + vscode-languageserver-types: + specifier: 3.17.5 + version: 3.17.5 + vscode-uri: + specifier: 3.1.0 + version: 3.1.0 + yaml: + specifier: 2.9.0 + version: 2.9.0 + +overrides: + parse-semver@1.1.1>semver: 5.7.1 + +importers: + .: + devDependencies: + "@eslint/js": + specifier: "catalog:" + version: 10.0.1(eslint@10.5.0(supports-color@8.1.1)) + "@nx/esbuild": + specifier: "catalog:" + version: 23.0.0(esbuild@0.28.1)(nx@23.0.0) + "@nx/eslint": + specifier: "catalog:" + version: 23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0) + "@nx/js": + specifier: "catalog:" + version: 23.0.0(nx@23.0.0) + "@nx/vitest": + specifier: "catalog:" + version: 23.0.0(@nx/eslint@23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0))(nx@23.0.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0))(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0)) + "@nx/web": + specifier: "catalog:" + version: 23.0.0(@nx/eslint@23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0))(nx@23.0.0)(supports-color@8.1.1) + "@types/node": + specifier: "catalog:" + version: 25.9.3 + "@vitest/coverage-v8": + specifier: "catalog:" + version: 4.1.2(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0)) + eslint: + specifier: "catalog:" + version: 10.5.0(supports-color@8.1.1) + globals: + specifier: "catalog:" + version: 16.4.0 + nx: + specifier: "catalog:" + version: 23.0.0 + prettier: + specifier: "catalog:" + version: 3.6.2 + typescript: + specifier: "catalog:" + version: 6.0.3 + typescript-eslint: + specifier: "catalog:" + version: 8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + + apps/vscode-extension: + dependencies: + "@pretty-ts-errors/error-translator": + specifier: workspace:* + version: link:../../packages/error-translator + "@pretty-ts-errors/formatter": + specifier: workspace:* + version: link:../../packages/formatter + "@pretty-ts-errors/utils": + specifier: workspace:* + version: link:../../packages/utils + shiki: + specifier: "catalog:" + version: 3.13.0 + vscode-languageclient: + specifier: "catalog:" + version: 10.0.0 + devDependencies: + "@shikijs/types": + specifier: "catalog:" + version: 3.13.0 + "@types/mocha": + specifier: "catalog:" + version: 10.0.10 + "@types/node": + specifier: "catalog:" + version: 25.9.3 + "@types/vscode": + specifier: "catalog:" + version: 1.105.0 + "@types/vscode-webview": + specifier: "catalog:" + version: 1.57.5 + "@vscode/codicons": + specifier: "catalog:" + version: 0.0.41 + "@vscode/test-electron": + specifier: "catalog:" + version: 3.0.0 + "@vscode/vsce": + specifier: "catalog:" + version: 3.9.2(supports-color@8.1.1) + esbuild: + specifier: "catalog:" + version: 0.28.1 + glob: + specifier: "catalog:" + version: 13.0.6 + mocha: + specifier: "catalog:" + version: 12.0.0-beta-10 + yaml: + specifier: "catalog:" + version: 2.9.0 + + packages/error-translator: + devDependencies: + vitest: + specifier: "catalog:" + version: 4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + + packages/formatter: + dependencies: + "@pretty-ts-errors/utils": + specifier: workspace:* + version: link:../utils + prettier: + specifier: "catalog:" + version: 3.6.2 + devDependencies: + "@vitest/coverage-v8": + specifier: "catalog:" + version: 4.1.2(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0)) + vitest: + specifier: "catalog:" + version: 4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + + packages/utils: + dependencies: + ts-dedent: + specifier: "catalog:" + version: 2.2.0 + + packages/vscode-formatter: + dependencies: + "@pretty-ts-errors/error-translator": + specifier: workspace:* + version: link:../error-translator + "@pretty-ts-errors/formatter": + specifier: workspace:* + version: link:../formatter + "@pretty-ts-errors/utils": + specifier: workspace:* + version: link:../utils + vscode-languageserver-types: + specifier: "catalog:" + version: 3.17.5 + vscode-uri: + specifier: "catalog:" + version: 3.1.0 + devDependencies: + "@vitest/coverage-v8": + specifier: "catalog:" + version: 4.1.2(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0)) + vitest: + specifier: "catalog:" + version: 4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + +packages: + "@azu/format-text@1.0.2": + resolution: + { + integrity: sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==, + tarball: https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz, + } + + "@azu/style-format@1.0.1": + resolution: + { + integrity: sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==, + tarball: https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz, + } + + "@azure/abort-controller@2.1.2": + resolution: + { + integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==, + tarball: https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz, + } + engines: { node: ">=18.0.0" } + + "@azure/core-auth@1.10.1": + resolution: + { + integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==, + tarball: https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/core-client@1.10.2": + resolution: + { + integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==, + tarball: https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/core-rest-pipeline@1.24.0": + resolution: + { + integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==, + tarball: https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.24.0.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/core-tracing@1.3.1": + resolution: + { + integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==, + tarball: https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/core-util@1.13.1": + resolution: + { + integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==, + tarball: https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/identity@4.13.1": + resolution: + { + integrity: sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==, + tarball: https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/logger@1.3.0": + resolution: + { + integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==, + tarball: https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz, + } + engines: { node: ">=20.0.0" } + + "@azure/msal-browser@5.13.0": + resolution: + { + integrity: sha512-Ea23x0U8XNFY+qJ9T44zO2BbY+AHdb+WdjmYnx36OhJ/KO+PGU5pmsNHf1DCElYX+6wyVRJz1HFeCPC/cHbRug==, + tarball: https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.13.0.tgz, + } + engines: { node: ">=0.8.0" } + + "@azure/msal-common@16.8.0": + resolution: + { + integrity: sha512-5S4RHOcInL2Nu2U217tDZbWGI6StMfcWCrA7TWvWdJmXQ+cYrrIqr84AsN62fGh2MDBysiBJPt6CfWceJfloEA==, + tarball: https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.8.0.tgz, + } + engines: { node: ">=0.8.0" } + + "@azure/msal-node@5.2.4": + resolution: + { + integrity: sha512-rpBUg9dA8UpC2WiFt3KeDKVQmmmVrfxdRnW+F1ebgou/jX/0tAvYuonaq5RUo8OaqzOrj4x/HaI8DmY56RXZ2Q==, + tarball: https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.2.4.tgz, + } + engines: { node: ">=20" } + + "@babel/code-frame@7.29.7": + resolution: + { + integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==, + tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/compat-data@7.29.7": + resolution: + { + integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==, + tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/core@7.29.7": + resolution: + { + integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==, + tarball: https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/generator@7.29.7": + resolution: + { + integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==, + tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-annotate-as-pure@7.29.7": + resolution: + { + integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==, + tarball: https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-compilation-targets@7.29.7": + resolution: + { + integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==, + tarball: https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-create-class-features-plugin@7.29.7": + resolution: + { + integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==, + tarball: https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-create-regexp-features-plugin@7.29.7": + resolution: + { + integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==, + tarball: https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-define-polyfill-provider@0.6.8": + resolution: + { + integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==, + tarball: https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz, + } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + "@babel/helper-globals@7.29.7": + resolution: + { + integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==, + tarball: https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-member-expression-to-functions@7.29.7": + resolution: + { + integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==, + tarball: https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.29.7": + resolution: + { + integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==, + tarball: https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-transforms@7.29.7": + resolution: + { + integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==, + tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-optimise-call-expression@7.29.7": + resolution: + { + integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==, + tarball: https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-plugin-utils@7.29.7": + resolution: + { + integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==, + tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-remap-async-to-generator@7.29.7": + resolution: + { + integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==, + tarball: https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-replace-supers@7.29.7": + resolution: + { + integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==, + tarball: https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/helper-skip-transparent-expression-wrappers@7.29.7": + resolution: + { + integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==, + tarball: https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@7.29.7": + resolution: + { + integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==, + tarball: https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-identifier@7.29.7": + resolution: + { + integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==, + tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-option@7.29.7": + resolution: + { + integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==, + tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-wrap-function@7.29.7": + resolution: + { + integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==, + tarball: https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/helpers@7.29.7": + resolution: + { + integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==, + tarball: https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/parser@7.29.7": + resolution: + { + integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==, + tarball: https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz, + } + engines: { node: ">=6.0.0" } + hasBin: true + + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7": + resolution: + { + integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7": + resolution: + { + integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7": + resolution: + { + integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7": + resolution: + { + integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7": + resolution: + { + integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.13.0 + + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7": + resolution: + { + integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==, + tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-proposal-decorators@7.29.7": + resolution: + { + integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==, + tarball: https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + resolution: + { + integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, + tarball: https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-decorators@7.29.7": + resolution: + { + integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-import-assertions@7.29.7": + resolution: + { + integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-import-attributes@7.29.7": + resolution: + { + integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-jsx@7.29.7": + resolution: + { + integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-typescript@7.29.7": + resolution: + { + integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-unicode-sets-regex@7.18.6": + resolution: + { + integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, + tarball: https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-transform-arrow-functions@7.29.7": + resolution: + { + integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-async-generator-functions@7.29.7": + resolution: + { + integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-async-to-generator@7.29.7": + resolution: + { + integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-block-scoped-functions@7.29.7": + resolution: + { + integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-block-scoping@7.29.7": + resolution: + { + integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-class-properties@7.29.7": + resolution: + { + integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-class-static-block@7.29.7": + resolution: + { + integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.12.0 + + "@babel/plugin-transform-classes@7.29.7": + resolution: + { + integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-computed-properties@7.29.7": + resolution: + { + integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-destructuring@7.29.7": + resolution: + { + integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-dotall-regex@7.29.7": + resolution: + { + integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-duplicate-keys@7.29.7": + resolution: + { + integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7": + resolution: + { + integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-transform-dynamic-import@7.29.7": + resolution: + { + integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-explicit-resource-management@7.29.7": + resolution: + { + integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-exponentiation-operator@7.29.7": + resolution: + { + integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-export-namespace-from@7.29.7": + resolution: + { + integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-for-of@7.29.7": + resolution: + { + integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-function-name@7.29.7": + resolution: + { + integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-json-strings@7.29.7": + resolution: + { + integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-literals@7.29.7": + resolution: + { + integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-logical-assignment-operators@7.29.7": + resolution: + { + integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-member-expression-literals@7.29.7": + resolution: + { + integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-modules-amd@7.29.7": + resolution: + { + integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-modules-commonjs@7.29.7": + resolution: + { + integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-modules-systemjs@7.29.7": + resolution: + { + integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-modules-umd@7.29.7": + resolution: + { + integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-named-capturing-groups-regex@7.29.7": + resolution: + { + integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-transform-new-target@7.29.7": + resolution: + { + integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-nullish-coalescing-operator@7.29.7": + resolution: + { + integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-numeric-separator@7.29.7": + resolution: + { + integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-object-rest-spread@7.29.7": + resolution: + { + integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-object-super@7.29.7": + resolution: + { + integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-optional-catch-binding@7.29.7": + resolution: + { + integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-optional-chaining@7.29.7": + resolution: + { + integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-parameters@7.29.7": + resolution: + { + integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-private-methods@7.29.7": + resolution: + { + integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-private-property-in-object@7.29.7": + resolution: + { + integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-property-literals@7.29.7": + resolution: + { + integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-regenerator@7.29.7": + resolution: + { + integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-regexp-modifiers@7.29.7": + resolution: + { + integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/plugin-transform-reserved-words@7.29.7": + resolution: + { + integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-runtime@7.29.7": + resolution: + { + integrity: sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-shorthand-properties@7.29.7": + resolution: + { + integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-spread@7.29.7": + resolution: + { + integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-sticky-regex@7.29.7": + resolution: + { + integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-template-literals@7.29.7": + resolution: + { + integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-typeof-symbol@7.29.7": + resolution: + { + integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-typescript@7.29.7": + resolution: + { + integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-unicode-escapes@7.29.7": + resolution: + { + integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-unicode-property-regex@7.29.7": + resolution: + { + integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-unicode-regex@7.29.7": + resolution: + { + integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-unicode-sets-regex@7.29.7": + resolution: + { + integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==, + tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + + "@babel/preset-env@7.29.7": + resolution: + { + integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==, + tarball: https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/preset-modules@0.1.6-no-external-plugins": + resolution: + { + integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, + tarball: https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz, + } + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + "@babel/preset-typescript@7.29.7": + resolution: + { + integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==, + tarball: https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + + "@babel/runtime@7.29.7": + resolution: + { + integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==, + tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/template@7.29.7": + resolution: + { + integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==, + tarball: https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/traverse@7.29.7": + resolution: + { + integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==, + tarball: https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@babel/types@7.29.7": + resolution: + { + integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==, + tarball: https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz, + } + engines: { node: ">=6.9.0" } + + "@bcoe/v8-coverage@1.0.2": + resolution: + { + integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==, + tarball: https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz, + } + engines: { node: ">=18" } + + "@emnapi/core@1.10.0": + resolution: + { + integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==, + tarball: https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz, + } + + "@emnapi/core@1.4.5": + resolution: + { + integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==, + tarball: https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz, + } + + "@emnapi/runtime@1.10.0": + resolution: + { + integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==, + tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz, + } + + "@emnapi/runtime@1.4.5": + resolution: + { + integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==, + tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz, + } + + "@emnapi/wasi-threads@1.0.4": + resolution: + { + integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==, + tarball: https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz, + } + + "@emnapi/wasi-threads@1.2.1": + resolution: + { + integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==, + tarball: https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz, + } + + "@esbuild/aix-ppc64@0.28.1": + resolution: + { + integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==, + tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [aix] + + "@esbuild/android-arm64@0.28.1": + resolution: + { + integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==, + tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [android] + + "@esbuild/android-arm@0.28.1": + resolution: + { + integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==, + tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm] + os: [android] + + "@esbuild/android-x64@0.28.1": + resolution: + { + integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==, + tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [android] + + "@esbuild/darwin-arm64@0.28.1": + resolution: + { + integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==, + tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [darwin] + + "@esbuild/darwin-x64@0.28.1": + resolution: + { + integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==, + tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [darwin] + + "@esbuild/freebsd-arm64@0.28.1": + resolution: + { + integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==, + tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [freebsd] + + "@esbuild/freebsd-x64@0.28.1": + resolution: + { + integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==, + tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [freebsd] + + "@esbuild/linux-arm64@0.28.1": + resolution: + { + integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==, + tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [linux] + + "@esbuild/linux-arm@0.28.1": + resolution: + { + integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==, + tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm] + os: [linux] + + "@esbuild/linux-ia32@0.28.1": + resolution: + { + integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==, + tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [linux] + + "@esbuild/linux-loong64@0.28.1": + resolution: + { + integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==, + tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [loong64] + os: [linux] + + "@esbuild/linux-mips64el@0.28.1": + resolution: + { + integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==, + tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [mips64el] + os: [linux] + + "@esbuild/linux-ppc64@0.28.1": + resolution: + { + integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==, + tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [linux] + + "@esbuild/linux-riscv64@0.28.1": + resolution: + { + integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==, + tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [riscv64] + os: [linux] + + "@esbuild/linux-s390x@0.28.1": + resolution: + { + integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==, + tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [s390x] + os: [linux] + + "@esbuild/linux-x64@0.28.1": + resolution: + { + integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==, + tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [linux] + + "@esbuild/netbsd-arm64@0.28.1": + resolution: + { + integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==, + tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [netbsd] + + "@esbuild/netbsd-x64@0.28.1": + resolution: + { + integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==, + tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [netbsd] + + "@esbuild/openbsd-arm64@0.28.1": + resolution: + { + integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==, + tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + + "@esbuild/openbsd-x64@0.28.1": + resolution: + { + integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==, + tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [openbsd] + + "@esbuild/openharmony-arm64@0.28.1": + resolution: + { + integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==, + tarball: https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openharmony] + + "@esbuild/sunos-x64@0.28.1": + resolution: + { + integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==, + tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [sunos] + + "@esbuild/win32-arm64@0.28.1": + resolution: + { + integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==, + tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [win32] + + "@esbuild/win32-ia32@0.28.1": + resolution: + { + integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==, + tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [win32] + + "@esbuild/win32-x64@0.28.1": + resolution: + { + integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==, + tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz, + } + engines: { node: ">=18" } + cpu: [x64] + os: [win32] + + "@eslint-community/eslint-utils@4.9.1": + resolution: + { + integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==, + tarball: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + "@eslint-community/regexpp@4.12.2": + resolution: + { + integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==, + tarball: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + + "@eslint/config-array@0.23.5": + resolution: + { + integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==, + tarball: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + "@eslint/config-helpers@0.6.0": + resolution: + { + integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==, + tarball: https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + "@eslint/core@1.2.1": + resolution: + { + integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==, + tarball: https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + "@eslint/js@10.0.1": + resolution: + { + integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==, + tarball: https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + + "@eslint/object-schema@3.0.5": + resolution: + { + integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==, + tarball: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + "@eslint/plugin-kit@0.7.2": + resolution: + { + integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==, + tarball: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + "@humanfs/core@0.19.2": + resolution: + { + integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==, + tarball: https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz, + } + engines: { node: ">=18.18.0" } + + "@humanfs/node@0.16.8": + resolution: + { + integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==, + tarball: https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz, + } + engines: { node: ">=18.18.0" } + + "@humanfs/types@0.15.0": + resolution: + { + integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==, + tarball: https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz, + } + engines: { node: ">=18.18.0" } + + "@humanwhocodes/module-importer@1.0.1": + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + tarball: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz, + } + engines: { node: ">=12.22" } + + "@humanwhocodes/retry@0.4.3": + resolution: + { + integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==, + tarball: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz, + } + engines: { node: ">=18.18" } + + "@jest/diff-sequences@30.0.1": + resolution: + { + integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==, + tarball: https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + "@jridgewell/gen-mapping@0.3.13": + resolution: + { + integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, + tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz, + } + + "@jridgewell/remapping@2.3.5": + resolution: + { + integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==, + tarball: https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz, + } + + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/sourcemap-codec@1.5.5": + resolution: + { + integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, + tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz, + } + + "@jridgewell/trace-mapping@0.3.31": + resolution: + { + integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, + tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz, + } + + "@napi-rs/wasm-runtime@0.2.4": + resolution: + { + integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==, + tarball: https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz, + } + + "@napi-rs/wasm-runtime@1.1.5": + resolution: + { + integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==, + tarball: https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz, + } + peerDependencies: + "@emnapi/core": ^1.7.1 + "@emnapi/runtime": ^1.7.1 + + "@nodelib/fs.scandir@2.1.5": + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz, + } + engines: { node: ">= 8" } + + "@nodelib/fs.stat@2.0.5": + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + tarball: https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz, + } + engines: { node: ">= 8" } + + "@nodelib/fs.walk@1.2.8": + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz, + } + engines: { node: ">= 8" } + + "@nx/devkit@23.0.0": + resolution: + { + integrity: sha512-AYZWLcgYVQJjhhYwoKWFiu0u4jlrfMM64zarRbpQ7vwXWSJXCMQ2j2w9c5vzTnH3SeWigyyEYRo9xulfNESJ8w==, + tarball: https://registry.npmjs.org/@nx/devkit/-/devkit-23.0.0.tgz, + } + peerDependencies: + nx: ">= 22 <= 24 || ^23.0.0-0" + + "@nx/esbuild@23.0.0": + resolution: + { + integrity: sha512-Du9++ffUggQBxukyGmNhGknUWodUCNbEJ2Exik+7VfHMAOysSwBxOrY23B7Tt9WkHUhoSfsRGHT+8ERTqDBANA==, + tarball: https://registry.npmjs.org/@nx/esbuild/-/esbuild-23.0.0.tgz, + } + peerDependencies: + esbuild: ">=0.19.2 <1.0.0" + peerDependenciesMeta: + esbuild: + optional: true + + "@nx/eslint@23.0.0": + resolution: + { + integrity: sha512-VtV5Xai1MmYV7kxCBX4VplCVG95EYZFyLFgyjSi0jCOa9e28c7W9AqR6kwlSN2OjOuEzIF964k0XQda/seIvbA==, + tarball: https://registry.npmjs.org/@nx/eslint/-/eslint-23.0.0.tgz, + } + peerDependencies: + "@nx/jest": 23.0.0 + "@zkochan/js-yaml": 0.0.7 + eslint: ^8.0.0 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + "@nx/jest": + optional: true + "@zkochan/js-yaml": + optional: true + + "@nx/js@23.0.0": + resolution: + { + integrity: sha512-sngYY03gScPmJFtJ2WGBB1zFyWGgQIWCrNoytJZnJbjjPxw5X5pFxdx7t8z7vXcFNz83CQiT7f8HSnUHDR+/XA==, + tarball: https://registry.npmjs.org/@nx/js/-/js-23.0.0.tgz, + } + peerDependencies: + "@swc/cli": ">=0.6.0 <0.9.0" + verdaccio: ^6.0.5 + peerDependenciesMeta: + "@swc/cli": + optional: true + verdaccio: + optional: true + + "@nx/nx-darwin-arm64@23.0.0": + resolution: + { + integrity: sha512-c/rXP3LYXJLC1F+9KDrWE+n1nkDnTEfHnA1KAK3A/CSk8EfgY0RhekcdbGISrHqgbccdVTBRTNUeTdwD+w23Xw==, + tarball: https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-23.0.0.tgz, + } + cpu: [arm64] + os: [darwin] + + "@nx/nx-darwin-x64@23.0.0": + resolution: + { + integrity: sha512-fb1+s0dASz/a+0Ex3Qdw6Y1NssMZ58f8SyQtnr+c7ITM8Yi5njWfNVZMk1tAnAv7CSFvUvltaYekS88GMQ/8lQ==, + tarball: https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-23.0.0.tgz, + } + cpu: [x64] + os: [darwin] + + "@nx/nx-freebsd-x64@23.0.0": + resolution: + { + integrity: sha512-HYawS59K5IyNu28/0i0ectTAPlyBwPO0vhxw9UMGZ9ni6Yz3WvwPFTGZrWaEVAjGe3pQlQEVVBOr5/0Uw0Sw9A==, + tarball: https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-23.0.0.tgz, + } + cpu: [x64] + os: [freebsd] + + "@nx/nx-linux-arm-gnueabihf@23.0.0": + resolution: + { + integrity: sha512-GSPVEUKL/PUuKCubNcH+QtOJ+4+VFHSpKDMTFFjizTh//d4SunC+DE6vvwRt5bCervohCW2B7BicQc6IP2V51g==, + tarball: https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-23.0.0.tgz, + } + cpu: [arm] + os: [linux] + + "@nx/nx-linux-arm64-gnu@23.0.0": + resolution: + { + integrity: sha512-MkpI1SU+OxJ86SL5XcNJLKXsvnxzDwq4uh7Wbehcs62IWXtyGeuxHo1jYGrobYSV8v9f0Aafp3c2GxSxdZX/9Q==, + tarball: https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-23.0.0.tgz, + } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@nx/nx-linux-arm64-musl@23.0.0": + resolution: + { + integrity: sha512-yASOY5MpsuzHKSF4xRyoVCIWv65GDlVs9VxZ+aZIfw5R9XbPgiaHaHRGlLBAm0j7WFw7wBCOB3WOxBK+wjC3dQ==, + tarball: https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-23.0.0.tgz, + } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@nx/nx-linux-x64-gnu@23.0.0": + resolution: + { + integrity: sha512-HvDP11Ub00C7kAMC7NvX+sbV8wM5j+OjLQalys0wlyqZ+7SL9OulQv/cyMCEHZSKW8YPt4326G0+omulZDwIGg==, + tarball: https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-23.0.0.tgz, + } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@nx/nx-linux-x64-musl@23.0.0": + resolution: + { + integrity: sha512-t1pSyBrxQ0Dly9VzB8WZXhVQMk044P8AyMRRiZ+NOs1pK4eRqVlmJmwJQw3ZfZZYUhA7B02PV8DHOjactctdag==, + tarball: https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-23.0.0.tgz, + } + cpu: [x64] + os: [linux] + libc: [musl] + + "@nx/nx-win32-arm64-msvc@23.0.0": + resolution: + { + integrity: sha512-IKTwZZgejzyUZChQjGss2cCSi2rR0J3FnpyQkjt9I4fFYTNd4YCNs5njovrBjQtVLpi/vv3e96fl3ccjbzIUpA==, + tarball: https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-23.0.0.tgz, + } + cpu: [arm64] + os: [win32] + + "@nx/nx-win32-x64-msvc@23.0.0": + resolution: + { + integrity: sha512-2LSdp8U5gDaXtXbGLiKRdQM0f4yNCaraCpQrz27yjlQbyrULyCiaB00NPBL2JlhH9eQahx/QRyizhkMQ0hzVBA==, + tarball: https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-23.0.0.tgz, + } + cpu: [x64] + os: [win32] + + "@nx/vitest@23.0.0": + resolution: + { + integrity: sha512-Suh0JtRQuQEL1FidEMBUX+Bxy34TYvhD5l87oQjd2TYQhqrMr+2Fcmk/9xN8M/GGeg3BHD/jyMkj9QcHIW3rMw==, + tarball: https://registry.npmjs.org/@nx/vitest/-/vitest-23.0.0.tgz, + } + peerDependencies: + "@nx/eslint": 23.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vitest: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + "@nx/eslint": + optional: true + vite: + optional: true + vitest: + optional: true + + "@nx/web@23.0.0": + resolution: + { + integrity: sha512-NqEII5iVov75yZ3culQdjZYXUmoq+he+unH4HDkpW6HjVZtD1CCC67anSmXz7/TOxkK3M21tgks7bqkGWqvD7g==, + tarball: https://registry.npmjs.org/@nx/web/-/web-23.0.0.tgz, + } + peerDependencies: + "@nx/cypress": 23.0.0 + "@nx/eslint": 23.0.0 + "@nx/jest": 23.0.0 + "@nx/playwright": 23.0.0 + "@nx/vite": 23.0.0 + "@nx/webpack": 23.0.0 + peerDependenciesMeta: + "@nx/cypress": + optional: true + "@nx/eslint": + optional: true + "@nx/jest": + optional: true + "@nx/playwright": + optional: true + "@nx/vite": + optional: true + "@nx/webpack": + optional: true + + "@nx/workspace@23.0.0": + resolution: + { + integrity: sha512-h+Lx5AzLsbnrzv3F3vfqUFmQQginLV/+M/4L2NOwEKeMYNJ4QYDTtgvn0fnJv+qGMWZ4HDScvDNCxVTz8vrhvw==, + tarball: https://registry.npmjs.org/@nx/workspace/-/workspace-23.0.0.tgz, + } + + "@oxc-project/types@0.133.0": + resolution: + { + integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==, + tarball: https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz, + } + + "@phenomnomnominal/tsquery@6.2.0": + resolution: + { + integrity: sha512-Vo9nkhfZxDB/sBiqIY3pjDC4mOSyure+AFlEW5hcy/tRE82MqCXjRN4InnVNMldinRt0dLYqg4HAU2XPq5e1LA==, + tarball: https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-6.2.0.tgz, + } + peerDependencies: + typescript: ">3.0.0" + + "@rolldown/binding-android-arm64@1.0.3": + resolution: + { + integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==, + tarball: https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] + + "@rolldown/binding-darwin-arm64@1.0.3": + resolution: + { + integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==, + tarball: https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] + + "@rolldown/binding-darwin-x64@1.0.3": + resolution: + { + integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==, + tarball: https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] + + "@rolldown/binding-freebsd-x64@1.0.3": + resolution: + { + integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==, + tarball: https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + "@rolldown/binding-linux-arm-gnueabihf@1.0.3": + resolution: + { + integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] + + "@rolldown/binding-linux-arm64-gnu@1.0.3": + resolution: + { + integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-arm64-musl@1.0.3": + resolution: + { + integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] + libc: [musl] + + "@rolldown/binding-linux-ppc64-gnu@1.0.3": + resolution: + { + integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-s390x-gnu@1.0.3": + resolution: + { + integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-x64-gnu@1.0.3": + resolution: + { + integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [glibc] + + "@rolldown/binding-linux-x64-musl@1.0.3": + resolution: + { + integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==, + tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + libc: [musl] + + "@rolldown/binding-openharmony-arm64@1.0.3": + resolution: + { + integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==, + tarball: https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + "@rolldown/binding-wasm32-wasi@1.0.3": + resolution: + { + integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==, + tarball: https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [wasm32] + + "@rolldown/binding-win32-arm64-msvc@1.0.3": + resolution: + { + integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==, + tarball: https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + "@rolldown/binding-win32-x64-msvc@1.0.3": + resolution: + { + integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==, + tarball: https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] + + "@rolldown/pluginutils@1.0.1": + resolution: + { + integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==, + tarball: https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz, + } + + "@secretlint/config-creator@10.2.2": + resolution: + { + integrity: sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==, + tarball: https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/config-loader@10.2.2": + resolution: + { + integrity: sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==, + tarball: https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/core@10.2.2": + resolution: + { + integrity: sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==, + tarball: https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/formatter@10.2.2": + resolution: + { + integrity: sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==, + tarball: https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/node@10.2.2": + resolution: + { + integrity: sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==, + tarball: https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/profiler@10.2.2": + resolution: + { + integrity: sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==, + tarball: https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz, + } + + "@secretlint/resolver@10.2.2": + resolution: + { + integrity: sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==, + tarball: https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz, + } + + "@secretlint/secretlint-formatter-sarif@10.2.2": + resolution: + { + integrity: sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==, + tarball: https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz, + } + + "@secretlint/secretlint-rule-no-dotenv@10.2.2": + resolution: + { + integrity: sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==, + tarball: https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/secretlint-rule-preset-recommend@10.2.2": + resolution: + { + integrity: sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==, + tarball: https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/source-creator@10.2.2": + resolution: + { + integrity: sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==, + tarball: https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@secretlint/types@10.2.2": + resolution: + { + integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==, + tarball: https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + + "@shikijs/core@3.13.0": + resolution: + { + integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==, + tarball: https://registry.npmjs.org/@shikijs/core/-/core-3.13.0.tgz, + } + + "@shikijs/engine-javascript@3.13.0": + resolution: + { + integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==, + tarball: https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.13.0.tgz, + } + + "@shikijs/engine-oniguruma@3.13.0": + resolution: + { + integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==, + tarball: https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.13.0.tgz, + } + + "@shikijs/langs@3.13.0": + resolution: + { + integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==, + tarball: https://registry.npmjs.org/@shikijs/langs/-/langs-3.13.0.tgz, + } + + "@shikijs/themes@3.13.0": + resolution: + { + integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==, + tarball: https://registry.npmjs.org/@shikijs/themes/-/themes-3.13.0.tgz, + } + + "@shikijs/types@3.13.0": + resolution: + { + integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==, + tarball: https://registry.npmjs.org/@shikijs/types/-/types-3.13.0.tgz, + } + + "@shikijs/vscode-textmate@10.0.2": + resolution: + { + integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, + tarball: https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz, + } + + "@sindresorhus/merge-streams@2.3.0": + resolution: + { + integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==, + tarball: https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz, + } + engines: { node: ">=18" } + + "@standard-schema/spec@1.1.0": + resolution: + { + integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==, + tarball: https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz, + } + + "@textlint/ast-node-types@15.7.1": + resolution: + { + integrity: sha512-Wii5UgUKFEh9Uv6wbq1zr4/Kf+dtjiUuzPrrXzKp8H+ifkvKNzi23V4Nz+6wVyHQn5T28AFuc8VH8OtzvGYecA==, + tarball: https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.7.1.tgz, + } + + "@textlint/linter-formatter@15.7.1": + resolution: + { + integrity: sha512-TdwZ/debWYFD05K3CcoHtwvnCrza29wZxD+BjDTk/V5N7iRqkK1dTTHSD4A8AIgROLiDkHJmIKQbasbmsg8AvA==, + tarball: https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.7.1.tgz, + } + + "@textlint/module-interop@15.7.1": + resolution: + { + integrity: sha512-Jg+sQW2L/cRJypk59wtcMUVVpt8vmit5ZMT3gUnFwevP3A6Qp1HfOtUy9ObT4hBX3lOSGT/ekcCDxR1pL7uH1g==, + tarball: https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.7.1.tgz, + } + + "@textlint/resolver@15.7.1": + resolution: + { + integrity: sha512-8XnO0pgF6mXnm41VvWmBbEIdGPhiCUt31uLZkOis1ECeg/1SoUcIT6Mx/F0e1rukq8l0UlOSeY9a31CsvRMK0g==, + tarball: https://registry.npmjs.org/@textlint/resolver/-/resolver-15.7.1.tgz, + } + + "@textlint/types@15.7.1": + resolution: + { + integrity: sha512-Vye/GmFNBTgVzZFtIFJTmLB+s2A7oIADxNG6r9UhfPuY+Czv0z5G3xeyFZZudPlfxURsKUyPIU5XsjOFqVp33A==, + tarball: https://registry.npmjs.org/@textlint/types/-/types-15.7.1.tgz, + } + + "@tybys/wasm-util@0.10.2": + resolution: + { + integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==, + tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz, + } + + "@tybys/wasm-util@0.9.0": + resolution: + { + integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==, + tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz, + } + + "@types/chai@5.2.3": + resolution: + { + integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, + tarball: https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz, + } + + "@types/deep-eql@4.0.2": + resolution: + { + integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==, + tarball: https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz, + } + + "@types/esquery@1.5.4": + resolution: + { + integrity: sha512-yYO4Q8H+KJHKW1rEeSzHxcZi90durqYgWVfnh5K6ZADVBjBv2e1NEveYX5yT2bffgN7RqzH3k9930m+i2yBoMA==, + tarball: https://registry.npmjs.org/@types/esquery/-/esquery-1.5.4.tgz, + } + + "@types/esrecurse@4.3.1": + resolution: + { + integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==, + tarball: https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz, + } + + "@types/estree@1.0.9": + resolution: + { + integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==, + tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz, + } + + "@types/hast@3.0.4": + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + tarball: https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz, + } + + "@types/json-schema@7.0.15": + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz, + } + + "@types/mdast@4.0.4": + resolution: + { + integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, + tarball: https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz, + } + + "@types/mocha@10.0.10": + resolution: + { + integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==, + tarball: https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz, + } + + "@types/node@25.9.3": + resolution: + { + integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==, + tarball: https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz, + } + + "@types/normalize-package-data@2.4.4": + resolution: + { + integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, + tarball: https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz, + } + + "@types/parse-json@4.0.2": + resolution: + { + integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, + tarball: https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz, + } + + "@types/sarif@2.1.7": + resolution: + { + integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==, + tarball: https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz, + } + + "@types/unist@3.0.3": + resolution: + { + integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, + tarball: https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz, + } + + "@types/vscode-webview@1.57.5": + resolution: + { + integrity: sha512-iBAUYNYkz+uk1kdsq05fEcoh8gJmwT3lqqFPN7MGyjQ3HVloViMdo7ZJ8DFIP8WOK74PjOEilosqAyxV2iUFUw==, + tarball: https://registry.npmjs.org/@types/vscode-webview/-/vscode-webview-1.57.5.tgz, + } + + "@types/vscode@1.105.0": + resolution: + { + integrity: sha512-Lotk3CTFlGZN8ray4VxJE7axIyLZZETQJVWi/lYoUVQuqfRxlQhVOfoejsD2V3dVXPSbS15ov5ZyowMAzgUqcw==, + tarball: https://registry.npmjs.org/@types/vscode/-/vscode-1.105.0.tgz, + } + + "@typescript-eslint/eslint-plugin@8.61.1": + resolution: + { + integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==, + tarball: https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + "@typescript-eslint/parser": ^8.61.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/parser@8.61.1": + resolution: + { + integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==, + tarball: https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/project-service@8.61.1": + resolution: + { + integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==, + tarball: https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/scope-manager@8.61.1": + resolution: + { + integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==, + tarball: https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/tsconfig-utils@8.61.1": + resolution: + { + integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==, + tarball: https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/type-utils@8.61.1": + resolution: + { + integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==, + tarball: https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/types@8.61.1": + resolution: + { + integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==, + tarball: https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/typescript-estree@8.61.1": + resolution: + { + integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==, + tarball: https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/utils@8.61.1": + resolution: + { + integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==, + tarball: https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + + "@typescript-eslint/visitor-keys@8.61.1": + resolution: + { + integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==, + tarball: https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typespec/ts-http-runtime@0.3.6": + resolution: + { + integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==, + tarball: https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.6.tgz, + } + engines: { node: ">=20.0.0" } + + "@ungap/structured-clone@1.3.1": + resolution: + { + integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==, + tarball: https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz, + } + + "@vitest/coverage-v8@4.1.2": + resolution: + { + integrity: sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==, + tarball: https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.2.tgz, + } + peerDependencies: + "@vitest/browser": 4.1.2 + vitest: 4.1.2 + peerDependenciesMeta: + "@vitest/browser": + optional: true + + "@vitest/expect@4.1.2": + resolution: + { + integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==, + tarball: https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz, + } + + "@vitest/mocker@4.1.2": + resolution: + { + integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==, + tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz, + } + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + "@vitest/pretty-format@4.1.2": + resolution: + { + integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==, + tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz, + } + + "@vitest/runner@4.1.2": + resolution: + { + integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==, + tarball: https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz, + } + + "@vitest/snapshot@4.1.2": + resolution: + { + integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==, + tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz, + } + + "@vitest/spy@4.1.2": + resolution: + { + integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==, + tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz, + } + + "@vitest/utils@4.1.2": + resolution: + { + integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==, + tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz, + } + + "@vscode/codicons@0.0.41": + resolution: + { + integrity: sha512-v6/8nx76zau3Joxjzi3eN/FVw+7jKBq4j7LTZY5FhFhq2g0OoFebZ3vRZbv/pUopGpbCnJJ4FOz+NzbjVsmoiw==, + tarball: https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.41.tgz, + } + + "@vscode/test-electron@3.0.0": + resolution: + { + integrity: sha512-TY5mC7aAjxSLDXsyjhrG8cJHgc/HLdiE5lvtW7hABYQrY24Qwozzr5UoO3HiuAM4Hzz4b7K/eZlwrCILj94CcA==, + tarball: https://registry.npmjs.org/@vscode/test-electron/-/test-electron-3.0.0.tgz, + } + engines: { node: ">=22" } + + "@vscode/vsce-sign-alpine-arm64@2.0.6": + resolution: + { + integrity: sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz, + } + cpu: [arm64] + os: [alpine] + + "@vscode/vsce-sign-alpine-x64@2.0.6": + resolution: + { + integrity: sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz, + } + cpu: [x64] + os: [alpine] + + "@vscode/vsce-sign-darwin-arm64@2.0.6": + resolution: + { + integrity: sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz, + } + cpu: [arm64] + os: [darwin] + + "@vscode/vsce-sign-darwin-x64@2.0.6": + resolution: + { + integrity: sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz, + } + cpu: [x64] + os: [darwin] + + "@vscode/vsce-sign-linux-arm64@2.0.6": + resolution: + { + integrity: sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz, + } + cpu: [arm64] + os: [linux] + + "@vscode/vsce-sign-linux-arm@2.0.6": + resolution: + { + integrity: sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz, + } + cpu: [arm] + os: [linux] + + "@vscode/vsce-sign-linux-x64@2.0.6": + resolution: + { + integrity: sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz, + } + cpu: [x64] + os: [linux] + + "@vscode/vsce-sign-win32-arm64@2.0.6": + resolution: + { + integrity: sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz, + } + cpu: [arm64] + os: [win32] + + "@vscode/vsce-sign-win32-x64@2.0.6": + resolution: + { + integrity: sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz, + } + cpu: [x64] + os: [win32] + + "@vscode/vsce-sign@2.0.9": + resolution: + { + integrity: sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==, + tarball: https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.9.tgz, + } + + "@vscode/vsce@3.9.2": + resolution: + { + integrity: sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==, + tarball: https://registry.npmjs.org/@vscode/vsce/-/vsce-3.9.2.tgz, + } + engines: { node: ">= 20" } + hasBin: true + + "@yarnpkg/lockfile@1.1.0": + resolution: + { + integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==, + tarball: https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz, + } + + "@zkochan/js-yaml@0.0.7": + resolution: + { + integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==, + tarball: https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz, + } + hasBin: true + + acorn-jsx@5.3.2: + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + tarball: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.17.0: + resolution: + { + integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==, + tarball: https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz, + } + engines: { node: ">=0.4.0" } + hasBin: true + + address@2.0.3: + resolution: + { + integrity: sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA==, + tarball: https://registry.npmjs.org/address/-/address-2.0.3.tgz, + } + engines: { node: ">= 16.0.0" } + + agent-base@7.1.4: + resolution: + { + integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==, + tarball: https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz, + } + engines: { node: ">= 14" } + + ajv@6.15.0: + resolution: + { + integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==, + tarball: https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz, + } + + ajv@8.20.0: + resolution: + { + integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==, + tarball: https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz, + } + + ansi-colors@4.1.3: + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz, + } + engines: { node: ">=6" } + + ansi-escapes@7.3.0: + resolution: + { + integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==, + tarball: https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz, + } + engines: { node: ">=18" } + + ansi-regex@5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz, + } + engines: { node: ">=8" } + + ansi-regex@6.2.2: + resolution: + { + integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==, + tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz, + } + engines: { node: ">=12" } + + ansi-styles@4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz, + } + engines: { node: ">=8" } + + argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz, + } + + assertion-error@2.0.1: + resolution: + { + integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, + tarball: https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz, + } + engines: { node: ">=12" } + + ast-v8-to-istanbul@1.0.4: + resolution: + { + integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==, + tarball: https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.4.tgz, + } + + astral-regex@2.0.0: + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + tarball: https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz, + } + engines: { node: ">=8" } + + async@3.2.6: + resolution: + { + integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==, + tarball: https://registry.npmjs.org/async/-/async-3.2.6.tgz, + } + + asynckit@0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + tarball: https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz, + } + + axios@1.16.0: + resolution: + { + integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==, + tarball: https://registry.npmjs.org/axios/-/axios-1.16.0.tgz, + } + + azure-devops-node-api@12.5.0: + resolution: + { + integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==, + tarball: https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz, + } + + babel-plugin-const-enum@1.2.0: + resolution: + { + integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==, + tarball: https://registry.npmjs.org/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + + babel-plugin-macros@3.1.0: + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + tarball: https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz, + } + engines: { node: ">=10", npm: ">=6" } + + babel-plugin-polyfill-corejs2@0.4.17: + resolution: + { + integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==, + tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz, + } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.13.0: + resolution: + { + integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==, + tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz, + } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.14.2: + resolution: + { + integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==, + tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz, + } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.8: + resolution: + { + integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==, + tarball: https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz, + } + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-transform-typescript-metadata@0.3.2: + resolution: + { + integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==, + tarball: https://registry.npmjs.org/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.2.tgz, + } + + balanced-match@4.0.3: + resolution: + { + integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==, + tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz, + } + engines: { node: 20 || >=22 } + + base64-js@1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + tarball: https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz, + } + + baseline-browser-mapping@2.10.37: + resolution: + { + integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==, + tarball: https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.37.tgz, + } + engines: { node: ">=6.0.0" } + hasBin: true + + basic-auth@2.0.1: + resolution: + { + integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, + tarball: https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz, + } + engines: { node: ">= 0.8" } + + binaryextensions@6.11.0: + resolution: + { + integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==, + tarball: https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz, + } + engines: { node: ">=4" } + + bl@4.1.0: + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + tarball: https://registry.npmjs.org/bl/-/bl-4.1.0.tgz, + } + + boolbase@1.0.0: + resolution: + { + integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, + tarball: https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz, + } + + boundary@2.0.0: + resolution: + { + integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==, + tarball: https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz, + } + + brace-expansion@5.0.6: + resolution: + { + integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==, + tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz, + } + engines: { node: 18 || 20 || >=22 } + + braces@3.0.3: + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + tarball: https://registry.npmjs.org/braces/-/braces-3.0.3.tgz, + } + engines: { node: ">=8" } + + browser-stdout@1.3.1: + resolution: + { + integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==, + tarball: https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz, + } + + browserslist@4.28.2: + resolution: + { + integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==, + tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + + buffer-crc32@0.2.13: + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + tarball: https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz, + } + + buffer-equal-constant-time@1.0.1: + resolution: + { + integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, + tarball: https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz, + } + + buffer-from@1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz, + } + + buffer@5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + tarball: https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz, + } + + bundle-name@4.1.0: + resolution: + { + integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, + tarball: https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz, + } + engines: { node: ">=18" } + + call-bind-apply-helpers@1.0.2: + resolution: + { + integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, + tarball: https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz, + } + engines: { node: ">= 0.4" } + + call-bound@1.0.4: + resolution: + { + integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, + tarball: https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz, + } + engines: { node: ">= 0.4" } + + callsites@3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + tarball: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz, + } + engines: { node: ">=6" } + + camelcase@6.3.0: + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + tarball: https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz, + } + engines: { node: ">=10" } + + caniuse-lite@1.0.30001799: + resolution: + { + integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==, + tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz, + } + + ccount@2.0.1: + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + tarball: https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz, + } + + chai@6.2.2: + resolution: + { + integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==, + tarball: https://registry.npmjs.org/chai/-/chai-6.2.2.tgz, + } + engines: { node: ">=18" } + + chalk@4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz, + } + engines: { node: ">=10" } + + chalk@5.6.2: + resolution: + { + integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==, + tarball: https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + + character-entities-html4@2.1.0: + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + tarball: https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz, + } + + character-entities-legacy@3.0.0: + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + tarball: https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz, + } + + cheerio-select@2.1.0: + resolution: + { + integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, + tarball: https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz, + } + + cheerio@1.2.0: + resolution: + { + integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==, + tarball: https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz, + } + engines: { node: ">=20.18.1" } + + chokidar@5.0.0: + resolution: + { + integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==, + tarball: https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz, + } + engines: { node: ">= 20.19.0" } + + chownr@1.1.4: + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + tarball: https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz, + } + + cli-cursor@3.1.0: + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + tarball: https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz, + } + engines: { node: ">=8" } + + cli-cursor@5.0.0: + resolution: + { + integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==, + tarball: https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz, + } + engines: { node: ">=18" } + + cli-spinners@2.6.1: + resolution: + { + integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==, + tarball: https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz, + } + engines: { node: ">=6" } + + cli-spinners@2.9.2: + resolution: + { + integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, + tarball: https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz, + } + engines: { node: ">=6" } + + cliui@8.0.1: + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + tarball: https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz, + } + engines: { node: ">=12" } + + clone@1.0.4: + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + tarball: https://registry.npmjs.org/clone/-/clone-1.0.4.tgz, + } + engines: { node: ">=0.8" } + + cockatiel@3.2.1: + resolution: + { + integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==, + tarball: https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz, + } + engines: { node: ">=16" } + + color-convert@2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz, + } + engines: { node: ">=7.0.0" } + + color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz, + } + + columnify@1.6.0: + resolution: + { + integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==, + tarball: https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz, + } + engines: { node: ">=8.0.0" } + + combined-stream@1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + tarball: https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz, + } + engines: { node: ">= 0.8" } + + comma-separated-tokens@2.0.3: + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + tarball: https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz, + } + + commander@12.1.0: + resolution: + { + integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==, + tarball: https://registry.npmjs.org/commander/-/commander-12.1.0.tgz, + } + engines: { node: ">=18" } + + convert-source-map@2.0.0: + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + tarball: https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz, + } + + core-js-compat@3.49.0: + resolution: + { + integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==, + tarball: https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz, + } + + core-util-is@1.0.3: + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + tarball: https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz, + } + + corser@2.0.1: + resolution: + { + integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==, + tarball: https://registry.npmjs.org/corser/-/corser-2.0.1.tgz, + } + engines: { node: ">= 0.4.0" } + + cosmiconfig@7.1.0: + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + tarball: https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz, + } + engines: { node: ">=10" } + + cross-spawn@7.0.6: + resolution: + { + integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, + tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz, + } + engines: { node: ">= 8" } + + css-select@5.2.2: + resolution: + { + integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==, + tarball: https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz, + } + + css-what@6.2.2: + resolution: + { + integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==, + tarball: https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz, + } + engines: { node: ">= 6" } + + debug@4.4.3: + resolution: + { + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, + tarball: https://registry.npmjs.org/debug/-/debug-4.4.3.tgz, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@4.0.0: + resolution: + { + integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==, + tarball: https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz, + } + engines: { node: ">=10" } + + decompress-response@6.0.0: + resolution: + { + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, + tarball: https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz, + } + engines: { node: ">=10" } + + deep-extend@0.6.0: + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + tarball: https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz, + } + engines: { node: ">=4.0.0" } + + deep-is@0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz, + } + + default-browser-id@5.0.1: + resolution: + { + integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==, + tarball: https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz, + } + engines: { node: ">=18" } + + default-browser@5.5.0: + resolution: + { + integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==, + tarball: https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz, + } + engines: { node: ">=18" } + + defaults@1.0.4: + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + tarball: https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz, + } + + define-lazy-prop@2.0.0: + resolution: + { + integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, + tarball: https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz, + } + engines: { node: ">=8" } + + define-lazy-prop@3.0.0: + resolution: + { + integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, + tarball: https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz, + } + engines: { node: ">=12" } + + delayed-stream@1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz, + } + engines: { node: ">=0.4.0" } + + dequal@2.0.3: + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + tarball: https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz, + } + engines: { node: ">=6" } + + detect-libc@2.1.2: + resolution: + { + integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==, + tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz, + } + engines: { node: ">=8" } + + detect-port@2.1.0: + resolution: + { + integrity: sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q==, + tarball: https://registry.npmjs.org/detect-port/-/detect-port-2.1.0.tgz, + } + engines: { node: ">= 16.0.0" } + hasBin: true + + devlop@1.1.0: + resolution: + { + integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, + tarball: https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz, + } + + diff@8.0.4: + resolution: + { + integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==, + tarball: https://registry.npmjs.org/diff/-/diff-8.0.4.tgz, + } + engines: { node: ">=0.3.1" } + + dom-serializer@2.0.0: + resolution: + { + integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, + tarball: https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz, + } + + domelementtype@2.3.0: + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + tarball: https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz, + } + + domhandler@5.0.3: + resolution: + { + integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, + tarball: https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz, + } + engines: { node: ">= 4" } + + domutils@3.2.2: + resolution: + { + integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==, + tarball: https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz, + } + + dotenv-expand@12.0.3: + resolution: + { + integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==, + tarball: https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz, + } + engines: { node: ">=12" } + + dotenv@16.4.7: + resolution: + { + integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==, + tarball: https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz, + } + engines: { node: ">=12" } + + dunder-proto@1.0.1: + resolution: + { + integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, + tarball: https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz, + } + engines: { node: ">= 0.4" } + + ecdsa-sig-formatter@1.0.11: + resolution: + { + integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, + tarball: https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz, + } + + editions@6.22.0: + resolution: + { + integrity: sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==, + tarball: https://registry.npmjs.org/editions/-/editions-6.22.0.tgz, + } + engines: { ecmascript: ">= es5", node: ">=4" } + + ejs@5.0.1: + resolution: + { + integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==, + tarball: https://registry.npmjs.org/ejs/-/ejs-5.0.1.tgz, + } + engines: { node: ">=0.12.18" } + hasBin: true + + electron-to-chromium@1.5.373: + resolution: + { + integrity: sha512-G2Hym8JIf/QreuseqkDibgH8Ci8KfJzqGDKdakbhSx9UltwRBH2cBLAWU/lBX0sCdv0TlhyxQyDCnSfxgMWsjA==, + tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.373.tgz, + } + + emoji-regex@10.6.0: + resolution: + { + integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==, + tarball: https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz, + } + + emoji-regex@8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + tarball: https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz, + } + + encoding-sniffer@0.2.1: + resolution: + { + integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==, + tarball: https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz, + } + + end-of-stream@1.4.5: + resolution: + { + integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==, + tarball: https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz, + } + + enquirer@2.3.6: + resolution: + { + integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, + tarball: https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz, + } + engines: { node: ">=8.6" } + + entities@4.5.0: + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz, + } + engines: { node: ">=0.12" } + + entities@6.0.1: + resolution: + { + integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==, + tarball: https://registry.npmjs.org/entities/-/entities-6.0.1.tgz, + } + engines: { node: ">=0.12" } + + entities@7.0.1: + resolution: + { + integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==, + tarball: https://registry.npmjs.org/entities/-/entities-7.0.1.tgz, + } + engines: { node: ">=0.12" } + + environment@1.1.0: + resolution: + { + integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==, + tarball: https://registry.npmjs.org/environment/-/environment-1.1.0.tgz, + } + engines: { node: ">=18" } + + error-ex@1.3.4: + resolution: + { + integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==, + tarball: https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz, + } + + es-define-property@1.0.1: + resolution: + { + integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, + tarball: https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz, + } + engines: { node: ">= 0.4" } + + es-errors@1.3.0: + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + tarball: https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz, + } + engines: { node: ">= 0.4" } + + es-module-lexer@2.1.0: + resolution: + { + integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==, + tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz, + } + + es-object-atoms@1.1.1: + resolution: + { + integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, + tarball: https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz, + } + engines: { node: ">= 0.4" } + + es-set-tostringtag@2.1.0: + resolution: + { + integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, + tarball: https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz, + } + engines: { node: ">= 0.4" } + + esbuild@0.28.1: + resolution: + { + integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==, + tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz, + } + engines: { node: ">=18" } + hasBin: true + + escalade@3.2.0: + resolution: + { + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + tarball: https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz, + } + engines: { node: ">=6" } + + escape-string-regexp@1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz, + } + engines: { node: ">=0.8.0" } + + escape-string-regexp@4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz, + } + engines: { node: ">=10" } + + eslint-scope@9.1.2: + resolution: + { + integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==, + tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + eslint-visitor-keys@3.4.3: + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + eslint-visitor-keys@5.0.1: + resolution: + { + integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==, + tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + eslint@10.5.0: + resolution: + { + integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==, + tarball: https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + hasBin: true + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + + espree@11.2.0: + resolution: + { + integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==, + tarball: https://registry.npmjs.org/espree/-/espree-11.2.0.tgz, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + esquery@1.7.0: + resolution: + { + integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==, + tarball: https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz, + } + engines: { node: ">=0.10" } + + esrecurse@4.3.0: + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz, + } + engines: { node: ">=4.0" } + + estraverse@5.3.0: + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz, + } + engines: { node: ">=4.0" } + + estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz, + } + + esutils@2.0.3: + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz, + } + engines: { node: ">=0.10.0" } + + eventemitter3@4.0.7: + resolution: + { + integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, + tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz, + } + + expand-template@2.0.3: + resolution: + { + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, + tarball: https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz, + } + engines: { node: ">=6" } + + expect-type@1.3.0: + resolution: + { + integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==, + tarball: https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz, + } + engines: { node: ">=12.0.0" } + + fast-deep-equal@3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz, + } + + fast-glob@3.3.3: + resolution: + { + integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, + tarball: https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz, + } + engines: { node: ">=8.6.0" } + + fast-json-stable-stringify@2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz, + } + + fast-levenshtein@2.0.6: + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz, + } + + fast-uri@3.1.2: + resolution: + { + integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==, + tarball: https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz, + } + + fastq@1.20.1: + resolution: + { + integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==, + tarball: https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz, + } + + fdir@6.5.0: + resolution: + { + integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, + tarball: https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz, + } + engines: { node: ">=12.0.0" } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + figures@3.2.0: + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + tarball: https://registry.npmjs.org/figures/-/figures-3.2.0.tgz, + } + engines: { node: ">=8" } + + file-entry-cache@8.0.0: + resolution: + { + integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==, + tarball: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz, + } + engines: { node: ">=16.0.0" } + + fill-range@7.1.1: + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz, + } + engines: { node: ">=8" } + + find-up@5.0.0: + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + tarball: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz, + } + engines: { node: ">=10" } + + flat-cache@4.0.1: + resolution: + { + integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==, + tarball: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz, + } + engines: { node: ">=16" } + + flat@5.0.2: + resolution: + { + integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, + tarball: https://registry.npmjs.org/flat/-/flat-5.0.2.tgz, + } + hasBin: true + + flatted@3.4.2: + resolution: + { + integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==, + tarball: https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz, + } + + follow-redirects@1.16.0: + resolution: + { + integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==, + tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz, + } + engines: { node: ">=4.0" } + peerDependencies: + debug: "*" + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.5: + resolution: + { + integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==, + tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz, + } + engines: { node: ">= 6" } + + fs-constants@1.0.0: + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + tarball: https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz, + } + + fs-extra@11.3.5: + resolution: + { + integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==, + tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz, + } + engines: { node: ">=14.14" } + + fsevents@2.3.3: + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + + function-bind@1.1.2: + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz, + } + + gensync@1.0.0-beta.2: + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + tarball: https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz, + } + engines: { node: ">=6.9.0" } + + get-caller-file@2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + tarball: https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz, + } + engines: { node: 6.* || 8.* || >= 10.* } + + get-east-asian-width@1.6.0: + resolution: + { + integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==, + tarball: https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz, + } + engines: { node: ">=18" } + + get-intrinsic@1.3.0: + resolution: + { + integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, + tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz, + } + engines: { node: ">= 0.4" } + + get-proto@1.0.1: + resolution: + { + integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, + tarball: https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz, + } + engines: { node: ">= 0.4" } + + github-from-package@0.0.0: + resolution: + { + integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, + tarball: https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz, + } + + glob-parent@5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz, + } + engines: { node: ">= 6" } + + glob-parent@6.0.2: + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz, + } + engines: { node: ">=10.13.0" } + + glob@13.0.6: + resolution: + { + integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==, + tarball: https://registry.npmjs.org/glob/-/glob-13.0.6.tgz, + } + engines: { node: 18 || 20 || >=22 } + + globals@16.4.0: + resolution: + { + integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==, + tarball: https://registry.npmjs.org/globals/-/globals-16.4.0.tgz, + } + engines: { node: ">=18" } + + globby@14.1.0: + resolution: + { + integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==, + tarball: https://registry.npmjs.org/globby/-/globby-14.1.0.tgz, + } + engines: { node: ">=18" } + + gopd@1.2.0: + resolution: + { + integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, + tarball: https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz, + } + engines: { node: ">= 0.4" } + + graceful-fs@4.2.11: + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz, + } + + has-flag@4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz, + } + engines: { node: ">=8" } + + has-symbols@1.1.0: + resolution: + { + integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, + tarball: https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz, + } + engines: { node: ">= 0.4" } + + has-tostringtag@1.0.2: + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + tarball: https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz, + } + engines: { node: ">= 0.4" } + + hasown@2.0.2: + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz, + } + engines: { node: ">= 0.4" } + + hasown@2.0.4: + resolution: + { + integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==, + tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz, + } + engines: { node: ">= 0.4" } + + hast-util-to-html@9.0.5: + resolution: + { + integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==, + tarball: https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz, + } + + hast-util-whitespace@3.0.0: + resolution: + { + integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, + tarball: https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz, + } + + he@1.2.0: + resolution: + { + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, + tarball: https://registry.npmjs.org/he/-/he-1.2.0.tgz, + } + hasBin: true + + hosted-git-info@4.1.0: + resolution: + { + integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, + tarball: https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz, + } + engines: { node: ">=10" } + + hosted-git-info@7.0.2: + resolution: + { + integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==, + tarball: https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz, + } + engines: { node: ^16.14.0 || >=18.0.0 } + + html-encoding-sniffer@3.0.0: + resolution: + { + integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, + tarball: https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz, + } + engines: { node: ">=12" } + + html-escaper@2.0.2: + resolution: + { + integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, + tarball: https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz, + } + + html-void-elements@3.0.0: + resolution: + { + integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, + tarball: https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz, + } + + htmlparser2@10.1.0: + resolution: + { + integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==, + tarball: https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz, + } + + http-proxy-agent@7.0.2: + resolution: + { + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, + tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz, + } + engines: { node: ">= 14" } + + http-proxy@1.18.1: + resolution: + { + integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, + tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz, + } + engines: { node: ">=8.0.0" } + + http-server@14.1.1: + resolution: + { + integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==, + tarball: https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz, + } + engines: { node: ">=12" } + hasBin: true + + https-proxy-agent@7.0.6: + resolution: + { + integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, + tarball: https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz, + } + engines: { node: ">= 14" } + + iconv-lite@0.6.3: + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz, + } + engines: { node: ">=0.10.0" } + + ieee754@1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + tarball: https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz, + } + + ignore@5.3.2: + resolution: + { + integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, + tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz, + } + engines: { node: ">= 4" } + + ignore@7.0.5: + resolution: + { + integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==, + tarball: https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz, + } + engines: { node: ">= 4" } + + immediate@3.0.6: + resolution: + { + integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, + tarball: https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz, + } + + import-fresh@3.3.1: + resolution: + { + integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, + tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz, + } + engines: { node: ">=6" } + + imurmurhash@0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + tarball: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz, + } + engines: { node: ">=0.8.19" } + + index-to-position@1.2.0: + resolution: + { + integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==, + tarball: https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz, + } + engines: { node: ">=18" } + + inherits@2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz, + } + + ini@1.3.8: + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + tarball: https://registry.npmjs.org/ini/-/ini-1.3.8.tgz, + } + + is-arrayish@0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + tarball: https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz, + } + + is-core-module@2.16.2: + resolution: + { + integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==, + tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz, + } + engines: { node: ">= 0.4" } + + is-docker@2.2.1: + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + tarball: https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz, + } + engines: { node: ">=8" } + hasBin: true + + is-docker@3.0.0: + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + tarball: https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + hasBin: true + + is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz, + } + engines: { node: ">=0.10.0" } + + is-fullwidth-code-point@3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz, + } + engines: { node: ">=8" } + + is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz, + } + engines: { node: ">=0.10.0" } + + is-inside-container@1.0.0: + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + tarball: https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz, + } + engines: { node: ">=14.16" } + hasBin: true + + is-interactive@1.0.0: + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + tarball: https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz, + } + engines: { node: ">=8" } + + is-interactive@2.0.0: + resolution: + { + integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==, + tarball: https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz, + } + engines: { node: ">=12" } + + is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz, + } + engines: { node: ">=0.12.0" } + + is-path-inside@3.0.3: + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + tarball: https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz, + } + engines: { node: ">=8" } + + is-plain-obj@2.1.0: + resolution: + { + integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==, + tarball: https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz, + } + engines: { node: ">=8" } + + is-unicode-supported@0.1.0: + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + tarball: https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz, + } + engines: { node: ">=10" } + + is-unicode-supported@1.3.0: + resolution: + { + integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==, + tarball: https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz, + } + engines: { node: ">=12" } + + is-unicode-supported@2.1.0: + resolution: + { + integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==, + tarball: https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz, + } + engines: { node: ">=18" } + + is-wsl@2.2.0: + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz, + } + engines: { node: ">=8" } + + is-wsl@3.1.1: + resolution: + { + integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==, + tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz, + } + engines: { node: ">=16" } + + isarray@1.0.0: + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + tarball: https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz, + } + + isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz, + } + + istanbul-lib-coverage@3.2.2: + resolution: + { + integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + tarball: https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz, + } + engines: { node: ">=8" } + + istanbul-lib-report@3.0.1: + resolution: + { + integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + tarball: https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz, + } + engines: { node: ">=10" } + + istanbul-reports@3.2.0: + resolution: + { + integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==, + tarball: https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz, + } + engines: { node: ">=8" } + + istextorbinary@9.5.0: + resolution: + { + integrity: sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==, + tarball: https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz, + } + engines: { node: ">=4" } + + js-tokens@10.0.0: + resolution: + { + integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==, + tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz, + } + + js-tokens@4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz, + } + + js-yaml@4.2.0: + resolution: + { + integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==, + tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz, + } + hasBin: true + + jsesc@3.1.0: + resolution: + { + integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==, + tarball: https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz, + } + engines: { node: ">=6" } + hasBin: true + + json-buffer@3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + tarball: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz, + } + + json-parse-even-better-errors@2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz, + } + + json-schema-traverse@0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz, + } + + json-schema-traverse@1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz, + } + + json-stable-stringify-without-jsonify@1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + tarball: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz, + } + + json5@2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + tarball: https://registry.npmjs.org/json5/-/json5-2.2.3.tgz, + } + engines: { node: ">=6" } + hasBin: true + + jsonc-parser@3.3.1: + resolution: + { + integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==, + tarball: https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz, + } + + jsonfile@6.2.1: + resolution: + { + integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==, + tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz, + } + + jsonwebtoken@9.0.3: + resolution: + { + integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==, + tarball: https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz, + } + engines: { node: ">=12", npm: ">=6" } + + jszip@3.10.1: + resolution: + { + integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==, + tarball: https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz, + } + + jwa@2.0.1: + resolution: + { + integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==, + tarball: https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz, + } + + jws@4.0.1: + resolution: + { + integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==, + tarball: https://registry.npmjs.org/jws/-/jws-4.0.1.tgz, + } + + keytar@7.9.0: + resolution: + { + integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==, + tarball: https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz, + } + + keyv@4.5.4: + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + tarball: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz, + } + + leven@3.1.0: + resolution: + { + integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, + tarball: https://registry.npmjs.org/leven/-/leven-3.1.0.tgz, + } + engines: { node: ">=6" } + + levn@0.4.1: + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + tarball: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz, + } + engines: { node: ">= 0.8.0" } + + lie@3.3.0: + resolution: + { + integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==, + tarball: https://registry.npmjs.org/lie/-/lie-3.3.0.tgz, + } + + lightningcss-android-arm64@1.32.0: + resolution: + { + integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==, + tarball: https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: + { + integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==, + tarball: https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: + { + integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==, + tarball: https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: + { + integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==, + tarball: https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: + { + integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==, + tarball: https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: + { + integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==, + tarball: https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: + { + integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==, + tarball: https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: + { + integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==, + tarball: https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: + { + integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==, + tarball: https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: + { + integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==, + tarball: https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: + { + integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==, + tarball: https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: + { + integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==, + tarball: https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz, + } + engines: { node: ">= 12.0.0" } + + lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + tarball: https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz, + } + + lines-and-columns@2.0.3: + resolution: + { + integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==, + tarball: https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + linkify-it@5.0.1: + resolution: + { + integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==, + tarball: https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz, + } + + locate-path@6.0.0: + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + tarball: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz, + } + engines: { node: ">=10" } + + lodash.debounce@4.0.8: + resolution: + { + integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, + tarball: https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz, + } + + lodash.includes@4.3.0: + resolution: + { + integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, + tarball: https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz, + } + + lodash.isboolean@3.0.3: + resolution: + { + integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, + tarball: https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz, + } + + lodash.isinteger@4.0.4: + resolution: + { + integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, + tarball: https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz, + } + + lodash.isnumber@3.0.3: + resolution: + { + integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, + tarball: https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz, + } + + lodash.isplainobject@4.0.6: + resolution: + { + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + tarball: https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz, + } + + lodash.isstring@4.0.1: + resolution: + { + integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, + tarball: https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz, + } + + lodash.once@4.1.1: + resolution: + { + integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, + tarball: https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz, + } + + lodash.truncate@4.4.2: + resolution: + { + integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, + tarball: https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz, + } + + lodash@4.18.1: + resolution: + { + integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==, + tarball: https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz, + } + + log-symbols@4.1.0: + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + tarball: https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz, + } + engines: { node: ">=10" } + + log-symbols@6.0.0: + resolution: + { + integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==, + tarball: https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz, + } + engines: { node: ">=18" } + + lru-cache@10.4.3: + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz, + } + + lru-cache@11.5.1: + resolution: + { + integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==, + tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz, + } + engines: { node: 20 || >=22 } + + lru-cache@5.1.1: + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz, + } + + lru-cache@6.0.0: + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz, + } + engines: { node: ">=10" } + + magic-string@0.30.21: + resolution: + { + integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, + tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz, + } + + magicast@0.5.3: + resolution: + { + integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==, + tarball: https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz, + } + + make-dir@4.0.0: + resolution: + { + integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, + tarball: https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz, + } + engines: { node: ">=10" } + + markdown-it@14.2.0: + resolution: + { + integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==, + tarball: https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz, + } + hasBin: true + + math-intrinsics@1.1.0: + resolution: + { + integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, + tarball: https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz, + } + engines: { node: ">= 0.4" } + + mdast-util-to-hast@13.2.1: + resolution: + { + integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==, + tarball: https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz, + } + + mdurl@2.0.0: + resolution: + { + integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, + tarball: https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz, + } + + merge2@1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz, + } + engines: { node: ">= 8" } + + micromark-util-character@2.1.1: + resolution: + { + integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==, + tarball: https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz, + } + + micromark-util-encode@2.0.1: + resolution: + { + integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==, + tarball: https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz, + } + + micromark-util-sanitize-uri@2.0.1: + resolution: + { + integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==, + tarball: https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz, + } + + micromark-util-symbol@2.0.1: + resolution: + { + integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==, + tarball: https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz, + } + + micromark-util-types@2.0.2: + resolution: + { + integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==, + tarball: https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz, + } + + micromatch@4.0.8: + resolution: + { + integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, + tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz, + } + engines: { node: ">=8.6" } + + mime-db@1.52.0: + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz, + } + engines: { node: ">= 0.6" } + + mime-types@2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz, + } + engines: { node: ">= 0.6" } + + mime@1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + tarball: https://registry.npmjs.org/mime/-/mime-1.6.0.tgz, + } + engines: { node: ">=4" } + hasBin: true + + mimic-fn@2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz, + } + engines: { node: ">=6" } + + mimic-function@5.0.1: + resolution: + { + integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==, + tarball: https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz, + } + engines: { node: ">=18" } + + mimic-response@3.1.0: + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + tarball: https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz, + } + engines: { node: ">=10" } + + minimatch@10.2.5: + resolution: + { + integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==, + tarball: https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz, + } + engines: { node: 18 || 20 || >=22 } + + minimist@1.2.8: + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz, + } + + minipass@7.1.3: + resolution: + { + integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==, + tarball: https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz, + } + engines: { node: ">=16 || 14 >=14.17" } + + mkdirp-classic@0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + tarball: https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz, + } + + mocha@12.0.0-beta-10: + resolution: + { + integrity: sha512-edlHS69tgkDTSQotUVP6KNtrIV/qQB/uwbxLHE8yFoD2htrbtFv21CyyNVUC9LvcHNeMwNeR2uxJYxYhWPKGTA==, + tarball: https://registry.npmjs.org/mocha/-/mocha-12.0.0-beta-10.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true + + ms@2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + tarball: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz, + } + + mute-stream@0.0.8: + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + tarball: https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz, + } + + nanoid@3.3.12: + resolution: + { + integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==, + tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + napi-build-utils@2.0.0: + resolution: + { + integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==, + tarball: https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz, + } + + natural-compare@1.4.0: + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz, + } + + node-abi@3.92.0: + resolution: + { + integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==, + tarball: https://registry.npmjs.org/node-abi/-/node-abi-3.92.0.tgz, + } + engines: { node: ">=10" } + + node-addon-api@4.3.0: + resolution: + { + integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==, + tarball: https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz, + } + + node-releases@2.0.47: + resolution: + { + integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==, + tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz, + } + engines: { node: ">=18" } + + node-sarif-builder@3.4.0: + resolution: + { + integrity: sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==, + tarball: https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz, + } + engines: { node: ">=20" } + + normalize-package-data@6.0.2: + resolution: + { + integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==, + tarball: https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz, + } + engines: { node: ^16.14.0 || >=18.0.0 } + + npm-run-path@4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + tarball: https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz, + } + engines: { node: ">=8" } + + nth-check@2.1.1: + resolution: + { + integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, + tarball: https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz, + } + + nx@23.0.0: + resolution: + { + integrity: sha512-60HZVOQErtSTnR+UVPBYI5sYe8R2nrHttI0tVHhEj91kJpbXvL15gSh+rv6lUcAJtDfPymoEn20jGzN4oOLKAg==, + tarball: https://registry.npmjs.org/nx/-/nx-23.0.0.tgz, + } + hasBin: true + peerDependencies: + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 + peerDependenciesMeta: + "@swc-node/register": + optional: true + "@swc/core": + optional: true + + object-inspect@1.13.4: + resolution: + { + integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==, + tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz, + } + engines: { node: ">= 0.4" } + + obug@2.1.3: + resolution: + { + integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==, + tarball: https://registry.npmjs.org/obug/-/obug-2.1.3.tgz, + } + engines: { node: ">=12.20.0" } + + once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz, + } + + onetime@5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + tarball: https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz, + } + engines: { node: ">=6" } + + onetime@7.0.0: + resolution: + { + integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==, + tarball: https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz, + } + engines: { node: ">=18" } + + oniguruma-parser@0.12.2: + resolution: + { + integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==, + tarball: https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz, + } + + oniguruma-to-es@4.3.6: + resolution: + { + integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==, + tarball: https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz, + } + + open@10.2.0: + resolution: + { + integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==, + tarball: https://registry.npmjs.org/open/-/open-10.2.0.tgz, + } + engines: { node: ">=18" } + + open@8.4.2: + resolution: + { + integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, + tarball: https://registry.npmjs.org/open/-/open-8.4.2.tgz, + } + engines: { node: ">=12" } + + opener@1.5.2: + resolution: + { + integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, + tarball: https://registry.npmjs.org/opener/-/opener-1.5.2.tgz, + } + hasBin: true + + optionator@0.9.4: + resolution: + { + integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, + tarball: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz, + } + engines: { node: ">= 0.8.0" } + + ora@5.4.1: + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + tarball: https://registry.npmjs.org/ora/-/ora-5.4.1.tgz, + } + engines: { node: ">=10" } + + ora@8.2.0: + resolution: + { + integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==, + tarball: https://registry.npmjs.org/ora/-/ora-8.2.0.tgz, + } + engines: { node: ">=18" } + + p-limit@3.1.0: + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + tarball: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz, + } + engines: { node: ">=10" } + + p-locate@5.0.0: + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + tarball: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz, + } + engines: { node: ">=10" } + + p-map@7.0.4: + resolution: + { + integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==, + tarball: https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz, + } + engines: { node: ">=18" } + + pako@1.0.11: + resolution: + { + integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, + tarball: https://registry.npmjs.org/pako/-/pako-1.0.11.tgz, + } + + parent-module@1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz, + } + engines: { node: ">=6" } + + parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + tarball: https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz, + } + engines: { node: ">=8" } + + parse-json@8.3.0: + resolution: + { + integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==, + tarball: https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz, + } + engines: { node: ">=18" } + + parse-semver@1.1.1: + resolution: + { + integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==, + tarball: https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz, + } + + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: + { + integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==, + tarball: https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz, + } + + parse5-parser-stream@7.1.2: + resolution: + { + integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==, + tarball: https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz, + } + + parse5@7.3.0: + resolution: + { + integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==, + tarball: https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz, + } + + path-exists@4.0.0: + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + tarball: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz, + } + engines: { node: ">=8" } + + path-key@3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + tarball: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz, + } + engines: { node: ">=8" } + + path-parse@1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + tarball: https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz, + } + + path-scurry@2.0.2: + resolution: + { + integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==, + tarball: https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz, + } + engines: { node: 18 || 20 || >=22 } + + path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz, + } + engines: { node: ">=8" } + + path-type@6.0.0: + resolution: + { + integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==, + tarball: https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz, + } + engines: { node: ">=18" } + + pathe@2.0.3: + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + tarball: https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz, + } + + pend@1.2.0: + resolution: + { + integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, + tarball: https://registry.npmjs.org/pend/-/pend-1.2.0.tgz, + } + + picocolors@1.1.1: + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz, + } + + picomatch@2.3.2: + resolution: + { + integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==, + tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz, + } + engines: { node: ">=8.6" } + + picomatch@4.0.4: + resolution: + { + integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==, + tarball: https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz, + } + engines: { node: ">=12" } + + pluralize@2.0.0: + resolution: + { + integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==, + tarball: https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz, + } + + pluralize@8.0.0: + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + tarball: https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz, + } + engines: { node: ">=4" } + + portfinder@1.0.38: + resolution: + { + integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==, + tarball: https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz, + } + engines: { node: ">= 10.12" } + + postcss@8.5.15: + resolution: + { + integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==, + tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz, + } + engines: { node: ^10 || ^12 || >=14 } + + prebuild-install@7.1.3: + resolution: + { + integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==, + tarball: https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz, + } + engines: { node: ">=10" } + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. + hasBin: true + + prelude-ls@1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz, + } + engines: { node: ">= 0.8.0" } + + prettier@3.6.2: + resolution: + { + integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==, + tarball: https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz, + } + engines: { node: ">=14" } + hasBin: true + + process-nextick-args@2.0.1: + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + tarball: https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz, + } + + property-information@7.2.0: + resolution: + { + integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==, + tarball: https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz, + } + + proxy-from-env@2.1.0: + resolution: + { + integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==, + tarball: https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz, + } + engines: { node: ">=10" } + + pump@3.0.4: + resolution: + { + integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==, + tarball: https://registry.npmjs.org/pump/-/pump-3.0.4.tgz, + } + + punycode.js@2.3.1: + resolution: + { + integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, + tarball: https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz, + } + engines: { node: ">=6" } + + punycode@2.3.1: + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz, + } + engines: { node: ">=6" } + + qs@6.15.2: + resolution: + { + integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==, + tarball: https://registry.npmjs.org/qs/-/qs-6.15.2.tgz, + } + engines: { node: ">=0.6" } + + queue-microtask@1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + tarball: https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz, + } + + rc-config-loader@4.1.4: + resolution: + { + integrity: sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==, + tarball: https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.4.tgz, + } + + rc@1.2.8: + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + tarball: https://registry.npmjs.org/rc/-/rc-1.2.8.tgz, + } + hasBin: true + + read-pkg@9.0.1: + resolution: + { + integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==, + tarball: https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz, + } + engines: { node: ">=18" } + + read@1.0.7: + resolution: + { + integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==, + tarball: https://registry.npmjs.org/read/-/read-1.0.7.tgz, + } + engines: { node: ">=0.8" } + + readable-stream@2.3.8: + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz, + } + + readable-stream@3.6.2: + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz, + } + engines: { node: ">= 6" } + + readdirp@5.0.0: + resolution: + { + integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==, + tarball: https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz, + } + engines: { node: ">= 20.19.0" } + + regenerate-unicode-properties@10.2.2: + resolution: + { + integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==, + tarball: https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz, + } + engines: { node: ">=4" } + + regenerate@1.4.2: + resolution: + { + integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, + tarball: https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz, + } + + regex-recursion@6.0.2: + resolution: + { + integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==, + tarball: https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz, + } + + regex-utilities@2.3.0: + resolution: + { + integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, + tarball: https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz, + } + + regex@6.1.0: + resolution: + { + integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==, + tarball: https://registry.npmjs.org/regex/-/regex-6.1.0.tgz, + } + + regexpu-core@6.4.0: + resolution: + { + integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==, + tarball: https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz, + } + engines: { node: ">=4" } + + regjsgen@0.8.0: + resolution: + { + integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, + tarball: https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz, + } + + regjsparser@0.13.2: + resolution: + { + integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==, + tarball: https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz, + } + hasBin: true + + require-directory@2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + tarball: https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz, + } + engines: { node: ">=0.10.0" } + + require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + tarball: https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz, + } + engines: { node: ">=0.10.0" } + + requires-port@1.0.0: + resolution: + { + integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, + tarball: https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz, + } + + resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz, + } + engines: { node: ">=4" } + + resolve.exports@2.0.3: + resolution: + { + integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==, + tarball: https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz, + } + engines: { node: ">=10" } + + resolve@1.22.12: + resolution: + { + integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==, + tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz, + } + engines: { node: ">= 0.4" } + hasBin: true + + restore-cursor@3.1.0: + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + tarball: https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz, + } + engines: { node: ">=8" } + + restore-cursor@5.1.0: + resolution: + { + integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==, + tarball: https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz, + } + engines: { node: ">=18" } + + reusify@1.1.0: + resolution: + { + integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, + tarball: https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + + rolldown@1.0.3: + resolution: + { + integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==, + tarball: https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true + + run-applescript@7.1.0: + resolution: + { + integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==, + tarball: https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz, + } + engines: { node: ">=18" } + + run-parallel@1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + tarball: https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz, + } + + safe-buffer@5.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz, + } + + safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz, + } + + safer-buffer@2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz, + } + + sax@1.6.0: + resolution: + { + integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==, + tarball: https://registry.npmjs.org/sax/-/sax-1.6.0.tgz, + } + engines: { node: ">=11.0.0" } + + secretlint@10.2.2: + resolution: + { + integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==, + tarball: https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz, + } + engines: { node: ">=20.0.0" } + hasBin: true + + secure-compare@3.0.1: + resolution: + { + integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==, + tarball: https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz, + } + + semver@5.7.1: + resolution: + { + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, + tarball: https://registry.npmjs.org/semver/-/semver-5.7.1.tgz, + } + hasBin: true + + semver@6.3.1: + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + tarball: https://registry.npmjs.org/semver/-/semver-6.3.1.tgz, + } + hasBin: true + + semver@7.7.4: + resolution: + { + integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, + tarball: https://registry.npmjs.org/semver/-/semver-7.7.4.tgz, + } + engines: { node: ">=10" } + hasBin: true + + semver@7.8.4: + resolution: + { + integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==, + tarball: https://registry.npmjs.org/semver/-/semver-7.8.4.tgz, + } + engines: { node: ">=10" } + hasBin: true + + serialize-javascript@7.0.5: + resolution: + { + integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==, + tarball: https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz, + } + engines: { node: ">=20.0.0" } + + setimmediate@1.0.5: + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + tarball: https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz, + } + + shebang-command@2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz, + } + engines: { node: ">=8" } + + shebang-regex@3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz, + } + engines: { node: ">=8" } + + shiki@3.13.0: + resolution: + { + integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==, + tarball: https://registry.npmjs.org/shiki/-/shiki-3.13.0.tgz, + } + + side-channel-list@1.0.1: + resolution: + { + integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==, + tarball: https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz, + } + engines: { node: ">= 0.4" } + + side-channel-map@1.0.1: + resolution: + { + integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, + tarball: https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz, + } + engines: { node: ">= 0.4" } + + side-channel-weakmap@1.0.2: + resolution: + { + integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, + tarball: https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz, + } + engines: { node: ">= 0.4" } + + side-channel@1.1.1: + resolution: + { + integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==, + tarball: https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz, + } + engines: { node: ">= 0.4" } + + siginfo@2.0.0: + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + tarball: https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz, + } + + signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz, + } + + signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz, + } + engines: { node: ">=14" } + + simple-concat@1.0.1: + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, + tarball: https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz, + } + + simple-get@4.0.1: + resolution: + { + integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, + tarball: https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz, + } + + slash@5.1.0: + resolution: + { + integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, + tarball: https://registry.npmjs.org/slash/-/slash-5.1.0.tgz, + } + engines: { node: ">=14.16" } + + slice-ansi@4.0.0: + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + tarball: https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz, + } + engines: { node: ">=10" } + + smol-toml@1.6.1: + resolution: + { + integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==, + tarball: https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz, + } + engines: { node: ">= 18" } + + source-map-js@1.2.1: + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz, + } + engines: { node: ">=0.10.0" } + + source-map-support@0.5.19: + resolution: + { + integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==, + tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz, + } + + source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz, + } + engines: { node: ">=0.10.0" } + + space-separated-tokens@2.0.2: + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + tarball: https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz, + } + + spdx-correct@3.2.0: + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + tarball: https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz, + } + + spdx-exceptions@2.5.0: + resolution: + { + integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, + tarball: https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz, + } + + spdx-expression-parse@3.0.1: + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + tarball: https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz, + } + + spdx-license-ids@3.0.23: + resolution: + { + integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==, + tarball: https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz, + } + + stackback@0.0.2: + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + tarball: https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz, + } + + std-env@4.1.0: + resolution: + { + integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==, + tarball: https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz, + } + + stdin-discarder@0.2.2: + resolution: + { + integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==, + tarball: https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz, + } + engines: { node: ">=18" } + + string-width@4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + tarball: https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz, + } + engines: { node: ">=8" } + + string-width@7.2.0: + resolution: + { + integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==, + tarball: https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz, + } + engines: { node: ">=18" } + + string_decoder@1.1.1: + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz, + } + + string_decoder@1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz, + } + + stringify-entities@4.0.4: + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + tarball: https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz, + } + + strip-ansi@6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz, + } + engines: { node: ">=8" } + + strip-ansi@7.2.0: + resolution: + { + integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==, + tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz, + } + engines: { node: ">=12" } + + strip-bom@3.0.0: + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + tarball: https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz, + } + engines: { node: ">=4" } + + strip-json-comments@2.0.1: + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz, + } + engines: { node: ">=0.10.0" } + + strip-json-comments@5.0.3: + resolution: + { + integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==, + tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz, + } + engines: { node: ">=14.16" } + + structured-source@4.0.0: + resolution: + { + integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==, + tarball: https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz, + } + + supports-color@7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz, + } + engines: { node: ">=8" } + + supports-color@8.1.1: + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + tarball: https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz, + } + engines: { node: ">=10" } + + supports-hyperlinks@3.2.0: + resolution: + { + integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==, + tarball: https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz, + } + engines: { node: ">=14.18" } + + supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz, + } + engines: { node: ">= 0.4" } + + table@6.9.0: + resolution: + { + integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==, + tarball: https://registry.npmjs.org/table/-/table-6.9.0.tgz, + } + engines: { node: ">=10.0.0" } + + tar-fs@2.1.4: + resolution: + { + integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==, + tarball: https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz, + } + + tar-stream@2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + tarball: https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz, + } + engines: { node: ">=6" } + + terminal-link@4.0.0: + resolution: + { + integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==, + tarball: https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz, + } + engines: { node: ">=18" } + + text-table@0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + tarball: https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz, + } + + textextensions@6.11.0: + resolution: + { + integrity: sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==, + tarball: https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz, + } + engines: { node: ">=4" } + + tinybench@2.9.0: + resolution: + { + integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, + tarball: https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz, + } + + tinyexec@1.2.4: + resolution: + { + integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==, + tarball: https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz, + } + engines: { node: ">=18" } + + tinyglobby@0.2.17: + resolution: + { + integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==, + tarball: https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz, + } + engines: { node: ">=12.0.0" } + + tinyrainbow@3.1.0: + resolution: + { + integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==, + tarball: https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz, + } + engines: { node: ">=14.0.0" } + + tmp@0.2.6: + resolution: + { + integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==, + tarball: https://registry.npmjs.org/tmp/-/tmp-0.2.6.tgz, + } + engines: { node: ">=14.14" } + + to-regex-range@5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz, + } + engines: { node: ">=8.0" } + + trim-lines@3.0.1: + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + tarball: https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz, + } + + ts-api-utils@2.5.0: + resolution: + { + integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==, + tarball: https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz, + } + engines: { node: ">=18.12" } + peerDependencies: + typescript: ">=4.8.4" + + ts-dedent@2.2.0: + resolution: + { + integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==, + tarball: https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz, + } + engines: { node: ">=6.10" } + + tsconfig-paths@4.2.0: + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + tarball: https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz, + } + engines: { node: ">=6" } + + tslib@2.8.1: + resolution: + { + integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, + tarball: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz, + } + + tunnel-agent@0.6.0: + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + tarball: https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz, + } + + tunnel@0.0.6: + resolution: + { + integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==, + tarball: https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz, + } + engines: { node: ">=0.6.11 <=0.7.0 || >=0.7.3" } + + type-check@0.4.0: + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + tarball: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz, + } + engines: { node: ">= 0.8.0" } + + type-fest@4.41.0: + resolution: + { + integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==, + tarball: https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz, + } + engines: { node: ">=16" } + + typed-rest-client@1.8.11: + resolution: + { + integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==, + tarball: https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz, + } + + typescript-eslint@8.61.1: + resolution: + { + integrity: sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==, + tarball: https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + + typescript@5.9.3: + resolution: + { + integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==, + tarball: https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz, + } + engines: { node: ">=14.17" } + hasBin: true + + typescript@6.0.3: + resolution: + { + integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==, + tarball: https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz, + } + engines: { node: ">=14.17" } + hasBin: true + + uc.micro@2.1.0: + resolution: + { + integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, + tarball: https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz, + } + + underscore@1.13.8: + resolution: + { + integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==, + tarball: https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz, + } + + undici-types@7.24.6: + resolution: + { + integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==, + tarball: https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz, + } + + undici@7.28.0: + resolution: + { + integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==, + tarball: https://registry.npmjs.org/undici/-/undici-7.28.0.tgz, + } + engines: { node: ">=20.18.1" } + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: + { + integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==, + tarball: https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz, + } + engines: { node: ">=4" } + + unicode-match-property-ecmascript@2.0.0: + resolution: + { + integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, + tarball: https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz, + } + engines: { node: ">=4" } + + unicode-match-property-value-ecmascript@2.2.1: + resolution: + { + integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==, + tarball: https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz, + } + engines: { node: ">=4" } + + unicode-property-aliases-ecmascript@2.2.0: + resolution: + { + integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==, + tarball: https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz, + } + engines: { node: ">=4" } + + unicorn-magic@0.1.0: + resolution: + { + integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + tarball: https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz, + } + engines: { node: ">=18" } + + unicorn-magic@0.3.0: + resolution: + { + integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==, + tarball: https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz, + } + engines: { node: ">=18" } + + union@0.5.0: + resolution: + { + integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==, + tarball: https://registry.npmjs.org/union/-/union-0.5.0.tgz, + } + engines: { node: ">= 0.8.0" } + + unist-util-is@6.0.1: + resolution: + { + integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==, + tarball: https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz, + } + + unist-util-position@5.0.0: + resolution: + { + integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, + tarball: https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz, + } + + unist-util-stringify-position@4.0.0: + resolution: + { + integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, + tarball: https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz, + } + + unist-util-visit-parents@6.0.2: + resolution: + { + integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==, + tarball: https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz, + } + + unist-util-visit@5.1.0: + resolution: + { + integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==, + tarball: https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz, + } + + universalify@2.0.1: + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + tarball: https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz, + } + engines: { node: ">= 10.0.0" } + + update-browserslist-db@1.2.3: + resolution: + { + integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==, + tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz, + } + hasBin: true + peerDependencies: + browserslist: ">= 4.21.0" + + uri-js@4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz, + } + + url-join@4.0.1: + resolution: + { + integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==, + tarball: https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz, + } + + util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + tarball: https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz, + } + + validate-npm-package-license@3.0.4: + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + tarball: https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz, + } + + version-range@4.15.0: + resolution: + { + integrity: sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==, + tarball: https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz, + } + engines: { node: ">=4" } + + vfile-message@4.0.3: + resolution: + { + integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==, + tarball: https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz, + } + + vfile@6.0.3: + resolution: + { + integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, + tarball: https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz, + } + + vite@8.0.16: + resolution: + { + integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==, + tarball: https://registry.npmjs.org/vite/-/vite-8.0.16.tgz, + } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true + peerDependencies: + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.18 + esbuild: ^0.27.0 || ^0.28.0 + jiti: ">=1.21.0" + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + "@types/node": + optional: true + "@vitejs/devtools": + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@4.1.2: + resolution: + { + integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==, + tarball: https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz, + } + engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 } + hasBin: true + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.1.2 + "@vitest/browser-preview": 4.1.2 + "@vitest/browser-webdriverio": 4.1.2 + "@vitest/ui": 4.1.2 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vscode-jsonrpc@9.0.0: + resolution: + { + integrity: sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==, + tarball: https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0.tgz, + } + engines: { node: ">=14.0.0" } + + vscode-languageclient@10.0.0: + resolution: + { + integrity: sha512-3yRHFkktZQCCg8ehHnD2Z4DZ4mZ17FNo8bxM4OFt8wtpxNBAOZGHmpbIflZSkicvCxi+ozuWntbdeWiY0gP77w==, + tarball: https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.0.0.tgz, + } + engines: { vscode: ^1.91.0 } + + vscode-languageserver-protocol@3.18.0: + resolution: + { + integrity: sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q==, + tarball: https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.0.tgz, + } + + vscode-languageserver-textdocument@1.0.13: + resolution: + { + integrity: sha512-nx0ZHwMGIsVkzFG3/VLeJYBLTaFBRuNdGDvevvjuoayU5EOS2fEYazOhtCM3PI9ClMMg5igc0uwXtAq4tJj+Dw==, + tarball: https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.13.tgz, + } + + vscode-languageserver-types@3.17.5: + resolution: + { + integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==, + tarball: https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz, + } + + vscode-languageserver-types@3.18.0: + resolution: + { + integrity: sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==, + tarball: https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.0.tgz, + } + + vscode-uri@3.1.0: + resolution: + { + integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==, + tarball: https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz, + } + + wcwidth@1.0.1: + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + tarball: https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz, + } + + whatwg-encoding@2.0.0: + resolution: + { + integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, + tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz, + } + engines: { node: ">=12" } + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-encoding@3.1.1: + resolution: + { + integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, + tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz, + } + engines: { node: ">=18" } + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@4.0.0: + resolution: + { + integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, + tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz, + } + engines: { node: ">=18" } + + which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + tarball: https://registry.npmjs.org/which/-/which-2.0.2.tgz, + } + engines: { node: ">= 8" } + hasBin: true + + which@3.0.1: + resolution: + { + integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==, + tarball: https://registry.npmjs.org/which/-/which-3.0.1.tgz, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + hasBin: true + + why-is-node-running@2.3.0: + resolution: + { + integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, + tarball: https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz, + } + engines: { node: ">=8" } + hasBin: true + + word-wrap@1.2.5: + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + tarball: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz, + } + engines: { node: ">=0.10.0" } + + workerpool@9.3.4: + resolution: + { + integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==, + tarball: https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz, + } + + wrap-ansi@7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + tarball: https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz, + } + engines: { node: ">=10" } + + wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz, + } + + wsl-utils@0.1.0: + resolution: + { + integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==, + tarball: https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz, + } + engines: { node: ">=18" } + + xml2js@0.5.0: + resolution: + { + integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==, + tarball: https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz, + } + engines: { node: ">=4.0.0" } + + xmlbuilder@11.0.1: + resolution: + { + integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, + tarball: https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz, + } + engines: { node: ">=4.0" } + + y18n@5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + tarball: https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz, + } + engines: { node: ">=10" } + + yallist@3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + tarball: https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz, + } + + yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + tarball: https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz, + } + + yaml@1.10.3: + resolution: + { + integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==, + tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz, + } + engines: { node: ">= 6" } + + yaml@2.9.0: + resolution: + { + integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==, + tarball: https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz, + } + engines: { node: ">= 14.6" } + hasBin: true + + yargs-parser@21.1.1: + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz, + } + engines: { node: ">=12" } + + yargs-unparser@2.0.0: + resolution: + { + integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==, + tarball: https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz, + } + engines: { node: ">=10" } + + yargs@17.7.2: + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + tarball: https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz, + } + engines: { node: ">=12" } + + yauzl@3.4.0: + resolution: + { + integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==, + tarball: https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz, + } + engines: { node: ">=12" } + + yazl@2.5.1: + resolution: + { + integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==, + tarball: https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz, + } + + yocto-queue@0.1.0: + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + tarball: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz, + } + engines: { node: ">=10" } + + zwitch@2.0.4: + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + tarball: https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz, + } + +snapshots: + "@azu/format-text@1.0.2": {} + + "@azu/style-format@1.0.1": + dependencies: + "@azu/format-text": 1.0.2 + + "@azure/abort-controller@2.1.2": + dependencies: + tslib: 2.8.1 + + "@azure/core-auth@1.10.1": + dependencies: + "@azure/abort-controller": 2.1.2 + "@azure/core-util": 1.13.1 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/core-client@1.10.2": + dependencies: + "@azure/abort-controller": 2.1.2 + "@azure/core-auth": 1.10.1 + "@azure/core-rest-pipeline": 1.24.0 + "@azure/core-tracing": 1.3.1 + "@azure/core-util": 1.13.1 + "@azure/logger": 1.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/core-rest-pipeline@1.24.0": + dependencies: + "@azure/abort-controller": 2.1.2 + "@azure/core-auth": 1.10.1 + "@azure/core-tracing": 1.3.1 + "@azure/core-util": 1.13.1 + "@azure/logger": 1.3.0 + "@typespec/ts-http-runtime": 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/core-tracing@1.3.1": + dependencies: + tslib: 2.8.1 + + "@azure/core-util@1.13.1": + dependencies: + "@azure/abort-controller": 2.1.2 + "@typespec/ts-http-runtime": 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/identity@4.13.1": + dependencies: + "@azure/abort-controller": 2.1.2 + "@azure/core-auth": 1.10.1 + "@azure/core-client": 1.10.2 + "@azure/core-rest-pipeline": 1.24.0 + "@azure/core-tracing": 1.3.1 + "@azure/core-util": 1.13.1 + "@azure/logger": 1.3.0 + "@azure/msal-browser": 5.13.0 + "@azure/msal-node": 5.2.4 + open: 10.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/logger@1.3.0": + dependencies: + "@typespec/ts-http-runtime": 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@azure/msal-browser@5.13.0": + dependencies: + "@azure/msal-common": 16.8.0 + + "@azure/msal-common@16.8.0": {} + + "@azure/msal-node@5.2.4": + dependencies: + "@azure/msal-common": 16.8.0 + jsonwebtoken: 9.0.3 + + "@babel/code-frame@7.29.7": + dependencies: + "@babel/helper-validator-identifier": 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + "@babel/compat-data@7.29.7": {} + + "@babel/core@7.29.7": + dependencies: + "@babel/code-frame": 7.29.7 + "@babel/generator": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7) + "@babel/helpers": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + "@jridgewell/remapping": 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + "@babel/generator@7.29.7": + dependencies: + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 + jsesc: 3.1.0 + + "@babel/helper-annotate-as-pure@7.29.7": + dependencies: + "@babel/types": 7.29.7 + + "@babel/helper-compilation-targets@7.29.7": + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + "@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.7) + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/traverse": 7.29.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + "@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + regexpu-core: 6.4.0 + semver: 6.3.1 + + "@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + debug: 4.4.3(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.12 + transitivePeerDependencies: + - supports-color + + "@babel/helper-globals@7.29.7": {} + + "@babel/helper-member-expression-to-functions@7.29.7": + dependencies: + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-module-imports@7.29.7": + dependencies: + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-optimise-call-expression@7.29.7": + dependencies: + "@babel/types": 7.29.7 + + "@babel/helper-plugin-utils@7.29.7": {} + + "@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-wrap-function": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-member-expression-to-functions": 7.29.7 + "@babel/helper-optimise-call-expression": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-skip-transparent-expression-wrappers@7.29.7": + dependencies: + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helper-string-parser@7.29.7": {} + + "@babel/helper-validator-identifier@7.29.7": {} + + "@babel/helper-validator-option@7.29.7": {} + + "@babel/helper-wrap-function@7.29.7": + dependencies: + "@babel/template": 7.29.7 + "@babel/traverse": 7.29.7 + "@babel/types": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/helpers@7.29.7": + dependencies: + "@babel/template": 7.29.7 + "@babel/types": 7.29.7 + + "@babel/parser@7.29.7": + dependencies: + "@babel/types": 7.29.7 + + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-transform-optional-chaining": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-decorators": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + + "@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-remap-async-to-generator": 7.29.7(@babel/core@7.29.7) + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-remap-async-to-generator": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-globals": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.7) + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/template": 7.29.7 + + "@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.7) + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-module-imports": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-annotate-as-pure": 7.29.7 + "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-create-regexp-features-plugin": 7.29.7(@babel/core@7.29.7) + "@babel/helper-plugin-utils": 7.29.7 + + "@babel/preset-env@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.7 + "@babel/helper-compilation-targets": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-bugfix-safari-class-field-initializer-scope": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) + "@babel/plugin-syntax-import-assertions": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-syntax-import-attributes": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-syntax-unicode-sets-regex": 7.18.6(@babel/core@7.29.7) + "@babel/plugin-transform-arrow-functions": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-async-generator-functions": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-async-to-generator": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-block-scoped-functions": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-block-scoping": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-class-properties": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-class-static-block": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-classes": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-computed-properties": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-destructuring": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-dotall-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-duplicate-keys": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-dynamic-import": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-explicit-resource-management": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-exponentiation-operator": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-export-namespace-from": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-for-of": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-function-name": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-json-strings": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-literals": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-logical-assignment-operators": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-member-expression-literals": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-modules-amd": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-modules-systemjs": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-modules-umd": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-named-capturing-groups-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-new-target": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-nullish-coalescing-operator": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-numeric-separator": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-object-rest-spread": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-object-super": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-optional-catch-binding": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-optional-chaining": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-parameters": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-private-methods": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-private-property-in-object": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-property-literals": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-regenerator": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-regexp-modifiers": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-reserved-words": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-shorthand-properties": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-spread": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-sticky-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-template-literals": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-typeof-symbol": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-unicode-escapes": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-unicode-property-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-unicode-regex": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-unicode-sets-regex": 7.29.7(@babel/core@7.29.7) + "@babel/preset-modules": 0.1.6-no-external-plugins(@babel/core@7.29.7) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + "@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/types": 7.29.7 + esutils: 2.0.3 + + "@babel/preset-typescript@7.29.7(@babel/core@7.29.7)": + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/helper-validator-option": 7.29.7 + "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + "@babel/runtime@7.29.7": {} + + "@babel/template@7.29.7": + dependencies: + "@babel/code-frame": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 + + "@babel/traverse@7.29.7": + dependencies: + "@babel/code-frame": 7.29.7 + "@babel/generator": 7.29.7 + "@babel/helper-globals": 7.29.7 + "@babel/parser": 7.29.7 + "@babel/template": 7.29.7 + "@babel/types": 7.29.7 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + "@babel/types@7.29.7": + dependencies: + "@babel/helper-string-parser": 7.29.7 + "@babel/helper-validator-identifier": 7.29.7 + + "@bcoe/v8-coverage@1.0.2": {} + + "@emnapi/core@1.10.0": + dependencies: + "@emnapi/wasi-threads": 1.2.1 + tslib: 2.8.1 + optional: true + + "@emnapi/core@1.4.5": + dependencies: + "@emnapi/wasi-threads": 1.0.4 + tslib: 2.8.1 + + "@emnapi/runtime@1.10.0": + dependencies: + tslib: 2.8.1 + optional: true + + "@emnapi/runtime@1.4.5": + dependencies: + tslib: 2.8.1 + + "@emnapi/wasi-threads@1.0.4": + dependencies: + tslib: 2.8.1 + + "@emnapi/wasi-threads@1.2.1": + dependencies: + tslib: 2.8.1 + optional: true + + "@esbuild/aix-ppc64@0.28.1": + optional: true + + "@esbuild/android-arm64@0.28.1": + optional: true + + "@esbuild/android-arm@0.28.1": + optional: true + + "@esbuild/android-x64@0.28.1": + optional: true + + "@esbuild/darwin-arm64@0.28.1": + optional: true + + "@esbuild/darwin-x64@0.28.1": + optional: true + + "@esbuild/freebsd-arm64@0.28.1": + optional: true + + "@esbuild/freebsd-x64@0.28.1": + optional: true + + "@esbuild/linux-arm64@0.28.1": + optional: true + + "@esbuild/linux-arm@0.28.1": + optional: true + + "@esbuild/linux-ia32@0.28.1": + optional: true + + "@esbuild/linux-loong64@0.28.1": + optional: true + + "@esbuild/linux-mips64el@0.28.1": + optional: true + + "@esbuild/linux-ppc64@0.28.1": + optional: true + + "@esbuild/linux-riscv64@0.28.1": + optional: true + + "@esbuild/linux-s390x@0.28.1": + optional: true + + "@esbuild/linux-x64@0.28.1": + optional: true + + "@esbuild/netbsd-arm64@0.28.1": + optional: true + + "@esbuild/netbsd-x64@0.28.1": + optional: true + + "@esbuild/openbsd-arm64@0.28.1": + optional: true + + "@esbuild/openbsd-x64@0.28.1": + optional: true + + "@esbuild/openharmony-arm64@0.28.1": + optional: true + + "@esbuild/sunos-x64@0.28.1": + optional: true + + "@esbuild/win32-arm64@0.28.1": + optional: true + + "@esbuild/win32-ia32@0.28.1": + optional: true + + "@esbuild/win32-x64@0.28.1": + optional: true + + "@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(supports-color@8.1.1))": + dependencies: + eslint: 10.5.0(supports-color@8.1.1) + eslint-visitor-keys: 3.4.3 + + "@eslint-community/regexpp@4.12.2": {} + + "@eslint/config-array@0.23.5(supports-color@8.1.1)": + dependencies: + "@eslint/object-schema": 3.0.5 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 10.2.5 + transitivePeerDependencies: + - supports-color + + "@eslint/config-helpers@0.6.0": + dependencies: + "@eslint/core": 1.2.1 + + "@eslint/core@1.2.1": + dependencies: + "@types/json-schema": 7.0.15 + + "@eslint/js@10.0.1(eslint@10.5.0(supports-color@8.1.1))": + optionalDependencies: + eslint: 10.5.0(supports-color@8.1.1) + + "@eslint/object-schema@3.0.5": {} + + "@eslint/plugin-kit@0.7.2": + dependencies: + "@eslint/core": 1.2.1 + levn: 0.4.1 + + "@humanfs/core@0.19.2": + dependencies: + "@humanfs/types": 0.15.0 + + "@humanfs/node@0.16.8": + dependencies: + "@humanfs/core": 0.19.2 + "@humanfs/types": 0.15.0 + "@humanwhocodes/retry": 0.4.3 + + "@humanfs/types@0.15.0": {} + + "@humanwhocodes/module-importer@1.0.1": {} + + "@humanwhocodes/retry@0.4.3": {} + + "@jest/diff-sequences@30.0.1": {} + + "@jridgewell/gen-mapping@0.3.13": + dependencies: + "@jridgewell/sourcemap-codec": 1.5.5 + "@jridgewell/trace-mapping": 0.3.31 + + "@jridgewell/remapping@2.3.5": + dependencies: + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 + + "@jridgewell/resolve-uri@3.1.2": {} + + "@jridgewell/sourcemap-codec@1.5.5": {} + + "@jridgewell/trace-mapping@0.3.31": + dependencies: + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.5 + + "@napi-rs/wasm-runtime@0.2.4": + dependencies: + "@emnapi/core": 1.4.5 + "@emnapi/runtime": 1.4.5 + "@tybys/wasm-util": 0.9.0 + + "@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@tybys/wasm-util": 0.10.2 + optional: true + + "@nodelib/fs.scandir@2.1.5": + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: 1.2.0 + + "@nodelib/fs.stat@2.0.5": {} + + "@nodelib/fs.walk@1.2.8": + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: 1.20.1 + + "@nx/devkit@23.0.0(nx@23.0.0)": + dependencies: + "@zkochan/js-yaml": 0.0.7 + ejs: 5.0.1 + enquirer: 2.3.6 + minimatch: 10.2.5 + nx: 23.0.0 + semver: 7.8.4 + tslib: 2.8.1 + yargs-parser: 21.1.1 + + "@nx/esbuild@23.0.0(esbuild@0.28.1)(nx@23.0.0)": + dependencies: + "@nx/devkit": 23.0.0(nx@23.0.0) + "@nx/js": 23.0.0(nx@23.0.0) + picocolors: 1.1.1 + tinyglobby: 0.2.17 + tsconfig-paths: 4.2.0 + tslib: 2.8.1 + optionalDependencies: + esbuild: 0.28.1 + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/cli" + - "@swc/core" + - debug + - nx + - supports-color + - verdaccio + + "@nx/eslint@23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0)": + dependencies: + "@nx/devkit": 23.0.0(nx@23.0.0) + "@nx/js": 23.0.0(nx@23.0.0) + eslint: 10.5.0(supports-color@8.1.1) + semver: 7.8.4 + tslib: 2.8.1 + typescript: 5.9.3 + optionalDependencies: + "@zkochan/js-yaml": 0.0.7 + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/cli" + - "@swc/core" + - debug + - nx + - supports-color + - verdaccio + + "@nx/js@23.0.0(nx@23.0.0)": + dependencies: + "@babel/core": 7.29.7 + "@babel/plugin-proposal-decorators": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-class-properties": 7.29.7(@babel/core@7.29.7) + "@babel/plugin-transform-runtime": 7.29.7(@babel/core@7.29.7) + "@babel/preset-env": 7.29.7(@babel/core@7.29.7) + "@babel/preset-typescript": 7.29.7(@babel/core@7.29.7) + "@babel/runtime": 7.29.7 + "@nx/devkit": 23.0.0(nx@23.0.0) + "@nx/workspace": 23.0.0 + "@zkochan/js-yaml": 0.0.7 + babel-plugin-const-enum: 1.2.0(@babel/core@7.29.7) + babel-plugin-macros: 3.1.0 + babel-plugin-transform-typescript-metadata: 0.3.2 + chalk: 4.1.2 + columnify: 1.6.0 + detect-port: 2.1.0 + ignore: 7.0.5 + js-tokens: 4.0.0 + jsonc-parser: 3.3.1 + npm-run-path: 4.0.1 + picocolors: 1.1.1 + picomatch: 4.0.4 + semver: 7.8.4 + source-map-support: 0.5.19 + tinyglobby: 0.2.17 + tslib: 2.8.1 + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/core" + - debug + - nx + - supports-color + + "@nx/nx-darwin-arm64@23.0.0": + optional: true + + "@nx/nx-darwin-x64@23.0.0": + optional: true + + "@nx/nx-freebsd-x64@23.0.0": + optional: true + + "@nx/nx-linux-arm-gnueabihf@23.0.0": + optional: true + + "@nx/nx-linux-arm64-gnu@23.0.0": + optional: true + + "@nx/nx-linux-arm64-musl@23.0.0": + optional: true + + "@nx/nx-linux-x64-gnu@23.0.0": + optional: true + + "@nx/nx-linux-x64-musl@23.0.0": + optional: true + + "@nx/nx-win32-arm64-msvc@23.0.0": + optional: true + + "@nx/nx-win32-x64-msvc@23.0.0": + optional: true + + "@nx/vitest@23.0.0(@nx/eslint@23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0))(nx@23.0.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0))(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0))": + dependencies: + "@nx/devkit": 23.0.0(nx@23.0.0) + "@nx/js": 23.0.0(nx@23.0.0) + "@phenomnomnominal/tsquery": 6.2.0(typescript@6.0.3) + semver: 7.8.4 + tslib: 2.8.1 + optionalDependencies: + "@nx/eslint": 23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0) + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + vitest: 4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/cli" + - "@swc/core" + - debug + - nx + - supports-color + - typescript + - verdaccio + + "@nx/web@23.0.0(@nx/eslint@23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0))(nx@23.0.0)(supports-color@8.1.1)": + dependencies: + "@nx/devkit": 23.0.0(nx@23.0.0) + "@nx/js": 23.0.0(nx@23.0.0) + detect-port: 2.1.0 + http-server: 14.1.1(supports-color@8.1.1) + picocolors: 1.1.1 + tslib: 2.8.1 + optionalDependencies: + "@nx/eslint": 23.0.0(@zkochan/js-yaml@0.0.7)(eslint@10.5.0(supports-color@8.1.1))(nx@23.0.0) + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/cli" + - "@swc/core" + - debug + - nx + - supports-color + - verdaccio + + "@nx/workspace@23.0.0": + dependencies: + "@nx/devkit": 23.0.0(nx@23.0.0) + "@zkochan/js-yaml": 0.0.7 + chalk: 4.1.2 + enquirer: 2.3.6 + nx: 23.0.0 + picomatch: 4.0.4 + semver: 7.8.4 + tslib: 2.8.1 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - "@swc-node/register" + - "@swc/core" + - debug + + "@oxc-project/types@0.133.0": {} + + "@phenomnomnominal/tsquery@6.2.0(typescript@6.0.3)": + dependencies: + "@types/esquery": 1.5.4 + esquery: 1.7.0 + typescript: 6.0.3 + + "@rolldown/binding-android-arm64@1.0.3": + optional: true + + "@rolldown/binding-darwin-arm64@1.0.3": + optional: true + + "@rolldown/binding-darwin-x64@1.0.3": + optional: true + + "@rolldown/binding-freebsd-x64@1.0.3": + optional: true + + "@rolldown/binding-linux-arm-gnueabihf@1.0.3": + optional: true + + "@rolldown/binding-linux-arm64-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-arm64-musl@1.0.3": + optional: true + + "@rolldown/binding-linux-ppc64-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-s390x-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-x64-gnu@1.0.3": + optional: true + + "@rolldown/binding-linux-x64-musl@1.0.3": + optional: true + + "@rolldown/binding-openharmony-arm64@1.0.3": + optional: true + + "@rolldown/binding-wasm32-wasi@1.0.3": + dependencies: + "@emnapi/core": 1.10.0 + "@emnapi/runtime": 1.10.0 + "@napi-rs/wasm-runtime": 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + "@rolldown/binding-win32-arm64-msvc@1.0.3": + optional: true + + "@rolldown/binding-win32-x64-msvc@1.0.3": + optional: true + + "@rolldown/pluginutils@1.0.1": {} + + "@secretlint/config-creator@10.2.2": + dependencies: + "@secretlint/types": 10.2.2 + + "@secretlint/config-loader@10.2.2(supports-color@8.1.1)": + dependencies: + "@secretlint/profiler": 10.2.2 + "@secretlint/resolver": 10.2.2 + "@secretlint/types": 10.2.2 + ajv: 8.20.0 + debug: 4.4.3(supports-color@8.1.1) + rc-config-loader: 4.1.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + "@secretlint/core@10.2.2(supports-color@8.1.1)": + dependencies: + "@secretlint/profiler": 10.2.2 + "@secretlint/types": 10.2.2 + debug: 4.4.3(supports-color@8.1.1) + structured-source: 4.0.0 + transitivePeerDependencies: + - supports-color + + "@secretlint/formatter@10.2.2(supports-color@8.1.1)": + dependencies: + "@secretlint/resolver": 10.2.2 + "@secretlint/types": 10.2.2 + "@textlint/linter-formatter": 15.7.1(supports-color@8.1.1) + "@textlint/module-interop": 15.7.1 + "@textlint/types": 15.7.1 + chalk: 5.6.2 + debug: 4.4.3(supports-color@8.1.1) + pluralize: 8.0.0 + strip-ansi: 7.2.0 + table: 6.9.0 + terminal-link: 4.0.0 + transitivePeerDependencies: + - supports-color + + "@secretlint/node@10.2.2(supports-color@8.1.1)": + dependencies: + "@secretlint/config-loader": 10.2.2(supports-color@8.1.1) + "@secretlint/core": 10.2.2(supports-color@8.1.1) + "@secretlint/formatter": 10.2.2(supports-color@8.1.1) + "@secretlint/profiler": 10.2.2 + "@secretlint/source-creator": 10.2.2 + "@secretlint/types": 10.2.2 + debug: 4.4.3(supports-color@8.1.1) + p-map: 7.0.4 + transitivePeerDependencies: + - supports-color + + "@secretlint/profiler@10.2.2": {} + + "@secretlint/resolver@10.2.2": {} + + "@secretlint/secretlint-formatter-sarif@10.2.2": + dependencies: + node-sarif-builder: 3.4.0 + + "@secretlint/secretlint-rule-no-dotenv@10.2.2": + dependencies: + "@secretlint/types": 10.2.2 + + "@secretlint/secretlint-rule-preset-recommend@10.2.2": {} + + "@secretlint/source-creator@10.2.2": + dependencies: + "@secretlint/types": 10.2.2 + istextorbinary: 9.5.0 + + "@secretlint/types@10.2.2": {} + + "@shikijs/core@3.13.0": + dependencies: + "@shikijs/types": 3.13.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 + hast-util-to-html: 9.0.5 + + "@shikijs/engine-javascript@3.13.0": + dependencies: + "@shikijs/types": 3.13.0 + "@shikijs/vscode-textmate": 10.0.2 + oniguruma-to-es: 4.3.6 + + "@shikijs/engine-oniguruma@3.13.0": + dependencies: + "@shikijs/types": 3.13.0 + "@shikijs/vscode-textmate": 10.0.2 + + "@shikijs/langs@3.13.0": + dependencies: + "@shikijs/types": 3.13.0 + + "@shikijs/themes@3.13.0": + dependencies: + "@shikijs/types": 3.13.0 + + "@shikijs/types@3.13.0": + dependencies: + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 + + "@shikijs/vscode-textmate@10.0.2": {} + + "@sindresorhus/merge-streams@2.3.0": {} + + "@standard-schema/spec@1.1.0": {} + + "@textlint/ast-node-types@15.7.1": {} + + "@textlint/linter-formatter@15.7.1(supports-color@8.1.1)": + dependencies: + "@azu/format-text": 1.0.2 + "@azu/style-format": 1.0.1 + "@textlint/module-interop": 15.7.1 + "@textlint/resolver": 15.7.1 + "@textlint/types": 15.7.1 + chalk: 4.1.2 + debug: 4.4.3(supports-color@8.1.1) + js-yaml: 4.2.0 + lodash: 4.18.1 + pluralize: 2.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + table: 6.9.0 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + "@textlint/module-interop@15.7.1": {} + + "@textlint/resolver@15.7.1": {} + + "@textlint/types@15.7.1": + dependencies: + "@textlint/ast-node-types": 15.7.1 + + "@tybys/wasm-util@0.10.2": + dependencies: + tslib: 2.8.1 + optional: true + + "@tybys/wasm-util@0.9.0": + dependencies: + tslib: 2.8.1 + + "@types/chai@5.2.3": + dependencies: + "@types/deep-eql": 4.0.2 + assertion-error: 2.0.1 + + "@types/deep-eql@4.0.2": {} + + "@types/esquery@1.5.4": + dependencies: + "@types/estree": 1.0.9 + + "@types/esrecurse@4.3.1": {} + + "@types/estree@1.0.9": {} + + "@types/hast@3.0.4": + dependencies: + "@types/unist": 3.0.3 + + "@types/json-schema@7.0.15": {} + + "@types/mdast@4.0.4": + dependencies: + "@types/unist": 3.0.3 + + "@types/mocha@10.0.10": {} + + "@types/node@25.9.3": + dependencies: + undici-types: 7.24.6 + + "@types/normalize-package-data@2.4.4": {} + + "@types/parse-json@4.0.2": {} + + "@types/sarif@2.1.7": {} + + "@types/unist@3.0.3": {} + + "@types/vscode-webview@1.57.5": {} + + "@types/vscode@1.105.0": {} + + "@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)": + dependencies: + "@eslint-community/regexpp": 4.12.2 + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/type-utils": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + eslint: 10.5.0(supports-color@8.1.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/parser@8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)": + dependencies: + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(supports-color@8.1.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/project-service@8.61.1(typescript@6.0.3)": + dependencies: + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/scope-manager@8.61.1": + dependencies: + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/visitor-keys": 8.61.1 + + "@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.3)": + dependencies: + typescript: 6.0.3 + + "@typescript-eslint/type-utils@8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)": + dependencies: + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(typescript@6.0.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.5.0(supports-color@8.1.1) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/types@8.61.1": {} + + "@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.3)": + dependencies: + "@typescript-eslint/project-service": 8.61.1(typescript@6.0.3) + "@typescript-eslint/tsconfig-utils": 8.61.1(typescript@6.0.3) + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/visitor-keys": 8.61.1 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 10.2.5 + semver: 7.8.4 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/utils@8.61.1(eslint@10.5.0(supports-color@8.1.1))(typescript@6.0.3)": + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(supports-color@8.1.1)) + "@typescript-eslint/scope-manager": 8.61.1 + "@typescript-eslint/types": 8.61.1 + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + eslint: 10.5.0(supports-color@8.1.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/visitor-keys@8.61.1": + dependencies: + "@typescript-eslint/types": 8.61.1 + eslint-visitor-keys: 5.0.1 + + "@typespec/ts-http-runtime@0.3.6": + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + "@ungap/structured-clone@1.3.1": {} + + "@vitest/coverage-v8@4.1.2(vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0))": + dependencies: + "@bcoe/v8-coverage": 1.0.2 + "@vitest/utils": 4.1.2 + ast-v8-to-istanbul: 1.0.4 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.3 + obug: 2.1.3 + std-env: 4.1.0 + tinyrainbow: 3.1.0 + vitest: 4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + + "@vitest/expect@4.1.2": + dependencies: + "@standard-schema/spec": 1.1.0 + "@types/chai": 5.2.3 + "@vitest/spy": 4.1.2 + "@vitest/utils": 4.1.2 + chai: 6.2.2 + tinyrainbow: 3.1.0 + + "@vitest/mocker@4.1.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0))": + dependencies: + "@vitest/spy": 4.1.2 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + + "@vitest/pretty-format@4.1.2": + dependencies: + tinyrainbow: 3.1.0 + + "@vitest/runner@4.1.2": + dependencies: + "@vitest/utils": 4.1.2 + pathe: 2.0.3 + + "@vitest/snapshot@4.1.2": + dependencies: + "@vitest/pretty-format": 4.1.2 + "@vitest/utils": 4.1.2 + magic-string: 0.30.21 + pathe: 2.0.3 + + "@vitest/spy@4.1.2": {} + + "@vitest/utils@4.1.2": + dependencies: + "@vitest/pretty-format": 4.1.2 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 + + "@vscode/codicons@0.0.41": {} + + "@vscode/test-electron@3.0.0": + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + jszip: 3.10.1 + ora: 8.2.0 + semver: 7.8.4 + transitivePeerDependencies: + - supports-color + + "@vscode/vsce-sign-alpine-arm64@2.0.6": + optional: true + + "@vscode/vsce-sign-alpine-x64@2.0.6": + optional: true + + "@vscode/vsce-sign-darwin-arm64@2.0.6": + optional: true + + "@vscode/vsce-sign-darwin-x64@2.0.6": + optional: true + + "@vscode/vsce-sign-linux-arm64@2.0.6": + optional: true + + "@vscode/vsce-sign-linux-arm@2.0.6": + optional: true + + "@vscode/vsce-sign-linux-x64@2.0.6": + optional: true + + "@vscode/vsce-sign-win32-arm64@2.0.6": + optional: true + + "@vscode/vsce-sign-win32-x64@2.0.6": + optional: true + + "@vscode/vsce-sign@2.0.9": + optionalDependencies: + "@vscode/vsce-sign-alpine-arm64": 2.0.6 + "@vscode/vsce-sign-alpine-x64": 2.0.6 + "@vscode/vsce-sign-darwin-arm64": 2.0.6 + "@vscode/vsce-sign-darwin-x64": 2.0.6 + "@vscode/vsce-sign-linux-arm": 2.0.6 + "@vscode/vsce-sign-linux-arm64": 2.0.6 + "@vscode/vsce-sign-linux-x64": 2.0.6 + "@vscode/vsce-sign-win32-arm64": 2.0.6 + "@vscode/vsce-sign-win32-x64": 2.0.6 + + "@vscode/vsce@3.9.2(supports-color@8.1.1)": + dependencies: + "@azure/identity": 4.13.1 + "@secretlint/node": 10.2.2(supports-color@8.1.1) + "@secretlint/secretlint-formatter-sarif": 10.2.2 + "@secretlint/secretlint-rule-no-dotenv": 10.2.2 + "@secretlint/secretlint-rule-preset-recommend": 10.2.2 + "@vscode/vsce-sign": 2.0.9 + azure-devops-node-api: 12.5.0 + chalk: 4.1.2 + cheerio: 1.2.0 + cockatiel: 3.2.1 + commander: 12.1.0 + form-data: 4.0.5 + glob: 13.0.6 + hosted-git-info: 4.1.0 + jsonc-parser: 3.3.1 + leven: 3.1.0 + markdown-it: 14.2.0 + mime: 1.6.0 + minimatch: 10.2.5 + parse-semver: 1.1.1 + read: 1.0.7 + secretlint: 10.2.2(supports-color@8.1.1) + semver: 7.8.4 + tmp: 0.2.6 + typed-rest-client: 1.8.11 + url-join: 4.0.1 + xml2js: 0.5.0 + yauzl: 3.4.0 + yazl: 2.5.1 + optionalDependencies: + keytar: 7.9.0 + transitivePeerDependencies: + - supports-color + + "@yarnpkg/lockfile@1.1.0": {} + + "@zkochan/js-yaml@0.0.7": + dependencies: + argparse: 2.0.1 + + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} + + address@2.0.3: {} + + agent-base@7.1.4: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@2.0.1: {} + + assertion-error@2.0.1: {} + + ast-v8-to-istanbul@1.0.4: + dependencies: + "@jridgewell/trace-mapping": 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 + + astral-regex@2.0.0: {} + + async@3.2.6: {} + + asynckit@0.4.0: {} + + axios@1.16.0: + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.5 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + + azure-devops-node-api@12.5.0: + dependencies: + tunnel: 0.0.6 + typed-rest-client: 1.8.11 + + babel-plugin-const-enum@1.2.0(@babel/core@7.29.7): + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-plugin-utils": 7.29.7 + "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.7) + "@babel/traverse": 7.29.7 + transitivePeerDependencies: + - supports-color + + babel-plugin-macros@3.1.0: + dependencies: + "@babel/runtime": 7.29.7 + cosmiconfig: 7.1.0 + resolve: 1.22.12 + + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): + dependencies: + "@babel/compat-data": 7.29.7 + "@babel/core": 7.29.7 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7): + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): + dependencies: + "@babel/core": 7.29.7 + "@babel/helper-define-polyfill-provider": 0.6.8(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-typescript-metadata@0.3.2: + dependencies: + "@babel/helper-plugin-utils": 7.29.7 + + balanced-match@4.0.3: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.10.37: {} + + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + + binaryextensions@6.11.0: + dependencies: + editions: 6.22.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + boolbase@1.0.0: {} + + boundary@2.0.0: {} + + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.3 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browser-stdout@1.3.1: {} + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.37 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.373 + node-releases: 2.0.47 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + buffer-crc32@0.2.13: {} + + buffer-equal-constant-time@1.0.1: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001799: {} + + ccount@2.0.1: {} + + chai@6.2.2: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.2.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.28.0 + whatwg-mimetype: 4.0.0 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + chownr@1.1.4: + optional: true + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.6.1: {} + + cli-spinners@2.9.2: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + cockatiel@3.2.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + columnify@1.6.0: + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@12.1.0: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.49.0: + dependencies: + browserslist: 4.28.2 + + core-util-is@1.0.3: {} + + corser@2.0.1: {} + + cosmiconfig@7.1.0: + dependencies: + "@types/parse-json": 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.3 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-what@6.2.2: {} + + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + decamelize@4.0.0: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + optional: true + + deep-extend@0.6.0: + optional: true + + deep-is@0.1.4: {} + + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-lazy-prop@2.0.0: {} + + define-lazy-prop@3.0.0: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-libc@2.1.2: {} + + detect-port@2.1.0: + dependencies: + address: 2.0.3 + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff@8.0.4: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dotenv-expand@12.0.3: + dependencies: + dotenv: 16.4.7 + + dotenv@16.4.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + editions@6.22.0: + dependencies: + version-range: 4.15.0 + + ejs@5.0.1: {} + + electron-to-chromium@1.5.373: {} + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + enquirer@2.3.6: + dependencies: + ansi-colors: 4.1.3 + + entities@4.5.0: {} + + entities@6.0.1: {} + + entities@7.0.1: {} + + environment@1.1.0: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@2.1.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.28.1: + optionalDependencies: + "@esbuild/aix-ppc64": 0.28.1 + "@esbuild/android-arm": 0.28.1 + "@esbuild/android-arm64": 0.28.1 + "@esbuild/android-x64": 0.28.1 + "@esbuild/darwin-arm64": 0.28.1 + "@esbuild/darwin-x64": 0.28.1 + "@esbuild/freebsd-arm64": 0.28.1 + "@esbuild/freebsd-x64": 0.28.1 + "@esbuild/linux-arm": 0.28.1 + "@esbuild/linux-arm64": 0.28.1 + "@esbuild/linux-ia32": 0.28.1 + "@esbuild/linux-loong64": 0.28.1 + "@esbuild/linux-mips64el": 0.28.1 + "@esbuild/linux-ppc64": 0.28.1 + "@esbuild/linux-riscv64": 0.28.1 + "@esbuild/linux-s390x": 0.28.1 + "@esbuild/linux-x64": 0.28.1 + "@esbuild/netbsd-arm64": 0.28.1 + "@esbuild/netbsd-x64": 0.28.1 + "@esbuild/openbsd-arm64": 0.28.1 + "@esbuild/openbsd-x64": 0.28.1 + "@esbuild/openharmony-arm64": 0.28.1 + "@esbuild/sunos-x64": 0.28.1 + "@esbuild/win32-arm64": 0.28.1 + "@esbuild/win32-ia32": 0.28.1 + "@esbuild/win32-x64": 0.28.1 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-scope@9.1.2: + dependencies: + "@types/esrecurse": 4.3.1 + "@types/estree": 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.5.0(supports-color@8.1.1): + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@10.5.0(supports-color@8.1.1)) + "@eslint-community/regexpp": 4.12.2 + "@eslint/config-array": 0.23.5(supports-color@8.1.1) + "@eslint/config-helpers": 0.6.0 + "@eslint/core": 1.2.1 + "@eslint/plugin-kit": 0.7.2 + "@humanfs/node": 0.16.8 + "@humanwhocodes/module-importer": 1.0.1 + "@humanwhocodes/retry": 0.4.3 + "@types/estree": 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@11.2.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@3.0.3: + dependencies: + "@types/estree": 1.0.9 + + esutils@2.0.3: {} + + eventemitter3@4.0.7: {} + + expand-template@2.0.3: + optional: true + + expect-type@1.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.2: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flat@5.0.2: {} + + flatted@3.4.2: {} + + follow-redirects@1.16.0: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + fs-constants@1.0.0: {} + + fs-extra@11.3.5: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.6.0: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + github-from-package@0.0.0: + optional: true + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@13.0.6: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + + globals@16.4.0: {} + + globby@14.1.0: + dependencies: + "@sindresorhus/merge-streams": 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hast-util-to-html@9.0.5: + dependencies: + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + "@types/hast": 3.0.4 + + he@1.2.0: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-escaper@2.0.2: {} + + html-void-elements@3.0.0: {} + + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.16.0 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-server@14.1.1(supports-color@8.1.1): + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.8 + opener: 1.5.2 + portfinder: 1.0.38(supports-color@8.1.1) + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + immediate@3.0.6: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + index-to-position@1.2.0: {} + + inherits@2.0.4: {} + + ini@1.3.8: + optional: true + + is-arrayish@0.2.1: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@1.0.0: {} + + is-interactive@2.0.0: {} + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@2.1.0: {} + + is-unicode-supported@0.1.0: {} + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + istextorbinary@9.5.0: + dependencies: + binaryextensions: 6.11.0 + editions: 6.22.0 + textextensions: 6.11.0 + + js-tokens@10.0.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.2.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonwebtoken@9.0.3: + dependencies: + jws: 4.0.1 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.8.4 + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + + keytar@7.9.0: + dependencies: + node-addon-api: 4.3.0 + prebuild-install: 7.1.3 + optional: true + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + lines-and-columns@1.2.4: {} + + lines-and-columns@2.0.3: {} + + linkify-it@5.0.1: + dependencies: + uc.micro: 2.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.debounce@4.0.8: {} + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.once@4.1.1: {} + + lodash.truncate@4.4.2: {} + + lodash@4.18.1: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-symbols@6.0.0: + dependencies: + chalk: 5.6.2 + is-unicode-supported: 1.3.0 + + lru-cache@10.4.3: {} + + lru-cache@11.5.1: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.21: + dependencies: + "@jridgewell/sourcemap-codec": 1.5.5 + + magicast@0.5.3: + dependencies: + "@babel/parser": 7.29.7 + "@babel/types": 7.29.7 + source-map-js: 1.2.1 + + make-dir@4.0.0: + dependencies: + semver: 7.8.4 + + markdown-it@14.2.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.1 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + math-intrinsics@1.1.0: {} + + mdast-util-to-hast@13.2.1: + dependencies: + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@ungap/structured-clone": 1.3.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdurl@2.0.0: {} + + merge2@1.4.1: {} + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-encode@2.0.1: {} + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mimic-fn@2.1.0: {} + + mimic-function@5.0.1: {} + + mimic-response@3.1.0: + optional: true + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + mkdirp-classic@0.5.3: + optional: true + + mocha@12.0.0-beta-10: + dependencies: + browser-stdout: 1.3.1 + chokidar: 5.0.0 + debug: 4.4.3(supports-color@8.1.1) + diff: 8.0.4 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 13.0.6 + he: 1.2.0 + is-path-inside: 3.0.3 + is-unicode-supported: 0.1.0 + js-yaml: 4.2.0 + minimatch: 10.2.5 + ms: 2.1.3 + picocolors: 1.1.1 + serialize-javascript: 7.0.5 + strip-json-comments: 5.0.3 + supports-color: 8.1.1 + workerpool: 9.3.4 + yargs: 17.7.2 + yargs-parser: 21.1.1 + yargs-unparser: 2.0.0 + + ms@2.1.3: {} + + mute-stream@0.0.8: {} + + nanoid@3.3.12: {} + + napi-build-utils@2.0.0: + optional: true + + natural-compare@1.4.0: {} + + node-abi@3.92.0: + dependencies: + semver: 7.8.4 + optional: true + + node-addon-api@4.3.0: + optional: true + + node-releases@2.0.47: {} + + node-sarif-builder@3.4.0: + dependencies: + "@types/sarif": 2.1.7 + fs-extra: 11.3.5 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.8.4 + validate-npm-package-license: 3.0.4 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + nx@23.0.0: + dependencies: + "@emnapi/core": 1.4.5 + "@emnapi/runtime": 1.4.5 + "@emnapi/wasi-threads": 1.0.4 + "@jest/diff-sequences": 30.0.1 + "@napi-rs/wasm-runtime": 0.2.4 + "@tybys/wasm-util": 0.9.0 + "@yarnpkg/lockfile": 1.1.0 + "@zkochan/js-yaml": 0.0.7 + ansi-colors: 4.1.3 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + argparse: 2.0.1 + asynckit: 0.4.0 + axios: 1.16.0 + balanced-match: 4.0.3 + base64-js: 1.5.1 + bl: 4.1.0 + brace-expansion: 5.0.6 + buffer: 5.7.1 + call-bind-apply-helpers: 1.0.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 8.0.1 + clone: 1.0.4 + color-convert: 2.0.1 + color-name: 1.1.4 + combined-stream: 1.0.8 + defaults: 1.0.4 + define-lazy-prop: 2.0.0 + delayed-stream: 1.0.0 + dotenv: 16.4.7 + dotenv-expand: 12.0.3 + dunder-proto: 1.0.1 + ejs: 5.0.1 + emoji-regex: 8.0.0 + end-of-stream: 1.4.5 + enquirer: 2.3.6 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + escalade: 3.2.0 + escape-string-regexp: 1.0.5 + figures: 3.2.0 + flat: 5.0.2 + follow-redirects: 1.16.0 + form-data: 4.0.5 + fs-constants: 1.0.0 + function-bind: 1.1.2 + get-caller-file: 2.0.5 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + has-flag: 4.0.0 + has-symbols: 1.1.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + ieee754: 1.2.1 + ignore: 7.0.5 + inherits: 2.0.4 + is-docker: 2.2.1 + is-fullwidth-code-point: 3.0.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + is-wsl: 2.2.0 + isexe: 2.0.0 + json5: 2.2.3 + jsonc-parser: 3.3.1 + lines-and-columns: 2.0.3 + log-symbols: 4.1.0 + math-intrinsics: 1.1.0 + mime-db: 1.52.0 + mime-types: 2.1.35 + mimic-fn: 2.1.0 + minimatch: 10.2.5 + minimist: 1.2.8 + npm-run-path: 4.0.1 + once: 1.4.0 + onetime: 5.1.2 + open: 8.4.2 + ora: 5.4.1 + path-key: 3.1.1 + picocolors: 1.1.1 + proxy-from-env: 2.1.0 + readable-stream: 3.6.2 + require-directory: 2.1.1 + resolve.exports: 2.0.3 + restore-cursor: 3.1.0 + safe-buffer: 5.2.1 + semver: 7.7.4 + signal-exit: 3.0.7 + smol-toml: 1.6.1 + string-width: 4.2.3 + string_decoder: 1.3.0 + strip-ansi: 6.0.1 + strip-bom: 3.0.0 + supports-color: 7.2.0 + tar-stream: 2.2.0 + tmp: 0.2.6 + tsconfig-paths: 4.2.0 + tslib: 2.8.1 + util-deprecate: 1.0.2 + wcwidth: 1.0.1 + which: 3.0.1 + wrap-ansi: 7.0.0 + wrappy: 1.0.2 + y18n: 5.0.8 + yaml: 2.9.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + optionalDependencies: + "@nx/nx-darwin-arm64": 23.0.0 + "@nx/nx-darwin-x64": 23.0.0 + "@nx/nx-freebsd-x64": 23.0.0 + "@nx/nx-linux-arm-gnueabihf": 23.0.0 + "@nx/nx-linux-arm64-gnu": 23.0.0 + "@nx/nx-linux-arm64-musl": 23.0.0 + "@nx/nx-linux-x64-gnu": 23.0.0 + "@nx/nx-linux-x64-musl": 23.0.0 + "@nx/nx-win32-arm64-msvc": 23.0.0 + "@nx/nx-win32-x64-msvc": 23.0.0 + transitivePeerDependencies: + - debug + + object-inspect@1.13.4: {} + + obug@2.1.3: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + open@10.2.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + opener@1.5.2: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + ora@8.2.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@7.0.4: {} + + pako@1.0.11: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + "@babel/code-frame": 7.29.7 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-json@8.3.0: + dependencies: + "@babel/code-frame": 7.29.7 + index-to-position: 1.2.0 + type-fest: 4.41.0 + + parse-semver@1.1.1: + dependencies: + semver: 5.7.1 + + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + + path-type@4.0.0: {} + + path-type@6.0.0: {} + + pathe@2.0.3: {} + + pend@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + pluralize@2.0.0: {} + + pluralize@8.0.0: {} + + portfinder@1.0.38(supports-color@8.1.1): + dependencies: + async: 3.2.6 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.92.0 + pump: 3.0.4 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.4 + tunnel-agent: 0.6.0 + optional: true + + prelude-ls@1.2.1: {} + + prettier@3.6.2: {} + + process-nextick-args@2.0.1: {} + + property-information@7.2.0: {} + + proxy-from-env@2.1.0: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + optional: true + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + qs@6.15.2: + dependencies: + side-channel: 1.1.1 + + queue-microtask@1.2.3: {} + + rc-config-loader@4.1.4(supports-color@8.1.1): + dependencies: + debug: 4.4.3(supports-color@8.1.1) + js-yaml: 4.2.0 + json5: 2.2.3 + require-from-string: 2.0.2 + transitivePeerDependencies: + - supports-color + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + optional: true + + read-pkg@9.0.1: + dependencies: + "@types/normalize-package-data": 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.41.0 + unicorn-magic: 0.1.0 + + read@1.0.7: + dependencies: + mute-stream: 0.0.8 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@5.0.0: {} + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.2 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.2: + dependencies: + jsesc: 3.1.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + resolve-from@4.0.0: {} + + resolve.exports@2.0.3: {} + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + reusify@1.1.0: {} + + rolldown@1.0.3: + dependencies: + "@oxc-project/types": 0.133.0 + "@rolldown/pluginutils": 1.0.1 + optionalDependencies: + "@rolldown/binding-android-arm64": 1.0.3 + "@rolldown/binding-darwin-arm64": 1.0.3 + "@rolldown/binding-darwin-x64": 1.0.3 + "@rolldown/binding-freebsd-x64": 1.0.3 + "@rolldown/binding-linux-arm-gnueabihf": 1.0.3 + "@rolldown/binding-linux-arm64-gnu": 1.0.3 + "@rolldown/binding-linux-arm64-musl": 1.0.3 + "@rolldown/binding-linux-ppc64-gnu": 1.0.3 + "@rolldown/binding-linux-s390x-gnu": 1.0.3 + "@rolldown/binding-linux-x64-gnu": 1.0.3 + "@rolldown/binding-linux-x64-musl": 1.0.3 + "@rolldown/binding-openharmony-arm64": 1.0.3 + "@rolldown/binding-wasm32-wasi": 1.0.3 + "@rolldown/binding-win32-arm64-msvc": 1.0.3 + "@rolldown/binding-win32-x64-msvc": 1.0.3 + + run-applescript@7.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sax@1.6.0: {} + + secretlint@10.2.2(supports-color@8.1.1): + dependencies: + "@secretlint/config-creator": 10.2.2 + "@secretlint/formatter": 10.2.2(supports-color@8.1.1) + "@secretlint/node": 10.2.2(supports-color@8.1.1) + "@secretlint/profiler": 10.2.2 + debug: 4.4.3(supports-color@8.1.1) + globby: 14.1.0 + read-pkg: 9.0.1 + transitivePeerDependencies: + - supports-color + + secure-compare@3.0.1: {} + + semver@5.7.1: {} + + semver@6.3.1: {} + + semver@7.7.4: {} + + semver@7.8.4: {} + + serialize-javascript@7.0.5: {} + + setimmediate@1.0.5: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@3.13.0: + dependencies: + "@shikijs/core": 3.13.0 + "@shikijs/engine-javascript": 3.13.0 + "@shikijs/engine-oniguruma": 3.13.0 + "@shikijs/langs": 3.13.0 + "@shikijs/themes": 3.13.0 + "@shikijs/types": 3.13.0 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-concat@1.0.1: + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + + slash@5.1.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + smol-toml@1.6.1: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.19: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + space-separated-tokens@2.0.2: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.23 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-license-ids@3.0.23: {} + + stackback@0.0.2: {} + + std-env@4.1.0: {} + + stdin-discarder@0.2.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.2.2 + + strip-bom@3.0.0: {} + + strip-json-comments@2.0.1: + optional: true + + strip-json-comments@5.0.3: {} + + structured-source@4.0.0: + dependencies: + boundary: 2.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + table@6.9.0: + dependencies: + ajv: 8.20.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tar-fs@2.1.4: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.4 + tar-stream: 2.2.0 + optional: true + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + terminal-link@4.0.0: + dependencies: + ansi-escapes: 7.3.0 + supports-hyperlinks: 3.2.0 + + text-table@0.2.0: {} + + textextensions@6.11.0: + dependencies: + editions: 6.22.0 + + tinybench@2.9.0: {} + + tinyexec@1.2.4: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tinyrainbow@3.1.0: {} + + tmp@0.2.6: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + trim-lines@3.0.1: {} + + ts-api-utils@2.5.0(typescript@6.0.3): + dependencies: + typescript: 6.0.3 + + ts-dedent@2.2.0: {} + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + tunnel@0.0.6: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@4.41.0: {} + + typed-rest-client@1.8.11: + dependencies: + qs: 6.15.2 + tunnel: 0.0.6 + underscore: 1.13.8 + + typescript-eslint@8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): + dependencies: + "@typescript-eslint/eslint-plugin": 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/parser": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + "@typescript-eslint/typescript-estree": 8.61.1(typescript@6.0.3) + "@typescript-eslint/utils": 8.61.1(eslint@10.5.0(supports-color@8.1.1))(typescript@6.0.3) + eslint: 10.5.0(supports-color@8.1.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + typescript@6.0.3: {} + + uc.micro@2.1.0: {} + + underscore@1.13.8: {} + + undici-types@7.24.6: {} + + undici@7.28.0: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + unicorn-magic@0.1.0: {} + + unicorn-magic@0.3.0: {} + + union@0.5.0: + dependencies: + qs: 6.15.2 + + unist-util-is@6.0.1: + dependencies: + "@types/unist": 3.0.3 + + unist-util-position@5.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + "@types/unist": 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + "@types/unist": 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + universalify@2.0.1: {} + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-join@4.0.1: {} + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + version-range@4.15.0: {} + + vfile-message@4.0.3: + dependencies: + "@types/unist": 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + "@types/unist": 3.0.3 + vfile-message: 4.0.3 + + vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.3 + tinyglobby: 0.2.17 + optionalDependencies: + "@types/node": 25.9.3 + esbuild: 0.28.1 + fsevents: 2.3.3 + yaml: 2.9.0 + + vitest@4.1.2(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0): + dependencies: + "@vitest/expect": 4.1.2 + "@vitest/mocker": 4.1.2(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0)) + "@vitest/pretty-format": 4.1.2 + "@vitest/runner": 4.1.2 + "@vitest/snapshot": 4.1.2 + "@vitest/spy": 4.1.2 + "@vitest/utils": 4.1.2 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + "@types/node": 25.9.3 + transitivePeerDependencies: + - "@vitejs/devtools" + - esbuild + - jiti + - less + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + + vscode-jsonrpc@9.0.0: {} + + vscode-languageclient@10.0.0: + dependencies: + minimatch: 10.2.5 + semver: 7.8.4 + vscode-languageserver-protocol: 3.18.0 + vscode-languageserver-textdocument: 1.0.13 + + vscode-languageserver-protocol@3.18.0: + dependencies: + vscode-jsonrpc: 9.0.0 + vscode-languageserver-types: 3.18.0 + + vscode-languageserver-textdocument@1.0.13: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver-types@3.18.0: {} + + vscode-uri@3.1.0: {} + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@3.0.1: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + workerpool@9.3.4: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.1 + + xml2js@0.5.0: + dependencies: + sax: 1.6.0 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@1.10.3: {} + + yaml@2.9.0: {} + + yargs-parser@21.1.1: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@3.4.0: + dependencies: + pend: 1.2.0 + + yazl@2.5.1: + dependencies: + buffer-crc32: 0.2.13 + + yocto-queue@0.1.0: {} + + zwitch@2.0.4: {} + +time: + "@eslint/js@10.0.1": "2026-02-06T22:34:56.290Z" + "@nx/esbuild@23.0.0": "2026-06-16T16:07:04.929Z" + "@nx/eslint@23.0.0": "2026-06-16T16:07:24.972Z" + "@nx/js@23.0.0": "2026-06-16T16:07:12.233Z" + "@nx/vitest@23.0.0": "2026-06-16T16:07:04.923Z" + "@nx/web@23.0.0": "2026-06-16T16:07:39.880Z" + "@shikijs/types@3.13.0": "2025-09-19T15:55:59.443Z" + "@types/mocha@10.0.10": "2024-11-20T18:38:25.531Z" + "@types/node@25.9.3": "2026-06-10T22:15:10.607Z" + "@types/vscode-webview@1.57.5": "2024-01-30T22:04:14.566Z" + "@types/vscode@1.105.0": "2025-10-09T18:02:42.858Z" + "@vitest/coverage-v8@4.1.2": "2026-03-26T14:37:07.834Z" + "@vscode/codicons@0.0.41": "2025-10-08T14:41:29.534Z" + "@vscode/test-electron@3.0.0": "2026-06-08T18:19:54.566Z" + "@vscode/vsce@3.9.2": "2026-06-03T21:27:47.500Z" + esbuild@0.28.1: "2026-06-11T22:47:05.085Z" + eslint@10.5.0: "2026-06-12T17:54:40.577Z" + glob@13.0.6: "2026-02-19T17:26:33.269Z" + globals@16.4.0: "2025-09-09T19:39:12.191Z" + mocha@12.0.0-beta-10: "2026-02-21T03:18:31.327Z" + nx@23.0.0: "2026-06-16T16:06:46.654Z" + prettier@3.6.2: "2025-06-27T02:53:53.185Z" + shiki@3.13.0: "2025-09-19T15:57:04.838Z" + ts-dedent@2.2.0: "2021-08-01T15:22:31.863Z" + typescript-eslint@8.61.1: "2026-06-15T18:31:57.892Z" + typescript@6.0.3: "2026-04-16T23:38:27.905Z" + vitest@4.1.2: "2026-03-26T14:36:51.447Z" + vscode-languageclient@10.0.0: "2026-06-03T19:58:47.274Z" + vscode-languageserver-types@3.17.5: "2023-09-26T10:23:06.690Z" + vscode-uri@3.1.0: "2025-02-04T18:18:11.908Z" + yaml@2.9.0: "2026-05-11T10:16:24.045Z" diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..861b8dd --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,490 @@ +############################################################################### +# pnpm-workspace.yaml -- PNPM 11 Monorepo Supply-Chain Fortress +# +# Surface contract: +# - pnpm-workspace.yaml: repo-local non-sensitive PNPM policy +# - package.json: exact Node.js + pnpm toolchain pinning +# - .npmrc / auth.ini: auth-local tokens + certificates only +# +# IMPORTANT: +# - This file centralizes the shared Fortress baseline and the monorepo delta. +# - Auth- and registry-secrets never belong here. +############################################################################### + +######################################## +# Supply-chain fortress posture +######################################## + +# `minimumReleaseAge` +# Simple: Delays the adoption of freshly published versions. +# Details: The Fortress baseline is 7 days, not 24 hours. The goal is maximum +# caution against compromised or retracted releases. +# Example: A version published today only becomes installable on the 8th day. +minimumReleaseAge: 10080 + +# `minimumReleaseAgeIgnoreMissingTime` +# Simple: Disables fail-open on missing publish time metadata. +# Details: If the registry does not supply a `time` value, resolution must +# fail rather than silently losing the protective effect. +# Example: A mirror without a `time` field blocks resolution until the issue is clarified. +minimumReleaseAgeIgnoreMissingTime: false + +# `minimumReleaseAgeStrict` +# Simple: Enforces that PNPM aborts hard if versions are too young. +# Details: Without this setting, PNPM might fall back to an overly fresh version +# in case of doubt. This is unacceptable for Fortress governance. +# Example: If no version old enough matches, the install ends with an error. +minimumReleaseAgeStrict: true + +# `minimumReleaseAgeExclude` +# Simple: Defines exceptions from the age gate. +# Details: In the Fortress baseline, the list remains explicitly empty so that no +# convenience approvals for "hot" releases are permitted. +# Example: `[]` signals that there are no approved immediate exceptions. +minimumReleaseAgeExclude: [] + +# `trustPolicy` +# Simple: Blocks versions whose trust level has decreased compared to previous releases. +# Details: This reduces the risk of accidentally accepting a less trustworthy +# follow-up release. +# Example: A package with a trust downgrade will not be installed. +trustPolicy: no-downgrade + +# `trustPolicyExclude` +# Simple: Defines exact version-pinned exceptions from the trust policy. +# Details: The Fortress baseline normally keeps this list explicitly empty so +# that no hidden trust exceptions exist. This workspace currently carries one +# reviewed break-glass exception for `semver@6.3.1`. +# Why this exception exists: `@nx/js@23.0.0` pulls `@babel/core@7.29.7`, and +# that consumer declares `semver: ^6.3.1`. The trust-downgrade reference owner +# requires an exact override first only when a contract-compatible repair exists. +# Why we do NOT use `overrides` here: within the relevant `6.3.x` line, the only +# candidates are `6.3.0` and `6.3.1`. `6.3.0` is below the consumer contract +# floor `^6.3.1`, so there is no allowed same-line patch repair candidate. +# Scope and removal rule: keep the waiver pinned to this one exact version only, +# re-check it whenever Nx or Babel moves, and remove it as soon as upstream ships +# a trust-compliant graph. +# Example: `semver@6.3.1` waives only that blocked version, not the whole package family. +trustPolicyExclude: + - semver@6.3.1 + +# `blockExoticSubdeps` +# Simple: Forbids Git or tarball sources in transitive dependencies. +# Details: Only direct dependencies may use exotic sources; transitive +# sources must originate from controlled registries. +# Example: A transitive `https://...tgz` dependency is rejected. +blockExoticSubdeps: true + +# `strictDepBuilds` +# Simple: Requires explicit decisions for dependency build scripts. +# Details: A new `postinstall` in a dependency must not run silently, +# but must be reviewed and approved. +# Example: A package with a new install script fails until evaluated in `allowBuilds`. +strictDepBuilds: true + +# `allowBuilds` +# Simple: Defines the explicit allow/deny list for dependency build scripts. +# Details: Only the bundle-first VSIX delivery path and the explicitly approved +# toolchain packages may execute install/build scripts. +# Example: `esbuild: true` allows `esbuild`, `nx: true` allows the reviewed +# Nx postinstall path, `keytar: false` forbids `keytar`. +allowBuilds: + "@vscode/vsce-sign": false + esbuild: true + keytar: false + nx: true + +# `dangerouslyAllowAllBuilds` +# Simple: Opens up blanket-wide build script execution. +# Details: In a Fortress architecture, this value always remains `false`. +# Example: `true` would be a deliberate security breach and is forbidden here. +dangerouslyAllowAllBuilds: false + +######################################## +# Registry and transport trust +######################################## + +# `registries` +# Simple: Defines the approved registry destinations. +# Details: This repository currently resolves through the public npm registry. +# Example: `default` points to the registry approved for this install domain. +registries: + default: https://registry.npmjs.org/ + +# `strictSsl` +# Simple: Enforces TLS certificate verification for registry access. +# Details: This is the minimum hardening against MITM and faulty certificate chains. +# Example: A registry with an invalid certificate will not be accepted. +strictSsl: true + +######################################## +# Toolchain enforcement +######################################## + +# `nodeVersion` +# Simple: Defines the root engine baseline for dependency checks. +# Details: This is the control-plane engine-gate surface, not a blanket equality +# target for every package-local runtime contract. +# Example: A dependency that requires Node 27 is rejected by the root policy. +nodeVersion: 26.2.0 + +# `engineStrict` +# Simple: Makes engine checks hard instead of advisory. +# Details: This ensures no dependencies can be introduced that violate the +# approved runtime line. +# Example: A package with `engines.node: >=27` fails immediately. +engineStrict: true + +# `pmOnFail` +# Simple: Aborts if the running pnpm version does not match exactly. +# Details: The Fortress posture is `error`, not `download`. The toolchain must +# be pre-provisioned and approved. +# Example: pnpm `11.1.0` is blocked against a repo with `11.7.0`. +pmOnFail: error + +# `runtimeOnFail` +# Simple: Aborts if a declared runtime surface is not present or matching. +# Details: Here too, fail-closed applies instead of automatic fetching. +# Example: A runner without the approved declared runtime is stopped. +runtimeOnFail: error + +######################################## +# Lockfile and resolution discipline +######################################## + +# `lockfile` +# Simple: Enforces the use of a lockfile. +# Details: A Fortress repo never operates without a deterministic lockfile. +# Example: `false` would be an architectural error here. +lockfile: true + +# `preferFrozenLockfile` +# Simple: Prefers headless, unchanged installations. +# Details: CI and regulated workflows should not resolve silently if the +# lockfile already describes the desired graph. +# Example: A manifest change without a lockfile update leads to an error. +preferFrozenLockfile: true + +# `lockfileIncludeTarballUrl` +# Simple: Saves tarball sources directly in the lockfile. +# Details: This improves traceability and auditability of origin. +# Example: The lockfile explicitly shows which artifact endpoint the package originates from. +lockfileIncludeTarballUrl: true + +# `resolutionMode` +# Simple: Selects the PNPM resolution strategy. +# Details: `time-based` reduces the risk of subdependency hijacking because +# transitive updates remain tied in time to direct dependency releases. +# Example: A direct dep update only pulls in temporally matching subdeps. +resolutionMode: time-based + +# `registrySupportsTimeField` +# Simple: Enables optimized time metadata support for compatible registries. +# Details: This value remains `false` until the full metadata path used by this +# install domain is proven to deliver the required `time` field consistently. +# Example: Resolution falls back to the safer compatibility path instead of assuming registry support. +registrySupportsTimeField: false + +######################################## +# Manifest save policy +######################################## + +# `saveExact` +# Simple: Saves newly added dependency versions as exact versions instead of ranges. +# Details: This prevents caret or tilde ranges from being written during `pnpm add` +# and keeps every new manifest entry pinned to an explicitly approved version. +# Example: `pnpm add lodash@4.17.21` writes `4.17.21` instead of `^4.17.21`. +saveExact: true + +# `savePrefix` +# Simple: Defines the version prefix for newly saved specs. +# Details: An empty string keeps the serialized spec prefix-free and reinforces +# the exact-version save policy established by `saveExact: true`. +# Example: `1.2.3` instead of `^1.2.3`. +savePrefix: "" + +######################################## +# Workspace topology +######################################## + +# `packages` +# Simple: Defines which directories are part of the monorepo in the first place. +# Details: These globs form the governance boundary for filters, recursion, +# the shared lockfile, and workspace ownership. +# Example: `apps/*` includes all direct child packages under `apps/`. +packages: + - "apps/*" + - "packages/*" + - "tooling/*" + - "!**/test/**" + +# `includeWorkspaceRoot` +# Simple: Keeps the root project out of recursive commands by default. +# Details: This ensures the root remains the control plane and is not accidentally +# treated like a leaf package. +# Example: `false` means that `pnpm -r test` will not automatically run in the root. +includeWorkspaceRoot: false + +# `sharedWorkspaceLockfile` +# Simple: Enforces a shared lockfile for the entire monorepo. +# Details: This reduces uncontrolled drift between packages and centralizes review +# and auditing. +# Example: All packages are governed via a root `pnpm-lock.yaml`. +sharedWorkspaceLockfile: true + +# `disallowWorkspaceCycles` +# Simple: Abruptly aborts the installation process in case of workspace cycles. +# Details: Cycles complicate topological ordering, build order, and root-cause analysis. +# Example: A package `a` must not point back to `b` and back via workspace dependencies. +disallowWorkspaceCycles: true + +# `failIfNoMatch` +# Simple: Causes filter operations to fail if no package is matched. +# Details: This prevents silent green runs that actually did nothing. +# Example: `pnpm --filter missing-package test` ends with an error instead of a silent no-op. +failIfNoMatch: true + +######################################## +# Workspace ownership and save policy +######################################## + +# `linkWorkspacePackages` +# Simple: Prevents implicit local linking when ranges happen to match. +# Details: Local ownership must be explicit via `workspace:`, not via +# a convenient implicit side effect. +# Example: `"foo": "^1.0.0"` must not be silently resolved locally instead of from the registry. +linkWorkspacePackages: false + +# `preferWorkspacePackages` +# Simple: Does NOT automatically prefer local packages over the registry. +# Details: Here too, it is about explicit rather than implicit ownership. +# Example: A local copy is only used if `workspace:` deliberately requests it. +preferWorkspacePackages: false + +# `saveWorkspaceProtocol` +# Simple: Saves local workspace dependencies with an explicit `workspace:` prefix. +# Details: `true` plus `savePrefix: ''` writes exact local ownership into the manifest. +# Example: `workspace:1.2.3` instead of an unclear `^1.2.3`. +saveWorkspaceProtocol: true + +# `injectWorkspacePackages` +# Simple: Prevents hard workspace injection by default. +# Details: Injected dependencies are only permitted in genuine peer graph special cases, +# not as a default. +# Example: A package with deviating peer contexts is targeted for opt-in injection later. +injectWorkspacePackages: false + +# `dedupeInjectedDeps` +# Simple: Deduplicates injected dependencies when peer-wise safe. +# Details: This is not a relaxation, but rather reduces unnecessary duplicates in special cases. +# Example: Identical peer contexts lead to a reusable instance. +dedupeInjectedDeps: true + +######################################## +# Dependency layout and anti-hoisting +######################################## + +# `nodeLinker` +# Simple: Selects the installation model for Node dependencies. +# Details: `isolated` is the strictest general default choice for correct +# dependency isolation. +# Example: The project only sees declared dependencies. +nodeLinker: isolated + +# `enableGlobalVirtualStore` +# Simple: Prevents cross-project global virtual store usage. +# Details: A Fortress policy avoids implicit cross-project sharing paths +# and the associated `NODE_PATH` complexity. +# Example: Dependencies are materialized project-locally rather than via a global virtual store. +enableGlobalVirtualStore: false + +# `hoist` +# Simple: Disables hidden hoisting globally. +# Details: The Fortress baseline is no hoisting unless forced by concrete evidence to the contrary. +# Example: Undeclared dependencies remain inaccessible. +hoist: false + +# `hoistPattern` +# Simple: Does not allow hoisting exceptions by default. +# Details: An empty array is the fail-closed baseline; exceptions are +# added later minimally and based on evidence. +# Example: Only after a validated tooling error is a single pattern included. +hoistPattern: [] + +# `publicHoistPattern` +# Simple: Prevents root-visible hoisting for application code. +# Details: This ensures phantom dependencies are not exported to the visible root path. +# Example: Application code cannot see an undeclared transitive dependency via the root. +publicHoistPattern: [] + +# `shamefullyHoist` +# Simple: Prevents blanket-wide public hoisting. +# Details: This setting always remains `false` in a Fortress architecture. +# Example: A flat root layout similar to npm/Yarn Classic is not created. +shamefullyHoist: false + +# `virtualStoreDir` +# Simple: Sets the project-local virtual store path. +# Details: `.pnpm` shortens paths and makes the store path explicitly visible. +# Example: `node_modules/.pnpm` is relocated to `.pnpm`. +virtualStoreDir: .pnpm + +# `virtualStoreDirMaxLength` +# Simple: Limits the length of directory names in the virtual store. +# Details: `60` is the conservative Windows-safe limit. +# Example: Very long package names are shortened in the store layout. +virtualStoreDirMaxLength: 60 + +# `verifyStoreIntegrity` +# Simple: Verifies store contents before linking. +# Details: Modified files in the content-addressable store are not silently accepted. +# Example: A tampered store artifact is caught during the integrity check. +verifyStoreIntegrity: true + +# `strictStorePkgContentCheck` +# Simple: Verifies if name, version, and content match in the store. +# Details: This protects against registries that deliver identical content under different +# package identities. +# Example: An inconsistent store entry is not accepted. +strictStorePkgContentCheck: true + +# `hoistWorkspacePackages` +# Simple: Prevents workspace packages from being pulled into hoisting paths. +# Details: Local packages should be resolved via clean ownership, not via +# hoisted visibility. +# Example: Workspace packages remain at their explicit resolution path. +hoistWorkspacePackages: false + +######################################## +# Peer dependency governance +######################################## + +# `autoInstallPeers` +# Simple: Prevents automatic installation of missing peers. +# Details: Peer decisions must be made explicitly in the manifest. +# Example: A missing `react-dom` is not silently added. +autoInstallPeers: false + +# `strictPeerDependencies` +# Simple: Makes peer conflicts hard instead of advisory. +# Details: This prevents runtime surprises caused by soft peer deviations. +# Example: An invalid peer tree leads directly to an error. +strictPeerDependencies: true + +# `resolvePeersFromWorkspaceRoot` +# Simple: Unifies peer resolution via the root. +# Details: This ensures workspace packages use the same root peers instead of divergent +# shadow versions. +# Example: Multiple packages resolve `eslint` against the same root version. +resolvePeersFromWorkspaceRoot: true + +# `peerDependencyRules` +# Simple: Keeps blanket exceptions for peers closed. +# Details: Empty lists and maps mean: no general relaxation, no +# implicit approvals, no `allowAny` shortcut. +# Example: A later exception is only added selectively for a leaf->peer pair. +peerDependencyRules: + ignoreMissing: [] + allowAny: [] + +######################################## +# Graph repair and explicit policy +######################################## + +# `overrides` +# Simple: Allows later, targeted transitive pins or removals. +# Details: The approved intervention below constrains only the problematic +# `parse-semver -> semver` edge used by official `@vscode/vsce`. +# Example: `foo@1.0.0>bar: "2.0.0"` pins one reviewed repair. +overrides: + parse-semver@1.1.1>semver: 5.7.1 + +# `ignoreCompatibilityDb` +# Simple: Disables implicit automatic manifest patches from the compatibility database. +# Details: This increases auditability because the repo is not silently influenced by +# external patch logic. +# Example: Missing dependency metadata must be deliberately handled via `packageExtensions`. +ignoreCompatibilityDb: true + +# `updateNotifier` +# Simple: Disables automatic update notifications. +# Details: This reduces unplanned network/noise signals and keeps upgrades within the +# controlled governance process. +# Example: Contributors do not receive spontaneous pnpm upgrade notifications in daily work. +updateNotifier: false + +# `packageConfigs` +# Simple: Replaces per-subproject `.npmrc` for package-specific deviations. +# Details: The array remains empty until there is a genuinely necessary and reviewed +# special rule per package. +# Example: A legacy package could target `savePrefix: "~"` later. +packageConfigs: [] + +######################################## +# Central version approval +######################################## + +# `catalog` +# Simple: Central catalog of approved version states. +# Details: Exact versions live here and manifests consume them via `catalog:`. +# Example: `typescript: 5.7.2` is an approved exact version state. +catalog: + "@nx/esbuild": 23.0.0 + "@nx/js": 23.0.0 + "@eslint/js": 10.0.1 + "@shikijs/types": 3.13.0 + "@types/mocha": 10.0.10 + "@types/node": 25.9.3 + "@types/vscode": 1.105.0 + "@types/vscode-webview": 1.57.5 + "@vitest/coverage-v8": 4.1.2 + "@vscode/codicons": 0.0.41 + "@vscode/vsce": 3.9.2 + "@vscode/test-electron": 3.0.0 + esbuild: 0.28.1 + eslint: 10.5.0 + glob: 13.0.6 + globals: 16.4.0 + mocha: 12.0.0-beta-10 + nx: 23.0.0 + prettier: 3.6.2 + shiki: 3.13.0 + ts-dedent: 2.2.0 + typescript: 6.0.3 + typescript-eslint: 8.61.1 + vitest: 4.1.2 + vscode-languageclient: 10.0.0 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + yaml: 2.9.0 + "@nx/eslint": 23.0.0 + "@nx/vitest": 23.0.0 + "@nx/web": 23.0.0 + +# `catalogMode` +# Simple: Enforces that new dependencies cannot bypass the catalog. +# Details: `strict` makes the catalog the single source of truth in the monorepo. +# Example: `pnpm add lodash@latest` fails if `lodash` is not appropriately listed in the catalog. +catalogMode: strict + +# `cleanupUnusedCatalogs` +# Simple: Cleans up unused catalog entries. +# Details: This reduces governance clutter and prevents obsolete approval remnants. +# Example: Removed packages do not remain as dead entries in the catalog. +cleanupUnusedCatalogs: true + +######################################## +# Script safety +######################################## + +# `enablePrePostScripts` +# Simple: Disables implicit `pre*`/`post*` hooks. +# Details: Script chaining should be explicit, not happen silently in the background. +# Example: `pnpm build` does not automatically execute `prebuild` and `postbuild`. +enablePrePostScripts: false + +# `verifyDepsBeforeRun` +# Simple: Enforces up-to-date dependencies before `pnpm run` and `pnpm exec`. +# Details: `error` prevents working with stale `node_modules`. +# Example: After a manifest change, `pnpm test` blocks until install is run again. +verifyDepsBeforeRun: error diff --git a/tsconfig.base.json b/tsconfig.base.json index 53becf6..58ee910 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,10 +1,9 @@ { "compilerOptions": { - "target": "ES2022", - "module": "CommonJS", - "moduleResolution": "Node", - "lib": ["ES2022", "ES2021.String"], - "baseUrl": ".", + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ESNext", "ES2021.String"], "strict": true, "noUncheckedIndexedAccess": true, "exactOptionalPropertyTypes": true, diff --git a/tsconfig.bundler-node.base.json b/tsconfig.bundler-node.base.json new file mode 100644 index 0000000..09c81f5 --- /dev/null +++ b/tsconfig.bundler-node.base.json @@ -0,0 +1,37 @@ +{ + /** + * Bundler-first Node-hosted application role template for leaves whose source + * runs in a Node-like environment but whose JavaScript output is delegated to + * a bundler rather than emitted directly by TypeScript. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy baseline and reopen only the semantics that + * are genuinely shared across bundler-first Node-hosted app leaves. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Keep the authored ESM posture expected by bundler-first leaves. + */ + "module": "ESNext", + + /** + * Preserve bundler-aware package resolution semantics on this role. + */ + "moduleResolution": "Bundler", + + /** + * Bundler-first Node-hosted leaves normally delegate emitted JavaScript to + * the bundler rather than producing runtime files via `tsc`. + */ + "noEmit": true, + + /** + * Open only the Node ambient surface for this runtime role. + */ + "types": ["node"] + } +} diff --git a/tsconfig.json b/tsconfig.json index 57bfc74..55c2283 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,9 +3,20 @@ "extends": "./tsconfig.base.json", "files": [], "references": [ - { "path": "packages/utils" }, - { "path": "packages/formatter" }, - { "path": "packages/vscode-formatter" }, - { "path": "apps/vscode-extension" } + { + "path": "./packages/utils" + }, + { + "path": "./packages/formatter" + }, + { + "path": "./packages/vscode-formatter" + }, + { + "path": "./apps/vscode-extension" + }, + { + "path": "./packages/error-translator" + } ] } diff --git a/tsconfig.lib.base.json b/tsconfig.lib.base.json new file mode 100644 index 0000000..f0c3326 --- /dev/null +++ b/tsconfig.lib.base.json @@ -0,0 +1,48 @@ +{ + /** + * Generic buildable-library role template for workspace leaves whose final + * truth is a declaration-capable producer surface. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth so strictness, + * module defaults, and shared package-resolution semantics stay centralized. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Buildable library leaves must participate in the project-reference graph. + */ + "composite": true, + + /** + * Buildable producer leaves emit declaration surfaces by default. + */ + "declaration": true, + + /** + * Preserve declaration maps so cross-project editor navigation remains + * intact on the producer lane. + */ + "declarationMap": true, + + /** + * Reopen emit at the role-template layer for buildable producer leaves. + * Concrete output paths remain leaf-local facts. + */ + "noEmit": false, + + /** + * Keep the generic library lane conservative and validation-first unless a + * narrower artifact lane explicitly changes the delivery contract. + */ + "emitDeclarationOnly": true, + + /** + * Internal-only declarations must not leak through public producer surfaces. + */ + "stripInternal": true + } +} diff --git a/tsconfig.node.base.json b/tsconfig.node.base.json new file mode 100644 index 0000000..f7988ef --- /dev/null +++ b/tsconfig.node.base.json @@ -0,0 +1,41 @@ +{ + /** + * Reusable Node application role template for deployable or runtime-bearing + * Node leaves. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth and reopen only the + * Node-runtime-specific semantics required by this role. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Deployable or runtime-bearing Node leaves model native Node module truth. + */ + "module": "NodeNext", + + /** + * Native Node package-resolution semantics belong on this runtime role. + */ + "moduleResolution": "NodeNext", + + /** + * Keep raw TypeScript extension imports closed by default on the Node lane. + */ + "allowImportingTsExtensions": false, + + /** + * Node runtime leaves also prefer direct `.js` authoring truth over rewrite + * magic at the contract layer. + */ + "rewriteRelativeImportExtensions": false, + + /** + * Open only the Node ambient surface for this role. + */ + "types": ["node"] + } +} diff --git a/tsconfig.shared-package-artifact.base.json b/tsconfig.shared-package-artifact.base.json new file mode 100644 index 0000000..f088d74 --- /dev/null +++ b/tsconfig.shared-package-artifact.base.json @@ -0,0 +1,36 @@ +{ + /** + * Specialized role template for runtime-bearing shared packages that are + * delivered as unbundled package artifacts from the monorepo. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Start from the generic buildable library producer contract and narrow it to + * the stronger package-artifact delivery truth. + */ + "extends": "./tsconfig.lib.base.json", + + "compilerOptions": { + /** + * Package artifacts must be validated against native Node artifact truth. + */ + "module": "NodeNext", + + /** + * Node-valid artifact semantics are mandatory on this lane. + */ + "moduleResolution": "NodeNext", + + /** + * Raw TypeScript extension imports stay closed on the artifact lane. + */ + "allowImportingTsExtensions": false, + + /** + * Package artifacts rely on direct `.js` authoring truth instead of rewrite + * magic at the workspace contract layer. + */ + "rewriteRelativeImportExtensions": false + } +} diff --git a/tsconfig.test.base.json b/tsconfig.test.base.json new file mode 100644 index 0000000..f49d74d --- /dev/null +++ b/tsconfig.test.base.json @@ -0,0 +1,26 @@ +{ + /** + * Runtime test-consumer role template for test lanes that validate behavior + * rather than produce shipped runtime artifacts. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy baseline and reopen only the generic test + * environment semantics shared across runtime test lanes. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Generic runtime test lanes stay validation-first by default. + * Narrower leaves may reopen emit if their harness requires compiled output. + */ + "noEmit": true, + + /** + * Keep the common test ambient surface minimal and explicit. + */ + "types": ["vitest/globals", "node"] + } +} diff --git a/tsconfig.typecheck.base.json b/tsconfig.typecheck.base.json new file mode 100644 index 0000000..955031e --- /dev/null +++ b/tsconfig.typecheck.base.json @@ -0,0 +1,58 @@ +{ + /** + * Generic validation-lane role template for monorepo leaves that must + * participate in graph-aware TypeScript build mode without becoming + * runtime JavaScript artifact producers. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy single source of truth so strictness, + * module policy, and package-resolution semantics stay centralized. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Validation lanes must participate in project-reference build mode. + * This is the core contract that Nx and `tsc --build` rely on. + */ + "composite": true, + + /** + * Build mode requires declaration-capable producer semantics on the lane. + * Keep declarations on so the validation graph remains type-producer valid. + */ + "declaration": true, + + /** + * Preserve declaration maps so editor navigation across project boundaries + * stays intact even when the lane only emits validation artifacts. + */ + "declarationMap": true, + + /** + * This lane must not stay on `noEmit: true`, because build-mode + * typechecking requires a real emit-capable project contract. + */ + "noEmit": false, + + /** + * Keep the lane validation-first by emitting only declarations instead of + * runtime JavaScript artifacts. + */ + "emitDeclarationOnly": true, + + /** + * Internal-only declarations should not leak through validation outputs. + * This keeps the lane aligned with a minimal public type surface. + */ + "stripInternal": true, + + /** + * Ambient globals stay closed at the generic validation template layer. + * Individual leaves reopen only the exact environment they need. + */ + "types": [] + } +} diff --git a/tsconfig.types.base.json b/tsconfig.types.base.json new file mode 100644 index 0000000..7afb5cd --- /dev/null +++ b/tsconfig.types.base.json @@ -0,0 +1,26 @@ +{ + /** + * Type-only validation role template for contract, schema, or compile-time + * verification lanes that should never produce runtime artifacts. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy baseline and reopen only the generic ambient + * surface shared across type-only validation lanes. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Type-only validation lanes remain pure non-emitting contracts. + */ + "noEmit": true, + + /** + * Keep the same explicit ambient test/runtime surface used by generic + * validation lanes unless a narrower leaf overrides it. + */ + "types": ["vitest/globals", "node"] + } +} diff --git a/tsconfig.web.base.json b/tsconfig.web.base.json new file mode 100644 index 0000000..eb57a0c --- /dev/null +++ b/tsconfig.web.base.json @@ -0,0 +1,25 @@ +{ + /** + * Bundler-first web role template for browser-facing leaves. + */ + "$schema": "https://json.schemastore.org/tsconfig", + + /** + * Reuse the root compiler-policy baseline and reopen only the browser-facing + * semantics that belong to bundler-first web leaves. + */ + "extends": "./tsconfig.base.json", + + "compilerOptions": { + /** + * Reopen browser libs only on web leaves. + */ + "lib": ["DOM", "DOM.Iterable", "ESNext", "ES2021.String"], + + /** + * Bundler-first web leaves usually delegate final JavaScript output to the + * bundler instead of the TypeScript compiler. + */ + "noEmit": true + } +} diff --git a/turbo.json b/turbo.json deleted file mode 100644 index f3b0a13..0000000 --- a/turbo.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "globalDependencies": ["**/.env.*local"], - "tasks": { - "build": { - "outputs": ["dist/**"] - }, - "lint": {}, - "dev": { - "cache": false, - "persistent": true - }, - "test": { - "cache": false - } - } -}