diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 000000000000..ed3d277f03cc
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,3 @@
+# Critical workflow files require approval from core maintainers
+.github/workflows/release.yml @JamesHenry @bradzacher @JoshuaKGoldberg
+.github/workflows/ci.yml @JamesHenry @bradzacher @JoshuaKGoldberg
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bc7c9d47147e..d4ec153d22dd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,3 +1,4 @@
+# NOTE: The name of this workflow is significant - it is used as the identifier for the workflow_run trigger in the release workflow
name: CI
on:
@@ -289,38 +290,3 @@ jobs:
files: coverage/**/lcov.info
flags: unittest
name: codecov
-
- publish_canary_version:
- name: Publish the latest code as a canary version
- environment: ${{ (github.repository == 'typescript-eslint/typescript-eslint' && github.ref == 'refs/heads/main') && 'main' || '' }} # Have to specify per job
- runs-on: ubuntu-latest
- permissions:
- id-token: write
- needs: [integration_tests, lint_with_build, lint_without_build, unit_tests]
- if: github.repository == 'typescript-eslint/typescript-eslint' && github.ref == 'refs/heads/main'
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 0 # we need the tags to be available
-
- - name: Install
- uses: ./.github/actions/prepare-install
- with:
- node-version: ${{ env.PRIMARY_NODE_VERSION }}
- registry-url: 'https://registry.npmjs.org'
-
- - name: Build
- uses: ./.github/actions/prepare-build
-
- - name: Figure out and apply the next canary version
- run: npx tsx tools/release/apply-canary-version.mts
-
- - name: Publish all packages to npm with the canary tag
- # NOTE: this needs to be npx, rather than yarn, to make sure the authenticated npm registry is used
- run: npx nx release publish --tag canary --verbose
- env:
- NX_CLOUD_DISTRIBUTED_EXECUTION: false
- # This secret is only accessible on the GitHub environment "main"
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- NPM_CONFIG_PROVENANCE: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000000..0a23b7d8df4a
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,283 @@
+name: Release
+
+on:
+ # Triggered by completed CI runs (we check for successful status in the validate job) on main branch for canary releases
+ workflow_run:
+ workflows: ['CI']
+ types: [completed]
+ branches: [main]
+
+ schedule:
+ # Github actions do not currently support specifying a timezone.
+ # Run on Mondays at 5pm UTC (1pm Eastern (Summer) Time)
+ - cron: '0 17 * * 1'
+
+ # Manual trigger for out of band releases and next major version prereleases
+ workflow_dispatch:
+ inputs:
+ release_type:
+ description: 'Type of release to perform'
+ required: true
+ type: choice
+ options:
+ - canary
+ - stable
+ default: 'canary'
+ override_major_version:
+ description: 'Override major version for canary releases'
+ required: false
+ type: string
+ dry_run:
+ description: 'Perform a dry run'
+ required: true
+ type: boolean
+ default: true
+ first_release:
+ description: 'Whether one or more packages are being released for the first time'
+ required: false
+ type: boolean
+ default: false
+ force_release_without_changes:
+ description: 'Whether to do a release regardless of if there have been changes'
+ required: false
+ type: boolean
+ default: false
+
+# Ensure only one release workflow runs at a time
+concurrency:
+ group: release
+ cancel-in-progress: false
+
+env:
+ PRIMARY_NODE_VERSION: 20
+
+# Minimal permissions by default
+permissions:
+ contents: read
+
+jobs:
+ # Validation job to ensure secure inputs and determine release type
+ validate:
+ name: Validate Release Parameters
+ runs-on: ubuntu-latest
+ # Only run on the official repository to avoid wasted compute and unnecessary errors on forks (also an initial albeit weak first layer of protection against unauthorized releases)
+ if: github.repository == 'typescript-eslint/typescript-eslint'
+ outputs:
+ should_release: ${{ steps.validate.outputs.should_release }}
+ release_type: ${{ steps.validate.outputs.release_type }}
+ is_canary: ${{ steps.validate.outputs.is_canary }}
+ is_stable: ${{ steps.validate.outputs.is_stable }}
+ dry_run: ${{ steps.validate.outputs.dry_run }}
+ force_release_without_changes: ${{ steps.validate.outputs.force_release_without_changes }}
+ first_release: ${{ steps.validate.outputs.first_release }}
+ override_major_version: ${{ steps.validate.outputs.override_major_version }}
+ steps:
+ - name: Validate inputs and determine release type
+ id: validate
+ env:
+ # Ensure user input is treated as data by passing them as environment variables
+ INPUT_RELEASE_TYPE: ${{ inputs.release_type }}
+ INPUT_OVERRIDE_MAJOR: ${{ inputs.override_major_version }}
+ INPUT_DRY_RUN: ${{ inputs.dry_run }}
+ INPUT_FORCE_RELEASE: ${{ inputs.force_release_without_changes }}
+ INPUT_FIRST_RELEASE: ${{ inputs.first_release }}
+ run: |
+ SHOULD_RELEASE="false"
+
+ # Determine release type based on trigger
+ if [[ "${{ github.event_name }}" == "schedule" ]]; then
+ RELEASE_TYPE="stable"
+ SHOULD_RELEASE="true"
+ elif [[ "${{ github.event_name }}" == "workflow_run" ]]; then
+ # Only release canary if the CI workflow succeeded
+ if [[ "${{ github.event.workflow_run.conclusion }}" == "success" ]]; then
+ RELEASE_TYPE="canary"
+ SHOULD_RELEASE="true"
+ else
+ echo "CI workflow did not succeed, skipping canary release"
+ RELEASE_TYPE="canary"
+ SHOULD_RELEASE="false"
+ fi
+ elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ RELEASE_TYPE="$INPUT_RELEASE_TYPE"
+ SHOULD_RELEASE="true"
+ else
+ echo "::error::Unsupported trigger event: ${{ github.event_name }}"
+ exit 1
+ fi
+
+ # Validate release type
+ if [[ "$RELEASE_TYPE" != "canary" && "$RELEASE_TYPE" != "stable" ]]; then
+ echo "::error::Invalid release type: $RELEASE_TYPE. Must be 'canary' or 'stable'"
+ exit 1
+ fi
+
+ # Security: For manual triggers, only allow core maintainers to run releases
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ ALLOWED_ACTORS=("JamesHenry" "bradzacher" "JoshuaKGoldberg")
+ ACTOR="${{ github.actor }}"
+ IS_ALLOWED="false"
+
+ for allowed in "${ALLOWED_ACTORS[@]}"; do
+ if [[ "$ACTOR" == "$allowed" ]]; then
+ IS_ALLOWED="true"
+ break
+ fi
+ done
+
+ if [[ "$IS_ALLOWED" != "true" ]]; then
+ echo "::error::User '$ACTOR' is not authorized to trigger manual releases."
+ echo "::error::Only the following users can trigger manual releases: ${ALLOWED_ACTORS[*]}"
+ exit 1
+ fi
+
+ echo "✅ Authorized user '$ACTOR' triggering manual release"
+ fi
+
+ # Set outputs
+ echo "should_release=$SHOULD_RELEASE" >> $GITHUB_OUTPUT
+ echo "release_type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
+ echo "is_canary=$([[ "$RELEASE_TYPE" == "canary" ]] && echo "true" || echo "false")" >> $GITHUB_OUTPUT
+ echo "is_stable=$([[ "$RELEASE_TYPE" == "stable" ]] && echo "true" || echo "false")" >> $GITHUB_OUTPUT
+
+ # Handle dry run for manual releases (defaults to true)
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ echo "dry_run=${INPUT_DRY_RUN:-true}" >> $GITHUB_OUTPUT
+ else
+ # Automated releases (schedule, workflow_run) are never dry runs
+ echo "dry_run=false" >> $GITHUB_OUTPUT
+ fi
+
+ # Handle force release without changes for stable releases
+ if [[ "$RELEASE_TYPE" == "stable" && "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ echo "force_release_without_changes=${INPUT_FORCE_RELEASE:-false}" >> $GITHUB_OUTPUT
+ else
+ echo "force_release_without_changes=false" >> $GITHUB_OUTPUT
+ fi
+
+ # Handle first release flag (only for manual releases)
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ echo "first_release=${INPUT_FIRST_RELEASE:-false}" >> $GITHUB_OUTPUT
+ else
+ echo "first_release=false" >> $GITHUB_OUTPUT
+ fi
+
+ # Validate and handle override major version for canary releases
+ if [[ "$RELEASE_TYPE" == "canary" && "${{ github.event_name }}" == "workflow_dispatch" && -n "$INPUT_OVERRIDE_MAJOR" ]]; then
+ if [[ ! "$INPUT_OVERRIDE_MAJOR" =~ ^[0-9]+$ ]]; then
+ echo "::error::Invalid override major version format: $INPUT_OVERRIDE_MAJOR. Must be a positive integer."
+ exit 1
+ fi
+ echo "override_major_version=$INPUT_OVERRIDE_MAJOR" >> $GITHUB_OUTPUT
+ else
+ echo "override_major_version=" >> $GITHUB_OUTPUT
+ fi
+
+ echo "Validated release configuration:"
+ echo "- Should release: $SHOULD_RELEASE"
+ echo "- Release type: $RELEASE_TYPE"
+ echo "- Dry run: $INPUT_DRY_RUN"
+ echo "- Force release without changes: $INPUT_FORCE_RELEASE"
+ echo "- First release: $INPUT_FIRST_RELEASE"
+ echo "- Override major version (for canary only): $INPUT_OVERRIDE_MAJOR"
+
+ canary_release:
+ name: Publish Canary Release
+ runs-on: ubuntu-latest
+ environment: npm-registry # This environment is required by the trusted publishing configuration on npm
+ needs: [validate]
+ # Only run on the official repository to avoid wasted compute and unnecessary errors on forks (also an initial albeit weak first layer of protection against unauthorized releases)
+ # Also ensure validation passed and we're releasing a canary version
+ if: github.repository == 'typescript-eslint/typescript-eslint' && needs.validate.outputs.should_release == 'true' && needs.validate.outputs.is_canary == 'true'
+ permissions:
+ contents: read # No need to write to the repository for canary releases
+ id-token: write # Required for trusted publishing
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ # We need the full history for version calculation
+ fetch-depth: 0
+
+ - name: Install dependencies
+ uses: ./.github/actions/prepare-install
+ with:
+ node-version: ${{ env.PRIMARY_NODE_VERSION }}
+ registry-url: 'https://registry.npmjs.org'
+
+ # Use specific npm version required for trusted publishing
+ - name: Use npm 11.5.2
+ run: npm install -g npm@11.5.2
+
+ - name: Build packages
+ uses: ./.github/actions/prepare-build
+
+ - name: Calculate and apply canary version
+ run: yarn tsx tools/release/apply-canary-version.mts
+ env:
+ # Use the validated override major version from the validate job, if set
+ OVERRIDE_MAJOR_VERSION: ${{ needs.validate.outputs.override_major_version }}
+
+ - name: Publish canary packages
+ run: yarn nx release publish --tag canary --verbose --dry-run=${{ needs.validate.outputs.dry_run }} --first-release=${{ needs.validate.outputs.first_release }}
+ env:
+ # Enable npm provenance
+ NPM_CONFIG_PROVENANCE: true
+ # Disable distributed execution here for predictability
+ NX_CLOUD_DISTRIBUTED_EXECUTION: false
+
+ stable_release:
+ name: Publish Stable Release
+ runs-on: ubuntu-latest
+ environment: npm-registry # This environment is required by the trusted publishing configuration on npm
+ needs: [validate]
+ # Only run on the official repository to avoid wasted compute and unnecessary errors on forks (also an initial albeit weak first layer of protection against unauthorized releases)
+ # Also ensure validation passed and we're releasing a stable version
+ if: github.repository == 'typescript-eslint/typescript-eslint' && needs.validate.outputs.should_release == 'true' && needs.validate.outputs.is_stable == 'true'
+ permissions:
+ contents: read
+ id-token: write # Required for trusted publishing
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ # Need full history for changelog generation
+ fetch-depth: 0
+ ref: main
+ # Check out the repo with a specific fine-grained PAT to allow pushing back to the repo
+ token: ${{ secrets.GH_FINE_GRAINED_PAT }}
+
+ - name: Install dependencies
+ uses: ./.github/actions/prepare-install
+ with:
+ node-version: ${{ env.PRIMARY_NODE_VERSION }}
+ registry-url: 'https://registry.npmjs.org'
+
+ # Use specific npm version required for trusted publishing
+ - name: Use npm 11.5.2
+ run: npm install -g npm@11.5.2
+
+ - name: Build packages
+ uses: ./.github/actions/prepare-build
+
+ - name: Configure git user for automated commits
+ run: |
+ git config --global user.email "typescript-eslint[bot]@users.noreply.github.com"
+ git config --global user.name "typescript-eslint[bot]"
+
+ - name: Run stable release
+ run: yarn release --dry-run=${{ needs.validate.outputs.dry_run }} --force-release-without-changes=${{ needs.validate.outputs.force_release_without_changes }} --first-release=${{ needs.validate.outputs.first_release }} --verbose
+ env:
+ # Enable npm provenance
+ NPM_CONFIG_PROVENANCE: true
+ # Disable distributed execution here for predictability
+ NX_CLOUD_DISTRIBUTED_EXECUTION: false
+ # Use the specific fine-grained PAT to allow pushing back to the repo
+ GH_TOKEN: ${{ secrets.GH_FINE_GRAINED_PAT }}
+
+ - name: Force update the website branch to match the latest release
+ # Only update the website branch if we're not doing a dry run
+ if: needs.validate.outputs.dry_run == 'false'
+ run: |
+ git branch -f website
+ git push -f origin website
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8147558a4353..1001310182fb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,20 @@
+## 8.42.0 (2025-09-02)
+
+### 🚀 Features
+
+- deprecate tseslint.config() ([#11531](https://github.com/typescript-eslint/typescript-eslint/pull/11531))
+
+### 🩹 Fixes
+
+- **deps:** update eslint monorepo to v9.33.0 ([#11482](https://github.com/typescript-eslint/typescript-eslint/pull/11482))
+- **typescript-eslint:** handle non-normalized windows paths produced by jiti ([#11546](https://github.com/typescript-eslint/typescript-eslint/pull/11546))
+
+### ❤️ Thank You
+
+- Kirk Waiblinger @kirkwaiblinger
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🚀 Features
diff --git a/docs/getting-started/Quickstart.mdx b/docs/getting-started/Quickstart.mdx
index 232fe15966d5..c362a5978ffd 100644
--- a/docs/getting-started/Quickstart.mdx
+++ b/docs/getting-started/Quickstart.mdx
@@ -35,9 +35,10 @@ Next, create an `eslint.config.mjs` config file in the root of your project, and
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommended,
);
@@ -47,21 +48,10 @@ This code will enable our [recommended configuration](../users/Shared_Configurat
#### Details
-- `tseslint.config(...)` is an **_optional_** helper function — see [`typescript-eslint`'s `config(...)`](../packages/TypeScript_ESLint.mdx#config).
+- `defineConfig(...)` is an optional helper function built in to current versions of ESLint. See [the ESLint configuration docs](https://eslint.org/docs/latest/use/configure/configuration-files) for more detail.
- `'@eslint/js'` / `eslint.configs.recommended` turns on [eslint's recommended config](https://www.npmjs.com/package/@eslint/js).
- `tseslint.configs.recommended` turns on [our recommended config](../users/Shared_Configurations.mdx#recommended).
-
-Aside on ESLint's `defineConfig()`
-
-ESLint also provides a `defineConfig()` helper similar to `tseslint.config()`.
-However, there is a types incompatibility issue that causes type errors to incorrectly be reported when mixing typescript-eslint's configs and `defineConfig()`.
-For now we recommend using `tseslint.config()` for use with typescript-eslint's configs.
-
-See [typescript-eslint#10899](https://github.com/typescript-eslint/typescript-eslint/issues/10899) for more details.
-
-
-
Aside on file extensions
@@ -111,7 +101,7 @@ We recommend you consider enabling the following two configs:
- [`stylistic`](../users/Shared_Configurations.mdx#stylistic): additional rules that enforce consistent styling without significantly catching bugs or changing logic.
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
// Remove this line
tseslint.configs.recommended,
diff --git a/docs/getting-started/Typed_Linting.mdx b/docs/getting-started/Typed_Linting.mdx
index 95f225038dd3..bc36f5589735 100644
--- a/docs/getting-started/Typed_Linting.mdx
+++ b/docs/getting-started/Typed_Linting.mdx
@@ -20,9 +20,10 @@ To enable typed linting, there are two small changes you need to make to your co
```js title="eslint.config.mjs"
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
// Remove this line
tseslint.configs.recommended,
@@ -99,7 +100,7 @@ If you enabled the [`strict` shared config](../users/Shared_Configurations.mdx#s
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
// Removed lines start
tseslint.configs.strict,
diff --git a/docs/packages/TypeScript_ESLint.mdx b/docs/packages/TypeScript_ESLint.mdx
index 9fc886d872bd..e2c283adf146 100644
--- a/docs/packages/TypeScript_ESLint.mdx
+++ b/docs/packages/TypeScript_ESLint.mdx
@@ -16,12 +16,12 @@ This package is the main entrypoint that you can use to consume our tooling with
This package exports the following:
-| Name | Description |
-| --------- | -------------------------------------------------------------------------------------- |
-| `config` | A utility function for creating type-safe flat configs -- see [`config(...)`](#config) |
-| `configs` | [Shared ESLint (flat) configs](../users/Shared_Configurations.mdx) |
-| `parser` | A re-export of [`@typescript-eslint/parser`](./Parser.mdx) |
-| `plugin` | A re-export of [`@typescript-eslint/eslint-plugin`](./ESLint_Plugin.mdx) |
+| Name | Description |
+| --------------------- | ------------------------------------------------------------------------------------------------- |
+| `config` (deprecated) | A utility function for creating type-safe flat configs -- see [`config(...)`](#config-deprecated) |
+| `configs` | [Shared ESLint (flat) configs](../users/Shared_Configurations.mdx) |
+| `parser` | A re-export of [`@typescript-eslint/parser`](./Parser.mdx) |
+| `plugin` | A re-export of [`@typescript-eslint/eslint-plugin`](./ESLint_Plugin.mdx) |
## Installation
@@ -31,15 +31,16 @@ npm i typescript-eslint
## Usage
-We recommend getting started by using the `tseslint.config()` helper function in your ESLint config:
+We recommend getting started by using the default ESLint setup with our shared configs.
```js title="eslint.config.mjs"
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommended,
);
@@ -47,16 +48,16 @@ export default tseslint.config(
This config file exports a flat config that enables both the [core ESLint recommended config](https://www.npmjs.com/package/@eslint/js) and [our recommended config](../users/Shared_Configurations.mdx#recommended).
-:::note
-ESLint also provides a `defineConfig()` helper similar to `tseslint.config()`.
-However, there is a types incompatibility issue that causes type errors to incorrectly be reported when mixing typescript-eslint's configs and `defineConfig()`.
-For now we recommend using `tseslint.config()` for use with typescript-eslint configs.
+### `config(...)` (deprecated)
-See [typescript-eslint#10899](https://github.com/typescript-eslint/typescript-eslint/issues/10899) for more details.
+:::danger
-:::
+The `config(...)` utility function was deprecated in favor of ESLint core's [`defineConfig(...)`]() in [#10935](https://github.com/typescript-eslint/typescript-eslint/issues/10935).
+See [the `defineConfig` migration guide later](#migrating-to-defineconfig) for more details.
+
+The documentation here is preserved for historical reference and migration purposes.
-### `config(...)`
+:::
`tseslint.config(...)` takes in any number of ESLint config objects, each of which may additionally include an `extends` array of configs to extend.
`tseslint.config(...)` returns the equivalent ESLint config of applying the rest of the settings for each extension.
@@ -114,7 +115,7 @@ Otherwise it _will not_ impact your ability to use our tooling.
#### Flat config `extends`
-The `tseslint.config()` utility function also adds handling for the `extends` property on flat config objects.
+The `tseslint.config(...)` utility function also adds handling for the `extends` property on flat config objects.
This allows you to more easily extend shared configs for specific file patterns whilst also overriding rules/options provided by those configs:
```js
@@ -168,6 +169,79 @@ export default tseslint.config({
});
```
+#### Migrating to `defineConfig(...)`
+
+The core `defineConfig(...)` helper is a nearly exact clone of `tseslint.config(...)` that was [first released in ESLint v9.22.0](https://eslint.org/blog/2025/03/eslint-v9.22.0-released/).
+See [the ESLint blog post](https://eslint.org/blog/2025/03/flat-config-extends-define-config-global-ignores/#support-for-older-eslint-versions) for info on how to use `defineConfig(...)` with older versions of ESLint.
+
+At the time of writing there are a small number of known edge cases in which the two have different functionality.
+
+{/* https://github.com/prettier/prettier/issues/17816 -- prettier has trouble with the code fences in the custom elements */}
+
+{/* prettier-ignore */}
+1. Overriding `files` in `extends`.
+ When `files` is provided in both a base object and an extension, `tseslint.config(...)` _overrides_ the `files` property in the extension, whereas `defineConfig(...)` semantically intersects the two provided `files` specifiers.
+
+
+
+ ```ts title="eslint.config.mjs"
+ import tseslint from 'typescript-eslint';
+
+ export default tseslint.config({
+ files: ['a.ts'],
+ extends: [
+ {
+ files: ['b.ts'],
+ rules: {
+ 'some-rule': 'error',
+ },
+ },
+ ],
+ });
+
+ // is equivalent to
+
+ export default {
+ files: ['a.ts'],
+ rules: { 'some-rule': 'error' },
+ };
+ ```
+
+
+
+
+ ```ts title="eslint.config.mjs"
+ import { defineConfig } from 'eslint/config';
+
+ export default defineConfig({
+ files: ['a.ts'],
+ extends: [
+ {
+ files: ['b.ts'],
+ rules: {
+ 'some-rule': 'error',
+ },
+ },
+ ],
+ });
+
+ // is equivalent to
+
+ // The base config technically ensures that 'a.ts' is still included in
+ // the lint run, but otherwise the config has no effect, due to the
+ // intersection of 'a.ts' and 'b.ts' being empty.
+ export default {
+ files: ['a.ts'],
+ };
+ ```
+
+
+
+
+2. Type declarations (only applies to users who typecheck their eslint configs).
+ There are slight differences in the way types are declared between the two functions, which may cause typechecking errors when you switch from `tseslint.config(...)` to `defineConfig(...)` in some cases (see [#10899](https://github.com/typescript-eslint/typescript-eslint/issues/10899) for an example that used to impact typescript-eslint's own configs).
+ Type errors such as these do not indicate a runtime problem and can safely be ignored.
+
### Manual usage
[typescript-eslint's recommended and stylistic configurations](../users/configs) specify typescript-eslint `parser` and `plugin` options for you, so there is no need to manually provide those.
@@ -181,10 +255,11 @@ You can declare our plugin and parser in your config via this package, for examp
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import jestPlugin from 'eslint-plugin-jest';
import tseslint from 'typescript-eslint';
-export default tseslint.config({
+export default defineConfig({
plugins: {
// highlight-next-line
'@typescript-eslint': tseslint.plugin,
@@ -226,10 +301,11 @@ This config:
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import jestPlugin from 'eslint-plugin-jest';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
{
// config with just ignores is the replacement for `.eslintignore`
ignores: ['**/build/**', '**/dist/**', 'src/some/file/to/ignore.ts'],
diff --git a/docs/troubleshooting/faqs/ESLint.mdx b/docs/troubleshooting/faqs/ESLint.mdx
index d1a5cdf0d809..a07e16a2f798 100644
--- a/docs/troubleshooting/faqs/ESLint.mdx
+++ b/docs/troubleshooting/faqs/ESLint.mdx
@@ -49,9 +49,9 @@ Note, that for a mixed project including JavaScript and TypeScript, the `no-unde
```js title="eslint.config.mjs"
-import tseslint from 'typescript-eslint';
+import { defineConfig } from 'eslint/config';
-export default tseslint.config(
+export default defineConfig(
// ... the rest of your config ...
{
files: ['**/*.{ts,tsx,mts,cts}'],
diff --git a/docs/troubleshooting/faqs/Frameworks.mdx b/docs/troubleshooting/faqs/Frameworks.mdx
index fc0e559b56fa..f80be6a84296 100644
--- a/docs/troubleshooting/faqs/Frameworks.mdx
+++ b/docs/troubleshooting/faqs/Frameworks.mdx
@@ -19,7 +19,7 @@ See [Changes to `extraFileExtensions` with `projectService`](../typed-linting/Pe
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
// ... the rest of your config ...
{
languageOptions: {
@@ -61,10 +61,11 @@ If you are running into issues parsing .vue files, it might be because parsers l
```js title="eslint.config.mjs"
import tseslint from 'typescript-eslint';
+import { defineConfig } from 'eslint/config';
// Add this line
import vueParser from 'vue-eslint-parser';
-export default tseslint.config(
+export default defineConfig(
// ... the rest of your config ...
{
languageOptions: {
diff --git a/docs/troubleshooting/faqs/General.mdx b/docs/troubleshooting/faqs/General.mdx
index 53b752ab9b80..aa04254f59b9 100644
--- a/docs/troubleshooting/faqs/General.mdx
+++ b/docs/troubleshooting/faqs/General.mdx
@@ -36,7 +36,7 @@ Some examples
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
// ... the rest of your config ...
{
rules: {
@@ -242,9 +242,10 @@ For example, the following config enables only the recommended config's type-che
{/* prettier-ignore */}
```js title="eslint.config.mjs"
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.recommendedTypeCheckedOnly,
{
languageOptions: {
diff --git a/docs/troubleshooting/typed-linting/Monorepos.mdx b/docs/troubleshooting/typed-linting/Monorepos.mdx
index 85cc6ef264db..2364b9defe24 100644
--- a/docs/troubleshooting/typed-linting/Monorepos.mdx
+++ b/docs/troubleshooting/typed-linting/Monorepos.mdx
@@ -56,7 +56,7 @@ For each file being linted, the first matching project path will be used as its
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
{
@@ -108,7 +108,7 @@ Instead of globs that use `**` to recursively check all folders, prefer paths th
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
{
diff --git a/docs/troubleshooting/typed-linting/Performance.mdx b/docs/troubleshooting/typed-linting/Performance.mdx
index 29775150a6d6..66b9e2bfbe13 100644
--- a/docs/troubleshooting/typed-linting/Performance.mdx
+++ b/docs/troubleshooting/typed-linting/Performance.mdx
@@ -180,7 +180,7 @@ Instead of globs that use `**` to recursively check all folders, prefer paths th
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedRequiringTypeChecking,
{
@@ -226,7 +226,7 @@ See [Glob pattern in parser's option "project" slows down linting](https://githu
## Third-Party Plugins
-### `@stylistic/ts/indent` and other stylistic rules rules
+### `@stylistic/ts/indent` and other stylistic rules
The [`@stylisic/ts/indent` rule](https://eslint.style/rules/ts/indent#ts-indent) helps ensure your codebase follows a consistent indentation pattern.
However this involves a _lot_ of computations across every single token in a file.
diff --git a/docs/troubleshooting/typed-linting/index.mdx b/docs/troubleshooting/typed-linting/index.mdx
index 6681b1069b5d..5b76f5c53ad3 100644
--- a/docs/troubleshooting/typed-linting/index.mdx
+++ b/docs/troubleshooting/typed-linting/index.mdx
@@ -30,9 +30,10 @@ For example, to disable type-checked linting on all `.js` files:
```js title="eslint.config.mjs"
+import defineConfig from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
// ... the rest of your config ...
{
files: ['**/*.js'],
@@ -69,7 +70,7 @@ You can combine ESLint's [overrides](https://eslint.org/docs/latest/use/configur
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
tseslint.configs.stylisticTypeChecked,
@@ -297,7 +298,7 @@ For example, if you use a specific `tsconfig.eslint.json` for linting, you'd spe
```js title="eslint.config.mjs"
-export default tseslint.config({
+export default defineConfig({
// ...
languageOptions: {
parserOptions: {
diff --git a/docs/users/Shared_Configurations.mdx b/docs/users/Shared_Configurations.mdx
index e77d68bcf6a2..ea4c554e37af 100644
--- a/docs/users/Shared_Configurations.mdx
+++ b/docs/users/Shared_Configurations.mdx
@@ -21,9 +21,10 @@ See [Getting Started > Quickstart](../getting-started/Quickstart.mdx) first to s
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommended,
);
@@ -37,7 +38,7 @@ If your project does not enable [typed linting](../getting-started/Typed_Linting
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommended,
tseslint.configs.stylistic,
@@ -70,7 +71,7 @@ If your project enables [typed linting](../getting-started/Typed_Linting.mdx), w
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
tseslint.configs.stylisticTypeChecked,
@@ -127,7 +128,7 @@ These rules are those whose reports are almost always for a bad practice and/or
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.recommended,
);
```
@@ -156,7 +157,7 @@ Rules newly added in this configuration are similarly useful to those in `recomm
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.recommendedTypeChecked,
);
```
@@ -185,7 +186,7 @@ Rules added in `strict` are more opinionated than recommended rules and might no
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.strict,
);
```
@@ -224,7 +225,7 @@ Rules newly added in this configuration are similarly useful (and opinionated) t
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.strictTypeChecked,
);
```
@@ -263,7 +264,7 @@ These rules are generally opinionated about enforcing simpler code patterns.
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.stylistic,
);
```
@@ -295,7 +296,7 @@ Rules newly added in this configuration are similarly opinionated to those in `s
{/* prettier-ignore */}
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
tseslint.configs.stylisticTypeChecked,
);
```
@@ -362,7 +363,7 @@ If you use type-aware rules from other plugins, you will need to manually disabl
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
{
@@ -426,7 +427,7 @@ Additionally, it enables rules that promote using the more modern constructs Typ
```js title="eslint.config.mjs"
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.eslintRecommended,
);
diff --git a/docs/users/What_About_Formatting.mdx b/docs/users/What_About_Formatting.mdx
index a070fdfccfb2..ace2aa4ebd97 100644
--- a/docs/users/What_About_Formatting.mdx
+++ b/docs/users/What_About_Formatting.mdx
@@ -50,11 +50,12 @@ Using this config by adding it to the end of your `extends`:
// @ts-check
import eslint from '@eslint/js';
+import { defineConfig } from 'eslint/config';
import someOtherConfig from 'eslint-config-other-configuration-that-enables-formatting-rules';
import prettierConfig from 'eslint-config-prettier';
import tseslint from 'typescript-eslint';
-export default tseslint.config(
+export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommended,
someOtherConfig,
diff --git a/eslint.config.mjs b/eslint.config.mjs
index b7b469b0dd63..3e5efbf853cd 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -15,6 +15,7 @@ import reactPlugin from 'eslint-plugin-react';
import reactHooksPlugin from 'eslint-plugin-react-hooks';
import regexpPlugin from 'eslint-plugin-regexp';
import unicornPlugin from 'eslint-plugin-unicorn';
+import { defineConfig } from 'eslint/config';
import globals from 'globals';
import url from 'node:url';
import tseslint from 'typescript-eslint';
@@ -28,7 +29,7 @@ const restrictNamedDeclarations = {
selector: 'ExportNamedDeclaration[declaration=null][source=null]',
};
-export default tseslint.config(
+export default defineConfig(
// register all of the plugins up-front
{
name: 'register-all-plugins',
@@ -43,6 +44,7 @@ export default tseslint.config(
// @ts-expect-error -- https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/pull/1038
['jsx-a11y']: jsxA11yPlugin.flatConfigs.recommended.plugins['jsx-a11y'],
['perfectionist']: perfectionistPlugin,
+ // @ts-expect-error -- https://github.com/vitest-dev/eslint-plugin-vitest/issues/737
['vitest']: vitestPlugin,
// https://github.com/facebook/react/issues/28313
['react']: reactPlugin,
@@ -234,7 +236,9 @@ export default tseslint.config(
'no-lonely-if': 'error',
'no-mixed-operators': 'error',
'no-process-exit': 'error',
+ 'no-unassigned-vars': 'error',
'no-unreachable-loop': 'error',
+ 'no-useless-assignment': 'error',
'no-useless-call': 'error',
'no-useless-computed-key': 'error',
'no-useless-concat': 'error',
@@ -363,7 +367,6 @@ export default tseslint.config(
// test file specific configuration
{
extends: [
- // @ts-expect-error -- uses `string` instead of `off` | `readonly` | `writable` for the globals setting.
vitestPlugin.configs.env,
{
rules: {
diff --git a/package.json b/package.json
index 69ef796db02f..3edb1ac900d0 100644
--- a/package.json
+++ b/package.json
@@ -54,10 +54,10 @@
"@eslint/compat": "^1.2.4",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.26.0",
- "@nx/devkit": "21.2.3",
- "@nx/js": "21.2.3",
- "@nx/vite": "21.2.3",
- "@nx/workspace": "21.2.3",
+ "@nx/devkit": "21.4.1",
+ "@nx/js": "21.4.1",
+ "@nx/vite": "21.4.1",
+ "@nx/workspace": "21.4.1",
"@swc/core": "^1.4.12",
"@types/debug": "^4.1.12",
"@types/eslint-plugin-jsx-a11y": "^6.10.0",
@@ -93,7 +93,7 @@
"knip": "^5.41.1",
"lint-staged": "^15.2.2",
"markdownlint-cli": "^0.45.0",
- "nx": "21.2.3",
+ "nx": "21.4.1",
"prettier": "3.6.2",
"rimraf": "^5.0.5",
"semver": "7.7.0",
diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md
index c53185791808..49423544d22b 100644
--- a/packages/ast-spec/CHANGELOG.md
+++ b/packages/ast-spec/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for ast-spec to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🩹 Fixes
diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json
index 2bab131a3111..3fa74192b434 100644
--- a/packages/ast-spec/package.json
+++ b/packages/ast-spec/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/ast-spec",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Complete specification for the TypeScript-ESTree AST",
"private": true,
"keywords": [
diff --git a/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/1-TSESTree-AST.shot
index ddd23006e5d0..9a5146151d36 100644
--- a/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/1-TSESTree-AST.shot
@@ -8,7 +8,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/5-AST-Alignment-AST.shot
index 90fb8dedf846..eeec47153937 100644
--- a/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/TSEnumDeclaration/fixtures/with-member-one/snapshots/5-AST-Alignment-AST.shot
@@ -15,7 +15,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/fixture.ts b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/fixture.ts
new file mode 100644
index 000000000000..3fcd08d2bc99
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/fixture.ts
@@ -0,0 +1,3 @@
+enum Foo {
+ 1n = 2
+}
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..87ba241f5d40
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,9 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > bigint-name > TSESTree - Error`]
+TSError
+ 1 | enum Foo {
+> 2 | 1n = 2
+ | ^^ An enum member cannot have a numeric name.
+ 3 | }
+ 4 |
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..b3afe3afc96e
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/2-Babel-Error.shot
@@ -0,0 +1,10 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > bigint-name > Babel - Error`]
+BabelError
+ 1 | enum Foo {
+> 2 | 1n = 2
+ | ^ Unexpected token (2:2)
+ 3 | }
+ 4 |
+
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..083d80544d72
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/bigint-name/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,4 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > bigint-name > Error Alignment`]
+Both errored
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/fixture.ts b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/fixture.ts
new file mode 100644
index 000000000000..2e99a8d3766b
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/fixture.ts
@@ -0,0 +1,3 @@
+enum Foo {
+ ["A"] = 2
+}
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..2079fad90f2e
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,9 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > computed-string-name > TSESTree - Error`]
+TSError
+ 1 | enum Foo {
+> 2 | ["A"] = 2
+ | ^^^^^ Computed property names are not allowed in enums.
+ 3 | }
+ 4 |
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..c68571c79318
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/2-Babel-Error.shot
@@ -0,0 +1,10 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > computed-string-name > Babel - Error`]
+BabelError
+ 1 | enum Foo {
+> 2 | ["A"] = 2
+ | ^ Unexpected token (2:2)
+ 3 | }
+ 4 |
+
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..1331cf0d18b9
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/computed-string-name/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,4 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > computed-string-name > Error Alignment`]
+Both errored
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/fixture.ts b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/fixture.ts
new file mode 100644
index 000000000000..174773e65995
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/fixture.ts
@@ -0,0 +1,3 @@
+enum Foo {
+ 1 = 2
+}
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..8dfacb32e5b9
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,9 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > number-name > TSESTree - Error`]
+TSError
+ 1 | enum Foo {
+> 2 | 1 = 2
+ | ^ An enum member cannot have a numeric name.
+ 3 | }
+ 4 |
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..76b2f2b9c62e
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/2-Babel-Error.shot
@@ -0,0 +1,10 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > number-name > Babel - Error`]
+BabelError
+ 1 | enum Foo {
+> 2 | 1 = 2
+ | ^ Unexpected token (2:2)
+ 3 | }
+ 4 |
+
diff --git a/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..34e6cebc91e1
--- /dev/null
+++ b/packages/ast-spec/src/element/TSEnumMember/fixtures/_error_/number-name/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,4 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`AST Fixtures > element > TSEnumMember > _error_ > number-name > Error Alignment`]
+Both errored
diff --git a/packages/ast-spec/src/element/TSEnumMember/spec.ts b/packages/ast-spec/src/element/TSEnumMember/spec.ts
index a80e963ad278..a4d1b836f951 100644
--- a/packages/ast-spec/src/element/TSEnumMember/spec.ts
+++ b/packages/ast-spec/src/element/TSEnumMember/spec.ts
@@ -1,44 +1,15 @@
import type { AST_NODE_TYPES } from '../../ast-node-types';
import type { BaseNode } from '../../base/BaseNode';
+import type { Identifier } from '../../expression/Identifier/spec';
+import type { StringLiteral } from '../../expression/literal/StringLiteral/spec';
import type { Expression } from '../../unions/Expression';
-import type {
- PropertyNameComputed,
- PropertyNameNonComputed,
-} from '../../unions/PropertyName';
-interface TSEnumMemberBase extends BaseNode {
+export interface TSEnumMember extends BaseNode {
type: AST_NODE_TYPES.TSEnumMember;
- computed: boolean;
- id:
- | PropertyNameComputed // this should only happen in semantically invalid code (ts error 1164)
- | PropertyNameNonComputed;
+ id: Identifier | StringLiteral;
initializer: Expression | undefined;
+ /**
+ * @deprecated the enum member is always non-computed.
+ */
+ computed: boolean;
}
-
-/**
- * this should only really happen in semantically invalid code (errors 1164 and 2452)
- *
- * @example
- * ```ts
- * // VALID:
- * enum Foo { ['a'] }
- *
- * // INVALID:
- * const x = 'a';
- * enum Foo { [x] }
- * enum Bar { ['a' + 'b'] }
- * ```
- */
-export interface TSEnumMemberComputedName extends TSEnumMemberBase {
- computed: true;
- id: PropertyNameComputed;
-}
-
-export interface TSEnumMemberNonComputedName extends TSEnumMemberBase {
- computed: false;
- id: PropertyNameNonComputed;
-}
-
-export type TSEnumMember =
- | TSEnumMemberComputedName
- | TSEnumMemberNonComputedName;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/1-TSESTree-Error.shot
index c64aaae4a4d8..dc8d857908c8 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/1-TSESTree-Error.shot
@@ -1,4 +1,10 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-number > TSESTree - Error`]
-NO ERROR
+TSError
+ 2 |
+ 3 | export enum Foo {
+> 4 | [1],
+ | ^^^ Computed property names are not allowed in enums.
+ 5 | }
+ 6 |
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/3-Alignment-Error.shot
index f5e14d5d4b27..f9ae118971e1 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/snapshots/3-Alignment-Error.shot
@@ -1,4 +1,4 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-number > Error Alignment`]
-Babel errored but TSESTree didn't
+Both errored
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/1-TSESTree-Error.shot
index 866743a38587..90ef25fd26d8 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/1-TSESTree-Error.shot
@@ -1,4 +1,10 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-string > TSESTree - Error`]
-NO ERROR
+TSError
+ 2 |
+ 3 | export enum Foo {
+> 4 | ['baz'],
+ | ^^^^^^^ Computed property names are not allowed in enums.
+ 5 | }
+ 6 |
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/3-Alignment-Error.shot
index f58190aa21f3..2dc13fd3d5d2 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/snapshots/3-Alignment-Error.shot
@@ -1,4 +1,4 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-string > Error Alignment`]
-Babel errored but TSESTree didn't
+Both errored
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/1-TSESTree-Error.shot
index 85b95f8e17d3..7e31fde5e0c7 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/1-TSESTree-Error.shot
@@ -1,4 +1,10 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-var-ref > TSESTree - Error`]
-NO ERROR
+TSError
+ 2 |
+ 3 | export enum Foo {
+> 4 | [x],
+ | ^^^ Computed property names are not allowed in enums.
+ 5 | }
+ 6 |
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/3-Alignment-Error.shot
index 006e3518ee1f..3909357acf22 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/snapshots/3-Alignment-Error.shot
@@ -1,4 +1,4 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`AST Fixtures > legacy-fixtures > basics > _error_ > export-named-enum-computed-var-ref > Error Alignment`]
-Babel errored but TSESTree didn't
+Both errored
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/1-TSESTree-AST.shot
index 9187f52aade3..238113e5cc58 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/1-TSESTree-AST.shot
@@ -8,7 +8,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
@@ -41,7 +40,6 @@ Program {
},
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/5-AST-Alignment-AST.shot
index 1c5c321a9cf2..20c84325ce31 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/const-enum/snapshots/5-AST-Alignment-AST.shot
@@ -15,7 +15,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -81,7 +80,6 @@ Snapshot Diff:
},
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -121,12 +119,7 @@ Snapshot Diff:
- loc: {
- start: { column: 15, line: 3 },
- end: { column: 1, line: 6 },
-+ range: [103, 106],
-+ loc: {
-+ start: { column: 2, line: 5 },
-+ end: { column: 5, line: 5 },
-+ },
- },
+- },
- },
- const: true,
- declare: false,
@@ -140,7 +133,12 @@ Snapshot Diff:
- loc: {
- start: { column: 11, line: 3 },
- end: { column: 14, line: 3 },
-- },
++ range: [103, 106],
++ loc: {
++ start: { column: 2, line: 5 },
++ end: { column: 5, line: 5 },
++ },
+ },
- },
+ ],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/1-TSESTree-AST.shot
index 0a35e9756f00..01c4d100b383 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/1-TSESTree-AST.shot
@@ -11,7 +11,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
@@ -44,7 +43,6 @@ Program {
},
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/5-AST-Alignment-AST.shot
index bc225b94ed0d..603938fb4270 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-const-named-enum/snapshots/5-AST-Alignment-AST.shot
@@ -19,7 +19,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -85,7 +84,6 @@ Snapshot Diff:
},
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/1-TSESTree-AST.shot
index 15279e8049d7..f946f794f043 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/1-TSESTree-AST.shot
@@ -11,7 +11,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
@@ -44,7 +43,6 @@ Program {
},
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/5-AST-Alignment-AST.shot
index 695e866e0f98..eff7ba3226bd 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-declare-named-enum/snapshots/5-AST-Alignment-AST.shot
@@ -19,7 +19,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -85,7 +84,6 @@ Snapshot Diff:
},
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/1-TSESTree-AST.shot
index b1554a6d0194..8f42d8de69bf 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/1-TSESTree-AST.shot
@@ -11,7 +11,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
@@ -44,7 +43,6 @@ Program {
},
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/5-AST-Alignment-AST.shot
index b52051becdfb..10c5f8d572d1 100644
--- a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/export-named-enum/snapshots/5-AST-Alignment-AST.shot
@@ -19,7 +19,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -85,7 +84,6 @@ Snapshot Diff:
},
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
diff --git a/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/1-TSESTree-AST.shot
index 513eb9bcd84c..e483a20f2a29 100644
--- a/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/1-TSESTree-AST.shot
@@ -8,7 +8,6 @@ Program {
members: [
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
@@ -30,7 +29,6 @@ Program {
},
TSEnumMember {
type: "TSEnumMember",
- computed: false,
id: Identifier {
type: "Identifier",
decorators: [],
diff --git a/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/5-AST-Alignment-AST.shot
index 3c1cbd1bc2a0..544b72e407c8 100644
--- a/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/legacy-fixtures/declare/fixtures/enum/snapshots/5-AST-Alignment-AST.shot
@@ -15,7 +15,6 @@ Snapshot Diff:
- members: Array [
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
@@ -59,7 +58,6 @@ Snapshot Diff:
},
- TSEnumMember {
- type: 'TSEnumMember',
-- computed: false,
- id: Identifier {
- type: 'Identifier',
- decorators: Array [],
diff --git a/packages/ast-spec/tests/fixtures-with-differences-errors.shot b/packages/ast-spec/tests/fixtures-with-differences-errors.shot
index 7051aa777fbb..04b14e7a3730 100644
--- a/packages/ast-spec/tests/fixtures-with-differences-errors.shot
+++ b/packages/ast-spec/tests/fixtures-with-differences-errors.shot
@@ -27,9 +27,6 @@ exports[`AST Fixtures > List fixtures with Error differences`]
"legacy-fixtures/basics/fixtures/_error_/class-with-constructor-and-type-parameters/fixture.ts",
"legacy-fixtures/basics/fixtures/_error_/class-with-two-methods-computed-constructor/fixture.ts",
"legacy-fixtures/basics/fixtures/_error_/const-assertions/fixture.ts",
- "legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-number/fixture.ts",
- "legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-string/fixture.ts",
- "legacy-fixtures/basics/fixtures/_error_/export-named-enum-computed-var-ref/fixture.ts",
"legacy-fixtures/basics/fixtures/_error_/export-with-import-assertions/fixture.ts",
"legacy-fixtures/basics/fixtures/_error_/import-type-error/fixture.ts",
"legacy-fixtures/basics/fixtures/_error_/new-target-in-arrow-function-body/fixture.ts",
diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md
index e85d9e4f4fc9..6553f6fdfe46 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 8.42.0 (2025-09-02)
+
+### 🩹 Fixes
+
+- **deps:** update eslint monorepo to v9.33.0 ([#11482](https://github.com/typescript-eslint/typescript-eslint/pull/11482))
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🩹 Fixes
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index bafdc946330b..283b912e44ce 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/eslint-plugin",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "TypeScript plugin for ESLint",
"files": [
"dist",
@@ -59,10 +59,10 @@
},
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.41.0",
- "@typescript-eslint/type-utils": "8.41.0",
- "@typescript-eslint/utils": "8.41.0",
- "@typescript-eslint/visitor-keys": "8.41.0",
+ "@typescript-eslint/scope-manager": "8.42.0",
+ "@typescript-eslint/type-utils": "8.42.0",
+ "@typescript-eslint/utils": "8.42.0",
+ "@typescript-eslint/visitor-keys": "8.42.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -71,8 +71,8 @@
"devDependencies": {
"@types/mdast": "^4.0.3",
"@types/natural-compare": "*",
- "@typescript-eslint/rule-schema-to-typescript-types": "8.41.0",
- "@typescript-eslint/rule-tester": "8.41.0",
+ "@typescript-eslint/rule-schema-to-typescript-types": "8.42.0",
+ "@typescript-eslint/rule-tester": "8.42.0",
"@vitest/coverage-v8": "^3.1.3",
"ajv": "^6.12.6",
"cross-fetch": "*",
@@ -92,7 +92,7 @@
"vitest": "^3.1.3"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.41.0",
+ "@typescript-eslint/parser": "^8.42.0",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <6.0.0"
},
diff --git a/packages/eslint-plugin/src/rules/naming-convention.ts b/packages/eslint-plugin/src/rules/naming-convention.ts
index 03500d825163..839f3e0a1c98 100644
--- a/packages/eslint-plugin/src/rules/naming-convention.ts
+++ b/packages/eslint-plugin/src/rules/naming-convention.ts
@@ -631,11 +631,8 @@ export default createRule({
// #region interface
- 'TSEnumMember[computed != true]': {
- handler: (
- node: TSESTree.TSEnumMemberNonComputedName,
- validator,
- ): void => {
+ TSEnumMember: {
+ handler: (node: TSESTree.TSEnumMember, validator): void => {
const id = node.id;
const modifiers = new Set();
diff --git a/packages/eslint-plugin/src/util/getFunctionHeadLoc.ts b/packages/eslint-plugin/src/util/getFunctionHeadLoc.ts
index 49ab2b742dd9..53987cddc37b 100644
--- a/packages/eslint-plugin/src/util/getFunctionHeadLoc.ts
+++ b/packages/eslint-plugin/src/util/getFunctionHeadLoc.ts
@@ -154,8 +154,8 @@ export function getFunctionHeadLoc(
sourceCode: TSESLint.SourceCode,
): TSESTree.SourceLocation {
const parent = node.parent;
- let start: TSESTree.Position | null = null;
- let end: TSESTree.Position | null = null;
+ let start: TSESTree.Position;
+ let end: TSESTree.Position;
if (
parent.type === AST_NODE_TYPES.MethodDefinition ||
diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts
index b592b7fe513d..89e28f163314 100644
--- a/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts
@@ -1121,87 +1121,6 @@ ruleTester.run('no-unsafe-enum-comparison', rule, {
},
],
},
- {
- code: `
- enum ComputedKey {
- ['test-key' /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === 1;
- `,
- errors: [
- {
- messageId: 'mismatchedCondition',
- suggestions: [
- {
- messageId: 'replaceValueWithEnum',
- output: `
- enum ComputedKey {
- ['test-key' /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === ComputedKey['test-key'];
- `,
- },
- ],
- },
- ],
- },
- {
- code: `
- enum ComputedKey {
- [\`test-key\` /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === 1;
- `,
- errors: [
- {
- messageId: 'mismatchedCondition',
- suggestions: [
- {
- messageId: 'replaceValueWithEnum',
- output: `
- enum ComputedKey {
- [\`test-key\` /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === ComputedKey[\`test-key\`];
- `,
- },
- ],
- },
- ],
- },
- {
- code: `
- enum ComputedKey {
- [\`test-
- key\` /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === 1;
- `,
- errors: [
- {
- messageId: 'mismatchedCondition',
- suggestions: [
- {
- messageId: 'replaceValueWithEnum',
- output: `
- enum ComputedKey {
- [\`test-
- key\` /* with comment */] = 1,
- }
- declare const computedKey: ComputedKey;
- computedKey === ComputedKey[\`test-
- key\`];
- `,
- },
- ],
- },
- ],
- },
{
code: `
enum Fruit {
diff --git a/packages/eslint-plugin/tests/rules/prefer-literal-enum-member.test.ts b/packages/eslint-plugin/tests/rules/prefer-literal-enum-member.test.ts
index ea670139ccb3..f655c87e9ce2 100644
--- a/packages/eslint-plugin/tests/rules/prefer-literal-enum-member.test.ts
+++ b/packages/eslint-plugin/tests/rules/prefer-literal-enum-member.test.ts
@@ -54,11 +54,6 @@ enum ValidQuotedKey {
`
enum ValidQuotedKeyWithAssignment {
'a' = 1,
-}
- `,
- `
-enum ValidKeyWithComputedSyntaxButNoComputedKey {
- ['a'],
}
`,
{
@@ -107,15 +102,6 @@ enum Foo {
},
{
code: `
-enum Foo {
- ['A-1'] = 1 << 0,
- C = ~Foo['A-1'],
-}
- `,
- options: [{ allowBitwiseExpressions: true }],
- },
- {
- code: `
enum Foo {
A = 1 << 0,
B = 1 << 1,
diff --git a/packages/eslint-plugin/tests/rules/switch-exhaustiveness-check.test.ts b/packages/eslint-plugin/tests/rules/switch-exhaustiveness-check.test.ts
index da5b65c8177f..b18e91e4872a 100644
--- a/packages/eslint-plugin/tests/rules/switch-exhaustiveness-check.test.ts
+++ b/packages/eslint-plugin/tests/rules/switch-exhaustiveness-check.test.ts
@@ -2281,46 +2281,6 @@ switch (value) {
},
],
},
- {
- code: `
- enum Enum {
- 'a' = 1,
- [\`key-with
-
- new-line\`] = 2,
- }
-
- declare const a: Enum;
-
- switch (a) {
- }
- `,
- errors: [
- {
- messageId: 'switchIsNotExhaustive',
- suggestions: [
- {
- messageId: 'addMissingCases',
- output: `
- enum Enum {
- 'a' = 1,
- [\`key-with
-
- new-line\`] = 2,
- }
-
- declare const a: Enum;
-
- switch (a) {
- case Enum.a: { throw new Error('Not implemented yet: Enum.a case') }
- case Enum['key-with\\n\\n new-line']: { throw new Error('Not implemented yet: Enum[\\'key-with\\\\n\\\\n new-line\\'] case') }
- }
- `,
- },
- ],
- },
- ],
- },
{
code: noFormat`
enum Enum {
diff --git a/packages/eslint-plugin/tests/schema-snapshots/no-magic-numbers.shot b/packages/eslint-plugin/tests/schema-snapshots/no-magic-numbers.shot
index 6a0d430f638e..394890924c13 100644
--- a/packages/eslint-plugin/tests/schema-snapshots/no-magic-numbers.shot
+++ b/packages/eslint-plugin/tests/schema-snapshots/no-magic-numbers.shot
@@ -41,18 +41,22 @@
"type": "boolean"
},
"ignoreEnums": {
+ "default": false,
"description": "Whether enums used in TypeScript are considered okay.",
"type": "boolean"
},
"ignoreNumericLiteralTypes": {
+ "default": false,
"description": "Whether numbers used in TypeScript numeric literal types are considered okay.",
"type": "boolean"
},
"ignoreReadonlyClassProperties": {
+ "default": false,
"description": "Whether `readonly` class properties are considered okay.",
"type": "boolean"
},
"ignoreTypeIndexes": {
+ "default": false,
"description": "Whether numbers used to index types are okay.",
"type": "boolean"
}
diff --git a/packages/eslint-plugin/tools/generate-breaking-changes.mts b/packages/eslint-plugin/tools/generate-breaking-changes.mts
index 0ddb3563b976..0d3d0b4a6b1f 100644
--- a/packages/eslint-plugin/tools/generate-breaking-changes.mts
+++ b/packages/eslint-plugin/tools/generate-breaking-changes.mts
@@ -22,6 +22,7 @@ async function getNewRulesAsOfMajorVersion(
// Normally we wouldn't condone using the 'eval' API...
// But this is an internal-only script and it's the easiest way to convert
// the JS raw text into a runtime object. 🤷
+ // eslint-disable-next-line no-unassigned-vars -- assigned by eval
let oldRulesObject!: { rules: TypeScriptESLintRules };
eval(`oldRulesObject = ${oldObjectText}`);
const oldRuleNames = new Set(Object.keys(oldRulesObject.rules));
diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md
index 7aaedf20bf8d..f0699726e8d7 100644
--- a/packages/parser/CHANGELOG.md
+++ b/packages/parser/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for parser to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for parser to align it with other projects, there were no code changes.
diff --git a/packages/parser/package.json b/packages/parser/package.json
index c22e53c3c0a7..25b9494e7bb5 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/parser",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "An ESLint custom parser which leverages TypeScript ESTree",
"files": [
"dist",
@@ -51,10 +51,10 @@
"typescript": ">=4.8.4 <6.0.0"
},
"dependencies": {
- "@typescript-eslint/scope-manager": "8.41.0",
- "@typescript-eslint/types": "8.41.0",
- "@typescript-eslint/typescript-estree": "8.41.0",
- "@typescript-eslint/visitor-keys": "8.41.0",
+ "@typescript-eslint/scope-manager": "8.42.0",
+ "@typescript-eslint/types": "8.42.0",
+ "@typescript-eslint/typescript-estree": "8.42.0",
+ "@typescript-eslint/visitor-keys": "8.42.0",
"debug": "^4.3.4"
},
"devDependencies": {
diff --git a/packages/project-service/CHANGELOG.md b/packages/project-service/CHANGELOG.md
index 0830fccb4d66..874fb6a1cb4f 100644
--- a/packages/project-service/CHANGELOG.md
+++ b/packages/project-service/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for project-service to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for project-service to align it with other projects, there were no code changes.
diff --git a/packages/project-service/package.json b/packages/project-service/package.json
index adab677e6f7a..213c332c8818 100644
--- a/packages/project-service/package.json
+++ b/packages/project-service/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/project-service",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Standalone TypeScript project service wrapper for linting.",
"files": [
"dist",
@@ -49,8 +49,8 @@
"typescript": ">=4.8.4 <6.0.0"
},
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.41.0",
- "@typescript-eslint/types": "^8.41.0",
+ "@typescript-eslint/tsconfig-utils": "^8.42.0",
+ "@typescript-eslint/types": "^8.42.0",
"debug": "^4.3.4"
},
"devDependencies": {
diff --git a/packages/rule-schema-to-typescript-types/CHANGELOG.md b/packages/rule-schema-to-typescript-types/CHANGELOG.md
index fde466cf497d..5f273061627d 100644
--- a/packages/rule-schema-to-typescript-types/CHANGELOG.md
+++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for rule-schema-to-typescript-types to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🩹 Fixes
diff --git a/packages/rule-schema-to-typescript-types/package.json b/packages/rule-schema-to-typescript-types/package.json
index b1692804359c..d9a9c1a9d62d 100644
--- a/packages/rule-schema-to-typescript-types/package.json
+++ b/packages/rule-schema-to-typescript-types/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/rule-schema-to-typescript-types",
- "version": "8.41.0",
+ "version": "8.42.0",
"private": true,
"type": "commonjs",
"exports": {
@@ -32,8 +32,8 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/type-utils": "8.41.0",
- "@typescript-eslint/utils": "8.41.0",
+ "@typescript-eslint/type-utils": "8.42.0",
+ "@typescript-eslint/utils": "8.42.0",
"natural-compare": "^1.4.0",
"prettier": "3.6.2"
},
diff --git a/packages/rule-tester/CHANGELOG.md b/packages/rule-tester/CHANGELOG.md
index d423dad73de2..3382f5b61dc8 100644
--- a/packages/rule-tester/CHANGELOG.md
+++ b/packages/rule-tester/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for rule-tester to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🚀 Features
diff --git a/packages/rule-tester/package.json b/packages/rule-tester/package.json
index 41833305c3ea..3e8f7d2e624e 100644
--- a/packages/rule-tester/package.json
+++ b/packages/rule-tester/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/rule-tester",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Tooling to test ESLint rules",
"files": [
"dist",
@@ -44,9 +44,9 @@
},
"//": "NOTE - AJV is out-of-date, but it's intentionally synced with ESLint - https://github.com/eslint/eslint/blob/ad9dd6a933fd098a0d99c6a9aa059850535c23ee/package.json#L70",
"dependencies": {
- "@typescript-eslint/parser": "8.41.0",
- "@typescript-eslint/typescript-estree": "8.41.0",
- "@typescript-eslint/utils": "8.41.0",
+ "@typescript-eslint/parser": "8.42.0",
+ "@typescript-eslint/typescript-estree": "8.42.0",
+ "@typescript-eslint/utils": "8.42.0",
"ajv": "^6.12.6",
"json-stable-stringify-without-jsonify": "^1.0.1",
"lodash.merge": "4.6.2",
diff --git a/packages/rule-tester/src/RuleTester.ts b/packages/rule-tester/src/RuleTester.ts
index c81f7296e189..ccf143c1f506 100644
--- a/packages/rule-tester/src/RuleTester.ts
+++ b/packages/rule-tester/src/RuleTester.ts
@@ -761,8 +761,8 @@ export class RuleTester extends TestFramework {
// Verify the code.
let initialMessages: Linter.LintMessage[] | null = null;
- let messages: Linter.LintMessage[] | null = null;
- let fixedResult: SourceCodeFixer.AppliedFixes | null = null;
+ let messages: Linter.LintMessage[];
+ let fixedResult: SourceCodeFixer.AppliedFixes;
let passNumber = 0;
const outputs: string[] = [];
const configWithoutCustomKeys = omitCustomConfigProperties(config);
diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md
index 3d79af3dd2df..6f66a69047d6 100644
--- a/packages/scope-manager/CHANGELOG.md
+++ b/packages/scope-manager/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for scope-manager to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for scope-manager to align it with other projects, there were no code changes.
diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json
index 1732f314fe6f..4bddb0326989 100644
--- a/packages/scope-manager/package.json
+++ b/packages/scope-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/scope-manager",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "TypeScript scope analyser for ESLint",
"files": [
"dist",
@@ -47,11 +47,11 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/types": "8.41.0",
- "@typescript-eslint/visitor-keys": "8.41.0"
+ "@typescript-eslint/types": "8.42.0",
+ "@typescript-eslint/visitor-keys": "8.42.0"
},
"devDependencies": {
- "@typescript-eslint/typescript-estree": "8.41.0",
+ "@typescript-eslint/typescript-estree": "8.42.0",
"@vitest/coverage-v8": "^3.1.3",
"@vitest/pretty-format": "^3.1.3",
"eslint": "*",
diff --git a/packages/scope-manager/src/referencer/ClassVisitor.ts b/packages/scope-manager/src/referencer/ClassVisitor.ts
index 0a8d0b9cf82c..83f44ccc5f33 100644
--- a/packages/scope-manager/src/referencer/ClassVisitor.ts
+++ b/packages/scope-manager/src/referencer/ClassVisitor.ts
@@ -9,23 +9,18 @@ import { TypeVisitor } from './TypeVisitor';
import { Visitor } from './Visitor';
export class ClassVisitor extends Visitor {
- readonly #classNode: TSESTree.ClassDeclaration | TSESTree.ClassExpression;
readonly #referencer: Referencer;
- constructor(
- referencer: Referencer,
- node: TSESTree.ClassDeclaration | TSESTree.ClassExpression,
- ) {
+ constructor(referencer: Referencer) {
super(referencer);
this.#referencer = referencer;
- this.#classNode = node;
}
static visit(
referencer: Referencer,
node: TSESTree.ClassDeclaration | TSESTree.ClassExpression,
): void {
- const classVisitor = new ClassVisitor(referencer, node);
+ const classVisitor = new ClassVisitor(referencer);
classVisitor.visitClass(node);
}
@@ -97,7 +92,7 @@ export class ClassVisitor extends Visitor {
}
if (node.value.type === AST_NODE_TYPES.FunctionExpression) {
- this.visitMethodFunction(node.value, node);
+ this.visitMethodFunction(node.value);
} else {
this.#referencer.visit(node.value);
}
@@ -105,10 +100,7 @@ export class ClassVisitor extends Visitor {
node.decorators.forEach(d => this.#referencer.visit(d));
}
- protected visitMethodFunction(
- node: TSESTree.FunctionExpression,
- methodNode: TSESTree.MethodDefinition,
- ): void {
+ protected visitMethodFunction(node: TSESTree.FunctionExpression): void {
if (node.id) {
// FunctionExpression with name creates its special scope;
// FunctionExpressionNameScope.
@@ -122,71 +114,6 @@ export class ClassVisitor extends Visitor {
// Consider this function is in the MethodDefinition.
this.#referencer.scopeManager.nestFunctionScope(node, true);
- /**
- * class A {
- * @meta // <--- check this
- * foo(a: Type) {}
- *
- * @meta // <--- check this
- * foo(): Type {}
- * }
- */
- let withMethodDecorators = !!methodNode.decorators.length;
- /**
- * class A {
- * foo(
- * @meta // <--- check this
- * a: Type
- * ) {}
- *
- * set foo(
- * @meta // <--- EXCEPT this. TS do nothing for this
- * a: Type
- * ) {}
- * }
- */
- withMethodDecorators ||=
- methodNode.kind !== 'set' &&
- node.params.some(param => param.decorators.length);
- if (!withMethodDecorators && methodNode.kind === 'set') {
- const keyName = getLiteralMethodKeyName(methodNode);
-
- /**
- * class A {
- * @meta // <--- check this
- * get a() {}
- * set ['a'](v: Type) {}
- * }
- */
- if (
- keyName != null &&
- this.#classNode.body.body.find(
- (node): node is TSESTree.MethodDefinition =>
- node !== methodNode &&
- node.type === AST_NODE_TYPES.MethodDefinition &&
- // Node must both be static or not
- node.static === methodNode.static &&
- getLiteralMethodKeyName(node) === keyName,
- )?.decorators.length
- ) {
- withMethodDecorators = true;
- }
- }
-
- /**
- * @meta // <--- check this
- * class A {
- * constructor(a: Type) {}
- * }
- */
- if (
- !withMethodDecorators &&
- methodNode.kind === 'constructor' &&
- this.#classNode.decorators.length
- ) {
- withMethodDecorators = true;
- }
-
// Process parameter declarations.
for (const param of node.params) {
this.visitPattern(
@@ -337,39 +264,3 @@ export class ClassVisitor extends Visitor {
this.visitType(node);
}
}
-
-/**
- * Only if key is one of [identifier, string, number], ts will combine metadata of accessors .
- * class A {
- * get a() {}
- * set ['a'](v: Type) {}
- *
- * get [1]() {}
- * set [1](v: Type) {}
- *
- * // Following won't be combined
- * get [key]() {}
- * set [key](v: Type) {}
- *
- * get [true]() {}
- * set [true](v: Type) {}
- *
- * get ['a'+'b']() {}
- * set ['a'+'b']() {}
- * }
- */
-function getLiteralMethodKeyName(
- node: TSESTree.MethodDefinition,
-): number | string | null {
- if (node.computed && node.key.type === AST_NODE_TYPES.Literal) {
- if (
- typeof node.key.value === 'string' ||
- typeof node.key.value === 'number'
- ) {
- return node.key.value;
- }
- } else if (!node.computed && node.key.type === AST_NODE_TYPES.Identifier) {
- return node.key.name;
- }
- return null;
-}
diff --git a/packages/scope-manager/src/referencer/Referencer.ts b/packages/scope-manager/src/referencer/Referencer.ts
index 1f621d8f7823..562921170751 100644
--- a/packages/scope-manager/src/referencer/Referencer.ts
+++ b/packages/scope-manager/src/referencer/Referencer.ts
@@ -668,10 +668,7 @@ export class Referencer extends Visitor {
name,
new TSEnumMemberDefinition(name, member),
);
- } else if (
- !member.computed &&
- member.id.type === AST_NODE_TYPES.Identifier
- ) {
+ } else if (member.id.type === AST_NODE_TYPES.Identifier) {
this.currentScope().defineIdentifier(
member.id,
new TSEnumMemberDefinition(member.id, member),
diff --git a/packages/scope-manager/tests/eslint-scope/es6-class.test.ts b/packages/scope-manager/tests/eslint-scope/es6-class.test.ts
index c7ab81d99077..eaae8dd0210b 100644
--- a/packages/scope-manager/tests/eslint-scope/es6-class.test.ts
+++ b/packages/scope-manager/tests/eslint-scope/es6-class.test.ts
@@ -140,6 +140,7 @@ describe('ES6 class', () => {
assert.isScopeOfType(scope, ScopeType.global);
expect(scope.block.type).toBe(AST_NODE_TYPES.Program);
expect(scope.isStrict).toBe(false);
+ expect(variables).toHaveLength(0);
scope = scopeManager.scopes[1];
variables = getRealVariables(scope.variables);
diff --git a/packages/scope-manager/tests/eslint-scope/es6-object.test.ts b/packages/scope-manager/tests/eslint-scope/es6-object.test.ts
index 7f26c43ff780..ffdc8541978d 100644
--- a/packages/scope-manager/tests/eslint-scope/es6-object.test.ts
+++ b/packages/scope-manager/tests/eslint-scope/es6-object.test.ts
@@ -19,6 +19,7 @@ describe('ES6 object', () => {
assert.isScopeOfType(scope, ScopeType.global);
expect(scope.block.type).toBe(AST_NODE_TYPES.Program);
expect(scope.isStrict).toBe(false);
+ expect(variables).toHaveLength(0);
scope = scopeManager.scopes[1];
variables = getRealVariables(scope.variables);
@@ -51,6 +52,7 @@ describe('ES6 object', () => {
assert.isScopeOfType(scope, ScopeType.global);
expect(scope.block.type).toBe(AST_NODE_TYPES.Program);
expect(scope.isStrict).toBe(false);
+ expect(variables).toHaveLength(0);
scope = scopeManager.scopes[1];
variables = getRealVariables(scope.variables);
diff --git a/packages/tsconfig-utils/CHANGELOG.md b/packages/tsconfig-utils/CHANGELOG.md
index 377e6e5a4239..6702a80306ee 100644
--- a/packages/tsconfig-utils/CHANGELOG.md
+++ b/packages/tsconfig-utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for tsconfig-utils to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for tsconfig-utils to align it with other projects, there were no code changes.
diff --git a/packages/tsconfig-utils/package.json b/packages/tsconfig-utils/package.json
index fe9fa734f8e5..581a2ac87076 100644
--- a/packages/tsconfig-utils/package.json
+++ b/packages/tsconfig-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/tsconfig-utils",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Utilities for collecting TSConfigs for linting scenarios.",
"files": [
"dist",
diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md
index 7f854a1f0c61..cc2def818109 100644
--- a/packages/type-utils/CHANGELOG.md
+++ b/packages/type-utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for type-utils to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for type-utils to align it with other projects, there were no code changes.
diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json
index 57189776f6e9..6b5a34063b08 100644
--- a/packages/type-utils/package.json
+++ b/packages/type-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/type-utils",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Type utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -44,9 +44,9 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/types": "8.41.0",
- "@typescript-eslint/typescript-estree": "8.41.0",
- "@typescript-eslint/utils": "8.41.0",
+ "@typescript-eslint/types": "8.42.0",
+ "@typescript-eslint/typescript-estree": "8.42.0",
+ "@typescript-eslint/utils": "8.42.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -55,7 +55,7 @@
"typescript": ">=4.8.4 <6.0.0"
},
"devDependencies": {
- "@typescript-eslint/parser": "8.41.0",
+ "@typescript-eslint/parser": "8.42.0",
"@vitest/coverage-v8": "^3.1.3",
"ajv": "^6.12.6",
"eslint": "*",
diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md
index 14ebf6b09635..c23735280c72 100644
--- a/packages/types/CHANGELOG.md
+++ b/packages/types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for types to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for types to align it with other projects, there were no code changes.
diff --git a/packages/types/package.json b/packages/types/package.json
index 1117200eca0a..6f791504315b 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/types",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Types for the TypeScript-ESTree AST spec",
"files": [
"dist",
diff --git a/packages/types/src/ts-estree.ts b/packages/types/src/ts-estree.ts
index b1a5928a5d2b..1a43962b0231 100644
--- a/packages/types/src/ts-estree.ts
+++ b/packages/types/src/ts-estree.ts
@@ -194,10 +194,7 @@ declare module './generated/ast-spec' {
parent: TSESTree.TSEnumDeclaration;
}
- interface TSEnumMemberComputedName {
- parent: TSESTree.TSEnumBody;
- }
- interface TSEnumMemberNonComputedName {
+ interface TSEnumMember {
parent: TSESTree.TSEnumBody;
}
diff --git a/packages/typescript-eslint/CHANGELOG.md b/packages/typescript-eslint/CHANGELOG.md
index e80cd18e2adf..fbc52575d507 100644
--- a/packages/typescript-eslint/CHANGELOG.md
+++ b/packages/typescript-eslint/CHANGELOG.md
@@ -1,3 +1,19 @@
+## 8.42.0 (2025-09-02)
+
+### 🚀 Features
+
+- deprecate tseslint.config() ([#11531](https://github.com/typescript-eslint/typescript-eslint/pull/11531))
+
+### 🩹 Fixes
+
+- **typescript-eslint:** handle non-normalized windows paths produced by jiti ([#11546](https://github.com/typescript-eslint/typescript-eslint/pull/11546))
+
+### ❤️ Thank You
+
+- Kirk Waiblinger @kirkwaiblinger
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
diff --git a/packages/typescript-eslint/package.json b/packages/typescript-eslint/package.json
index 38789b0cf809..f4d605563c98 100644
--- a/packages/typescript-eslint/package.json
+++ b/packages/typescript-eslint/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-eslint",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Tooling which enables you to use TypeScript with ESLint",
"files": [
"dist",
@@ -50,10 +50,10 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.41.0",
- "@typescript-eslint/parser": "8.41.0",
- "@typescript-eslint/typescript-estree": "8.41.0",
- "@typescript-eslint/utils": "8.41.0"
+ "@typescript-eslint/eslint-plugin": "8.42.0",
+ "@typescript-eslint/parser": "8.42.0",
+ "@typescript-eslint/typescript-estree": "8.42.0",
+ "@typescript-eslint/utils": "8.42.0"
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
diff --git a/packages/typescript-eslint/src/config-helper.ts b/packages/typescript-eslint/src/config-helper.ts
index 51456475734f..758052c62f56 100644
--- a/packages/typescript-eslint/src/config-helper.ts
+++ b/packages/typescript-eslint/src/config-helper.ts
@@ -88,6 +88,9 @@ export type ConfigArray = TSESLint.FlatConfig.ConfigArray;
* },
* );
* ```
+ *
+ * @deprecated ESLint core now provides this functionality via `defineConfig()`,
+ * which we now recommend instead. See {@link https://typescript-eslint.io/packages/typescript-eslint/#config-deprecated}.
*/
export function config(
...configs: InfiniteDepthConfigWithExtends[]
diff --git a/packages/typescript-eslint/src/getTSConfigRootDirFromStack.ts b/packages/typescript-eslint/src/getTSConfigRootDirFromStack.ts
index 1d4c558eabe4..7e3da09e4ec5 100644
--- a/packages/typescript-eslint/src/getTSConfigRootDirFromStack.ts
+++ b/packages/typescript-eslint/src/getTSConfigRootDirFromStack.ts
@@ -41,6 +41,11 @@ export function getTSConfigRootDirFromStack(): string | undefined {
const parsedPath = path.parse(stackFrameFilePath);
if (/^eslint\.config\.(c|m)?(j|t)s$/.test(parsedPath.base)) {
+ if (process.platform === 'win32') {
+ // workaround for https://github.com/typescript-eslint/typescript-eslint/issues/11530
+ // (caused by https://github.com/unjs/jiti/issues/397)
+ return parsedPath.dir.replaceAll('/', path.sep);
+ }
return parsedPath.dir;
}
}
diff --git a/packages/typescript-eslint/tests/config-helper.test.ts b/packages/typescript-eslint/tests/config-helper.test.ts
index 8b4a151a32cf..7b3288df295f 100644
--- a/packages/typescript-eslint/tests/config-helper.test.ts
+++ b/packages/typescript-eslint/tests/config-helper.test.ts
@@ -2,6 +2,8 @@ import type { TSESLint } from '@typescript-eslint/utils';
import tseslint from '../src/index.js';
+/* eslint @typescript-eslint/no-deprecated: ["error", { "allow": [{ "from": "file", "name": "config", "path": "packages/typescript-eslint/src/config-helper.ts" }] }] */
+
describe('config helper', () => {
it('works without extends', () => {
expect(
diff --git a/packages/typescript-eslint/tests/getTsconfigRootDirFromStack.test.ts b/packages/typescript-eslint/tests/getTsconfigRootDirFromStack.test.ts
index 8f37d5833df5..92139b45896a 100644
--- a/packages/typescript-eslint/tests/getTsconfigRootDirFromStack.test.ts
+++ b/packages/typescript-eslint/tests/getTsconfigRootDirFromStack.test.ts
@@ -48,4 +48,26 @@ describe(getTSConfigRootDirFromStack, () => {
expect(Error.prepareStackTrace).toBe(dummyFunction);
Error.prepareStackTrace = prepareStackTrace;
});
+
+ it.runIf(isWindows)(
+ 'works when jiti gives non-normalized stack traces on windows',
+ () => {
+ vi.spyOn(Error, 'captureStackTrace').mockImplementationOnce(
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ (target: any, _constructorOpt) => {
+ target.stack = [
+ {
+ getFileName() {
+ return 'F:/a/b/eslint.config.ts';
+ },
+ },
+ ];
+ },
+ );
+
+ const inferredTsconfigRootDir = getTSConfigRootDirFromStack();
+
+ expect(inferredTsconfigRootDir).toBe('F:\\a\\b');
+ },
+ );
});
diff --git a/packages/typescript-eslint/tests/type-compatibility.test-d.ts b/packages/typescript-eslint/tests/type-compatibility.test-d.ts
index b0e2f71b81d2..dfcf11cbd2f3 100644
--- a/packages/typescript-eslint/tests/type-compatibility.test-d.ts
+++ b/packages/typescript-eslint/tests/type-compatibility.test-d.ts
@@ -2,6 +2,8 @@ import { defineConfig } from 'eslint/config';
import tseslint from '../src/index';
+/* eslint @typescript-eslint/no-deprecated: ["error", { "allow": [{ "from": "file", "name": "config", "path": "packages/typescript-eslint/src/config-helper.ts" }] }] */
+
describe('test for compatibility with config helpers', () => {
test('exported plugin is compatible with tseslint.config()', () => {
tseslint.config({
diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md
index 59f4cac1abf8..c11a9eed239e 100644
--- a/packages/typescript-estree/CHANGELOG.md
+++ b/packages/typescript-estree/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for typescript-estree to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
### 🚀 Features
diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json
index 9ff68a8e6c97..ff47e8b02713 100644
--- a/packages/typescript-estree/package.json
+++ b/packages/typescript-estree/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/typescript-estree",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "A parser that converts TypeScript source code into an ESTree compatible form",
"files": [
"dist",
@@ -52,10 +52,10 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/project-service": "8.41.0",
- "@typescript-eslint/tsconfig-utils": "8.41.0",
- "@typescript-eslint/types": "8.41.0",
- "@typescript-eslint/visitor-keys": "8.41.0",
+ "@typescript-eslint/project-service": "8.42.0",
+ "@typescript-eslint/tsconfig-utils": "8.42.0",
+ "@typescript-eslint/types": "8.42.0",
+ "@typescript-eslint/visitor-keys": "8.42.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
diff --git a/packages/typescript-estree/src/convert.ts b/packages/typescript-estree/src/convert.ts
index dccb674537c6..150c0ee950ea 100644
--- a/packages/typescript-estree/src/convert.ts
+++ b/packages/typescript-estree/src/convert.ts
@@ -476,7 +476,7 @@ export class Converter {
>(
node: Properties,
deprecatedKey: Key,
- preferredKey: string,
+ preferredKey: string | undefined,
value: Value,
): Properties & Record {
let warned = false;
@@ -487,10 +487,13 @@ export class Converter {
? (): Value => value
: (): Value => {
if (!warned) {
- process.emitWarning(
- `The '${deprecatedKey}' property is deprecated on ${node.type} nodes. Use ${preferredKey} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,
- 'DeprecationWarning',
- );
+ let message = `The '${deprecatedKey}' property is deprecated on ${node.type} nodes.`;
+ if (preferredKey) {
+ message += ` Use ${preferredKey} instead.`;
+ }
+ message +=
+ ' See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.';
+ process.emitWarning(message, 'DeprecationWarning');
warned = true;
}
@@ -3263,12 +3266,38 @@ export class Converter {
}
case SyntaxKind.EnumMember: {
- return this.createNode(node, {
- type: AST_NODE_TYPES.TSEnumMember,
- computed: node.name.kind === ts.SyntaxKind.ComputedPropertyName,
- id: this.convertChild(node.name),
- initializer: node.initializer && this.convertChild(node.initializer),
- });
+ const computed = node.name.kind === ts.SyntaxKind.ComputedPropertyName;
+ if (computed) {
+ this.#throwUnlessAllowInvalidAST(
+ node.name,
+ 'Computed property names are not allowed in enums.',
+ );
+ }
+
+ if (
+ node.name.kind === SyntaxKind.NumericLiteral ||
+ node.name.kind === SyntaxKind.BigIntLiteral
+ ) {
+ this.#throwUnlessAllowInvalidAST(
+ node.name,
+ 'An enum member cannot have a numeric name.',
+ );
+ }
+
+ return this.createNode(
+ node,
+ this.#withDeprecatedGetter(
+ {
+ type: AST_NODE_TYPES.TSEnumMember,
+ id: this.convertChild(node.name),
+ initializer:
+ node.initializer && this.convertChild(node.initializer),
+ },
+ 'computed',
+ undefined,
+ computed,
+ ),
+ );
}
case SyntaxKind.ModuleDeclaration: {
diff --git a/packages/typescript-estree/src/create-program/useProvidedPrograms.ts b/packages/typescript-estree/src/create-program/useProvidedPrograms.ts
index b8e958ed34f2..cd51c92100d2 100644
--- a/packages/typescript-estree/src/create-program/useProvidedPrograms.ts
+++ b/packages/typescript-estree/src/create-program/useProvidedPrograms.ts
@@ -15,7 +15,7 @@ const log = debug(
export function useProvidedPrograms(
programInstances: Iterable,
parseSettings: ParseSettings,
-): ASTAndDefiniteProgram | undefined {
+): ASTAndDefiniteProgram {
log(
'Retrieving ast for %s from provided program instance(s)',
parseSettings.filePath,
diff --git a/packages/typescript-estree/src/parser.ts b/packages/typescript-estree/src/parser.ts
index 1c0c6e42aa83..2841d1b1bc39 100644
--- a/packages/typescript-estree/src/parser.ts
+++ b/packages/typescript-estree/src/parser.ts
@@ -68,13 +68,7 @@ function getProgramAndAST(
}
if (parseSettings.programs) {
- const fromProvidedPrograms = useProvidedPrograms(
- parseSettings.programs,
- parseSettings,
- );
- if (fromProvidedPrograms) {
- return fromProvidedPrograms;
- }
+ return useProvidedPrograms(parseSettings.programs, parseSettings);
}
// no need to waste time creating a program as the caller didn't want parser services
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index 979817e65730..c6af51658d4b 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for utils to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for utils to align it with other projects, there were no code changes.
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 77a4ee26b789..3e8d5744d499 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/utils",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -62,9 +62,9 @@
},
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.41.0",
- "@typescript-eslint/types": "8.41.0",
- "@typescript-eslint/typescript-estree": "8.41.0"
+ "@typescript-eslint/scope-manager": "8.42.0",
+ "@typescript-eslint/types": "8.42.0",
+ "@typescript-eslint/typescript-estree": "8.42.0"
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md
index 7ad0feec8dc8..f18689f963b1 100644
--- a/packages/visitor-keys/CHANGELOG.md
+++ b/packages/visitor-keys/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.42.0 (2025-09-02)
+
+This was a version bump only for visitor-keys to align it with other projects, there were no code changes.
+
+You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
+
## 8.41.0 (2025-08-25)
This was a version bump only for visitor-keys to align it with other projects, there were no code changes.
diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json
index 1a556efad5c8..04e6678f79d6 100644
--- a/packages/visitor-keys/package.json
+++ b/packages/visitor-keys/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/visitor-keys",
- "version": "8.41.0",
+ "version": "8.42.0",
"description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
"files": [
"dist",
@@ -45,7 +45,7 @@
"typecheck": "yarn run -BT nx typecheck"
},
"dependencies": {
- "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/types": "8.42.0",
"eslint-visitor-keys": "^4.2.1"
},
"devDependencies": {
diff --git a/packages/website/src/components/editor/createProvideTwoslashInlay.ts b/packages/website/src/components/editor/createProvideTwoslashInlay.ts
index e775e80e519a..7ec378b4aff7 100644
--- a/packages/website/src/components/editor/createProvideTwoslashInlay.ts
+++ b/packages/website/src/components/editor/createProvideTwoslashInlay.ts
@@ -8,14 +8,9 @@ import type * as ts from 'typescript';
import type { SandboxInstance } from './useSandboxServices';
function findTwoshashQueries(code: string): RegExpExecArray[] {
- let match: RegExpExecArray | null = null;
- const matches: RegExpExecArray[] = [];
// RegExp that matches '^//?$'
- const twoslashQueryRegex = /^(\s*\/\/\s*\^\?)\s*$/gm;
- while ((match = twoslashQueryRegex.exec(code))) {
- matches.push(match);
- }
- return matches;
+ const twoslashQueryRegex = /^(\s*\/\/\s*\^\?)\s*$/m;
+ return [...code.matchAll(twoslashQueryRegex)];
}
export function createTwoslashInlayProvider(
diff --git a/tools/release/apply-canary-version.mts b/tools/release/apply-canary-version.mts
index 049dd3b06d96..523a56536367 100644
--- a/tools/release/apply-canary-version.mts
+++ b/tools/release/apply-canary-version.mts
@@ -4,6 +4,7 @@ import semver from 'semver';
// We are either releasing a canary version of the latest major version, or one for the next major.
const overrideMajorVersion = process.env.OVERRIDE_MAJOR_VERSION;
+const isDryRun = process.env.DRY_RUN === 'true';
const preid = 'alpha';
@@ -83,7 +84,7 @@ if (!nextCanaryVersion) {
console.log(`\nApplying next canary version with Nx`);
-const command = `nx release version ${nextCanaryVersion}`;
+const command = `nx release version ${nextCanaryVersion}${isDryRun ? ' --dry-run' : ''}`;
console.log(`\n> ${command}\n`);
diff --git a/tools/release/changelog-renderer.js b/tools/release/changelog-renderer.js
index c12c0711aad8..16e3f5deff7b 100644
--- a/tools/release/changelog-renderer.js
+++ b/tools/release/changelog-renderer.js
@@ -11,6 +11,6 @@ module.exports = class CustomChangelogRenderer extends (
async render() {
const defaultChangelog = await super.render();
// Append our custom messaging to the generated changelog entry
- return `${defaultChangelog}\n\nYou can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.`;
+ return `${defaultChangelog}\n\nYou can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.`;
}
};
diff --git a/tools/release/release.mts b/tools/release/release.mts
index 43544c261523..6c6e1f7d799b 100644
--- a/tools/release/release.mts
+++ b/tools/release/release.mts
@@ -6,6 +6,12 @@ import {
} from 'nx/release/index.js';
import yargs from 'yargs';
+if (process.env.CI !== 'true') {
+ throw new Error(
+ 'Releases cannot be run outside of CI, we use trusted publishing which requires an authenticated GitHub Actions environment',
+ );
+}
+
const options = await yargs(process.argv.slice(2))
.version(false)
.option('version', {
@@ -31,12 +37,19 @@ const options = await yargs(process.argv.slice(2))
description: 'Whether or not to enable verbose logging, defaults to false',
type: 'boolean',
})
+ .option('firstRelease', {
+ default: false,
+ description:
+ 'Whether or not one of more of the packages are being released for the first time',
+ type: 'boolean',
+ })
.parseAsync();
const { projectsVersionData, workspaceVersion } = await releaseVersion({
specifier: options.version,
// stage package.json updates to be committed later by the changelog command
dryRun: options.dryRun,
+ firstRelease: options.firstRelease,
stageChanges: true,
verbose: options.verbose,
});
@@ -54,6 +67,7 @@ if (!options.dryRun) {
// This will create a release on GitHub
await releaseChangelog({
dryRun: options.dryRun,
+ firstRelease: options.firstRelease,
verbose: options.verbose,
version: workspaceVersion,
versionData: projectsVersionData,
@@ -69,11 +83,45 @@ if (!options.forceReleaseWithoutChanges && workspaceVersion === null) {
process.exit(0);
}
+/**
+ * In order for the `npm publish --dry-run` to produce any kind of valuable output, we have to
+ * modify the package versions on disk to a unique version before running it, otherwise it will
+ * simply print `You cannot publish over the previously published versions: X.X.X`.
+ *
+ * Therefore we will leverage our apply-canary-version.mts script to do this for us in this case.
+ */
+if (options.dryRun) {
+ console.log(
+ '⚠️ NOTE: Applying canary version to package.json files so that dry-run publishing produces useful output...',
+ );
+ execaSync('yarn', ['tsx', 'tools/release/apply-canary-version.mts']);
+ console.log(
+ '✅ Applied canary version to package.json files so that dry-run publishing produces useful output\n',
+ );
+}
+
const publishProjectsResult = await releasePublish({
dryRun: options.dryRun,
+ firstRelease: options.firstRelease,
verbose: options.verbose,
});
+// Revert all temporary changes
+if (options.dryRun) {
+ console.log(
+ '⚠️ NOTE: Reverting temporary package.json changes related to dry-run publishing...',
+ );
+ execaSync('git', [
+ 'checkout',
+ 'packages/**/package.json',
+ 'package.json',
+ 'yarn.lock',
+ ]);
+ console.log(
+ '✅ Reverted temporary package.json changes related to dry-run publishing\n',
+ );
+}
+
// eslint-disable-next-line no-process-exit
process.exit(
// If any of the individual project publish tasks returned a non-zero exit code, exit with code 1
diff --git a/yarn.lock b/yarn.lock
index 8aa27852b08f..b1c732c57839 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3709,21 +3709,21 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/config-array@npm:^0.20.0":
- version: 0.20.0
- resolution: "@eslint/config-array@npm:0.20.0"
+"@eslint/config-array@npm:^0.21.0":
+ version: 0.21.0
+ resolution: "@eslint/config-array@npm:0.21.0"
dependencies:
"@eslint/object-schema": ^2.1.6
debug: ^4.3.1
minimatch: ^3.1.2
- checksum: 55824ea31f0502166a6fea97176c9c25089a0354474cdc72a5f739b1cf6925f44f667bf8f4f3a9dabf1112ab0fa671778ca3f96f1499f31ec42caf84cae55005
+ checksum: 84d3ae7cb755af94dc158a74389f4c560757b13f2bb908f598f927b87b70a38e8152015ea2e9557c1b4afc5130ee1356f6cad682050d67aae0468bbef98bc3a8
languageName: node
linkType: hard
-"@eslint/config-helpers@npm:^0.2.1":
- version: 0.2.2
- resolution: "@eslint/config-helpers@npm:0.2.2"
- checksum: 8a4091a2c8af5366513647ccad720f184c1b723f04c086755797a3a5cac69dc9013bc8a75453d9fc188fc4364460f0eae9f1584b77b28082e0d26bf48356ae8f
+"@eslint/config-helpers@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "@eslint/config-helpers@npm:0.3.1"
+ checksum: b95c239264078a430761afb344402d517134289a7d8b69a6ff1378ebe5eec9da6ad22b5e6d193b9e02899aeda30817ac47178d5927247092cc6d73a52f8d07c9
languageName: node
linkType: hard
@@ -3736,6 +3736,15 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/core@npm:^0.15.2":
+ version: 0.15.2
+ resolution: "@eslint/core@npm:0.15.2"
+ dependencies:
+ "@types/json-schema": ^7.0.15
+ checksum: 535fc4e657760851826ceae325a72dde664b99189bd975715de3526db655c66d7a35b72dbb1c7641ab9201ed4e2130f79c5be51f96c820b5407c3766dcf94f23
+ languageName: node
+ linkType: hard
+
"@eslint/eslintrc@npm:^3.2.0, @eslint/eslintrc@npm:^3.3.1":
version: 3.3.1
resolution: "@eslint/eslintrc@npm:3.3.1"
@@ -3753,10 +3762,10 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/js@npm:*, @eslint/js@npm:9.26.0, @eslint/js@npm:^9.26.0":
- version: 9.26.0
- resolution: "@eslint/js@npm:9.26.0"
- checksum: 40d30f7e5c1585168fc552f953b824f822847d496340e9251e8812b5f401cee129799b3337386f0ea402048b66378c607889d6edf018e19453ae2bcdfc0e2de9
+"@eslint/js@npm:*, @eslint/js@npm:9.34.0, @eslint/js@npm:^9.26.0":
+ version: 9.34.0
+ resolution: "@eslint/js@npm:9.34.0"
+ checksum: 933d4ba321b1abc83eecde40eb703871ce00f133eedec54cf928b7fedb61706174dd526997c3f151776922412e3d95cb3634f97ef7b5861b4908f9992f403a63
languageName: node
linkType: hard
@@ -3767,7 +3776,7 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/plugin-kit@npm:^0.2.7, @eslint/plugin-kit@npm:^0.2.8":
+"@eslint/plugin-kit@npm:^0.2.7":
version: 0.2.8
resolution: "@eslint/plugin-kit@npm:0.2.8"
dependencies:
@@ -3777,6 +3786,16 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/plugin-kit@npm:^0.3.5":
+ version: 0.3.5
+ resolution: "@eslint/plugin-kit@npm:0.3.5"
+ dependencies:
+ "@eslint/core": ^0.15.2
+ levn: ^0.4.1
+ checksum: 1808d7e2538335b8e4536ef372840e93468ecc6f4a5bf72ad665795290b6a8a72f51ef4ffd8bcfc601b133a5d5f67b59ab256d945f8c825c5c307aad29efaf86
+ languageName: node
+ linkType: hard
+
"@gerrit0/mini-shiki@npm:^3.2.2":
version: 3.3.0
resolution: "@gerrit0/mini-shiki@npm:3.3.0"
@@ -3881,6 +3900,29 @@ __metadata:
languageName: node
linkType: hard
+"@jest/diff-sequences@npm:30.0.1":
+ version: 30.0.1
+ resolution: "@jest/diff-sequences@npm:30.0.1"
+ checksum: e5f931ca69c15a9b3a9b23b723f51ffc97f031b2f3ca37f901333dab99bd4dfa1ad4192a5cd893cd1272f7602eb09b9cfb5fc6bb62a0232c96fb8b5e96094970
+ languageName: node
+ linkType: hard
+
+"@jest/get-type@npm:30.1.0":
+ version: 30.1.0
+ resolution: "@jest/get-type@npm:30.1.0"
+ checksum: e2a95fbb49ce2d15547db8af5602626caf9b05f62a5e583b4a2de9bd93a2bfe7175f9bbb2b8a5c3909ce261d467b6991d7265bb1d547cb60e7e97f571f361a70
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:30.0.5":
+ version: 30.0.5
+ resolution: "@jest/schemas@npm:30.0.5"
+ dependencies:
+ "@sinclair/typebox": ^0.34.0
+ checksum: 7a4fc4166f688947c22d81e61aaf2cb22f178dbf6ee806b0931b75136899d426a72a8330762f27f0cf6f79da0d2a56f49a22fe09f5f80df95a683ed237a0f3b0
+ languageName: node
+ linkType: hard
+
"@jest/schemas@npm:^29.6.3":
version: 29.6.3
resolution: "@jest/schemas@npm:29.6.3"
@@ -4058,24 +4100,6 @@ __metadata:
languageName: node
linkType: hard
-"@modelcontextprotocol/sdk@npm:^1.8.0":
- version: 1.11.0
- resolution: "@modelcontextprotocol/sdk@npm:1.11.0"
- dependencies:
- content-type: ^1.0.5
- cors: ^2.8.5
- cross-spawn: ^7.0.3
- eventsource: ^3.0.2
- express: ^5.0.1
- express-rate-limit: ^7.5.0
- pkce-challenge: ^5.0.0
- raw-body: ^3.0.0
- zod: ^3.23.8
- zod-to-json-schema: ^3.24.1
- checksum: d0ab5cfac6eedc1c2a2bf63fec97021f174a8eb265e8f4189cfa353d4c267cd94359a819b8012e64f4e93ebc283546c2ecc3cb8034a3924b483b85595c5d24a0
- languageName: node
- linkType: hard
-
"@napi-rs/wasm-runtime@npm:0.2.4":
version: 0.2.4
resolution: "@napi-rs/wasm-runtime@npm:0.2.4"
@@ -4087,7 +4111,7 @@ __metadata:
languageName: node
linkType: hard
-"@napi-rs/wasm-runtime@npm:^1.0.1":
+"@napi-rs/wasm-runtime@npm:^1.0.3":
version: 1.0.3
resolution: "@napi-rs/wasm-runtime@npm:1.0.3"
dependencies:
@@ -4143,27 +4167,28 @@ __metadata:
languageName: node
linkType: hard
-"@nx/devkit@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/devkit@npm:21.2.3"
+"@nx/devkit@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/devkit@npm:21.4.1"
dependencies:
ejs: ^3.1.7
enquirer: ~2.3.6
ignore: ^5.0.4
minimatch: 9.0.3
+ nx: 21.4.1
semver: ^7.5.3
tmp: ~0.2.1
tslib: ^2.3.0
yargs-parser: 21.1.1
peerDependencies:
- nx: 21.2.3
- checksum: 3db18a83a29d5577e89266880d6449d9e1677512adc47bdf0a2fd4448809247a964658555a809ca8f8c3197560e5f08ae3cf12244b9b87329cea6399406ca25a
+ nx: ">= 20 <= 22"
+ checksum: 37797c3d785de1068b6ae5a646d8ac1e716ce691c4b05fba489b9c89f432ce1ab716a3e27fe262f8d75cdcdec0a576594b34bee7d61c6b1a94d2ca9f9cfe83ed
languageName: node
linkType: hard
-"@nx/js@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/js@npm:21.2.3"
+"@nx/js@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/js@npm:21.4.1"
dependencies:
"@babel/core": ^7.23.2
"@babel/plugin-proposal-decorators": ^7.22.7
@@ -4172,8 +4197,8 @@ __metadata:
"@babel/preset-env": ^7.23.2
"@babel/preset-typescript": ^7.22.5
"@babel/runtime": ^7.22.6
- "@nx/devkit": 21.2.3
- "@nx/workspace": 21.2.3
+ "@nx/devkit": 21.4.1
+ "@nx/workspace": 21.4.1
"@zkochan/js-yaml": 0.0.7
babel-plugin-const-enum: ^1.0.1
babel-plugin-macros: ^3.1.0
@@ -4199,247 +4224,248 @@ __metadata:
peerDependenciesMeta:
verdaccio:
optional: true
- checksum: d2a79a4ca57bd6251362c8853dddc52f6ea51b7da96913611f73ae44e24d562d9f9d8afa002822932d3e246b605f69e363c5c22db8962d14d5e210eae84a9693
+ checksum: 5fc495473f2c522da73c7be62f0f59824bbf321dc6f151e2e3d9d23271a496c4a9f9f978c518843899046218334d3b44e2072277661572f952c8bc0a0b2f2674
languageName: node
linkType: hard
-"@nx/nx-darwin-arm64@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-darwin-arm64@npm:21.2.3"
+"@nx/nx-darwin-arm64@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-darwin-arm64@npm:21.4.1"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@nx/nx-darwin-x64@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-darwin-x64@npm:21.2.3"
+"@nx/nx-darwin-x64@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-darwin-x64@npm:21.4.1"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@nx/nx-freebsd-x64@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-freebsd-x64@npm:21.2.3"
+"@nx/nx-freebsd-x64@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-freebsd-x64@npm:21.4.1"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"@nx/nx-linux-arm-gnueabihf@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-linux-arm-gnueabihf@npm:21.2.3"
+"@nx/nx-linux-arm-gnueabihf@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-linux-arm-gnueabihf@npm:21.4.1"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@nx/nx-linux-arm64-gnu@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-linux-arm64-gnu@npm:21.2.3"
+"@nx/nx-linux-arm64-gnu@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-linux-arm64-gnu@npm:21.4.1"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@nx/nx-linux-arm64-musl@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-linux-arm64-musl@npm:21.2.3"
+"@nx/nx-linux-arm64-musl@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-linux-arm64-musl@npm:21.4.1"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@nx/nx-linux-x64-gnu@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-linux-x64-gnu@npm:21.2.3"
+"@nx/nx-linux-x64-gnu@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-linux-x64-gnu@npm:21.4.1"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@nx/nx-linux-x64-musl@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-linux-x64-musl@npm:21.2.3"
+"@nx/nx-linux-x64-musl@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-linux-x64-musl@npm:21.4.1"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@nx/nx-win32-arm64-msvc@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-win32-arm64-msvc@npm:21.2.3"
+"@nx/nx-win32-arm64-msvc@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-win32-arm64-msvc@npm:21.4.1"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@nx/nx-win32-x64-msvc@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/nx-win32-x64-msvc@npm:21.2.3"
+"@nx/nx-win32-x64-msvc@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/nx-win32-x64-msvc@npm:21.4.1"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@nx/vite@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/vite@npm:21.2.3"
+"@nx/vite@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/vite@npm:21.4.1"
dependencies:
- "@nx/devkit": 21.2.3
- "@nx/js": 21.2.3
+ "@nx/devkit": 21.4.1
+ "@nx/js": 21.4.1
"@phenomnomnominal/tsquery": ~5.0.1
- "@swc/helpers": ~0.5.0
ajv: ^8.0.0
enquirer: ~2.3.6
picomatch: 4.0.2
semver: ^7.6.3
tsconfig-paths: ^4.1.2
+ tslib: ^2.3.0
peerDependencies:
vite: ^5.0.0 || ^6.0.0
vitest: ^1.3.1 || ^2.0.0 || ^3.0.0
- checksum: cc274da699980816d52927ac037e9f206978853fc4d97c98a08eef8ae542b8ec392e19cf39a2c66889da392853d1553f2179dd8fb223833b3729dcfd8cd68e75
+ checksum: 40311ee8134f484d32785087c3bfc5bec250e956b6098bd42613add7342b0fe2fa385286e427e120f744835daf58bbf7b7dff32dcb07ee046ed2b11ea8eadc46
languageName: node
linkType: hard
-"@nx/workspace@npm:21.2.3":
- version: 21.2.3
- resolution: "@nx/workspace@npm:21.2.3"
+"@nx/workspace@npm:21.4.1":
+ version: 21.4.1
+ resolution: "@nx/workspace@npm:21.4.1"
dependencies:
- "@nx/devkit": 21.2.3
+ "@nx/devkit": 21.4.1
"@zkochan/js-yaml": 0.0.7
chalk: ^4.1.0
enquirer: ~2.3.6
- nx: 21.2.3
+ nx: 21.4.1
picomatch: 4.0.2
+ semver: ^7.6.3
tslib: ^2.3.0
yargs-parser: 21.1.1
- checksum: 6381eb146a0b9b4786452161f7179fcb5f1301b2aa0608ab522b02a0a8e73cdf80097ba68f454dbea94aae31c3b2eb7b23572152fb6cfb6df31b1d6f5a42b4f2
+ checksum: fab3ca1f4c780191e5b8855df7a36dd687a6413de89677f11d4b89517421288db26a3d01d2d76fc1ceb551171a6cb72706dfa780ad408ec038d94311e4bb75eb
languageName: node
linkType: hard
-"@oxc-resolver/binding-android-arm-eabi@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.6.1"
+"@oxc-resolver/binding-android-arm-eabi@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.7.1"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"@oxc-resolver/binding-android-arm64@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-android-arm64@npm:11.6.1"
+"@oxc-resolver/binding-android-arm64@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-android-arm64@npm:11.7.1"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"@oxc-resolver/binding-darwin-arm64@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.6.1"
+"@oxc-resolver/binding-darwin-arm64@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.7.1"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@oxc-resolver/binding-darwin-x64@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-darwin-x64@npm:11.6.1"
+"@oxc-resolver/binding-darwin-x64@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-darwin-x64@npm:11.7.1"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@oxc-resolver/binding-freebsd-x64@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.6.1"
+"@oxc-resolver/binding-freebsd-x64@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.7.1"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.6.1"
+"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.7.1"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.6.1"
+"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.7.1"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-arm64-gnu@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.6.1"
+"@oxc-resolver/binding-linux-arm64-gnu@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.7.1"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-arm64-musl@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.6.1"
+"@oxc-resolver/binding-linux-arm64-musl@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.7.1"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.6.1"
+"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.7.1"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.6.1"
+"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.7.1"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-riscv64-musl@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.6.1"
+"@oxc-resolver/binding-linux-riscv64-musl@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.7.1"
conditions: os=linux & cpu=riscv64 & libc=musl
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-s390x-gnu@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.6.1"
+"@oxc-resolver/binding-linux-s390x-gnu@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.7.1"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-x64-gnu@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.6.1"
+"@oxc-resolver/binding-linux-x64-gnu@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.7.1"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@oxc-resolver/binding-linux-x64-musl@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.6.1"
+"@oxc-resolver/binding-linux-x64-musl@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.7.1"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@oxc-resolver/binding-wasm32-wasi@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.6.1"
+"@oxc-resolver/binding-wasm32-wasi@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.7.1"
dependencies:
- "@napi-rs/wasm-runtime": ^1.0.1
+ "@napi-rs/wasm-runtime": ^1.0.3
conditions: cpu=wasm32
languageName: node
linkType: hard
-"@oxc-resolver/binding-win32-arm64-msvc@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.6.1"
+"@oxc-resolver/binding-win32-arm64-msvc@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.7.1"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@oxc-resolver/binding-win32-ia32-msvc@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.6.1"
+"@oxc-resolver/binding-win32-ia32-msvc@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.7.1"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@oxc-resolver/binding-win32-x64-msvc@npm:11.6.1":
- version: 11.6.1
- resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.6.1"
+"@oxc-resolver/binding-win32-x64-msvc@npm:11.7.1":
+ version: 11.7.1
+ resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.7.1"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -4845,6 +4871,13 @@ __metadata:
languageName: node
linkType: hard
+"@sinclair/typebox@npm:^0.34.0":
+ version: 0.34.41
+ resolution: "@sinclair/typebox@npm:0.34.41"
+ checksum: dbcfdc55caef47ef5b728c2bc6979e50d00ee943b63eaaf604551be9a039187cdd256d810b790e61fdf63131df54b236149aef739d83bfe9a594a9863ac28115
+ languageName: node
+ linkType: hard
+
"@sindresorhus/is@npm:^4.6.0":
version: 4.6.0
resolution: "@sindresorhus/is@npm:4.6.0"
@@ -5161,15 +5194,6 @@ __metadata:
languageName: node
linkType: hard
-"@swc/helpers@npm:~0.5.0":
- version: 0.5.17
- resolution: "@swc/helpers@npm:0.5.17"
- dependencies:
- tslib: ^2.8.0
- checksum: 085e13b536323945dfc3a270debf270bda6dfc80a1c68fd2ed08f7cbdfcbdaeead402650b5b10722e54e4a24193afc8a3c6f63d3d6d719974e7470557fb415bd
- languageName: node
- linkType: hard
-
"@swc/types@npm:^0.1.23":
version: 0.1.24
resolution: "@swc/types@npm:0.1.24"
@@ -5806,19 +5830,19 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/eslint-plugin@8.41.0, @typescript-eslint/eslint-plugin@workspace:*, @typescript-eslint/eslint-plugin@workspace:^, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin":
+"@typescript-eslint/eslint-plugin@8.42.0, @typescript-eslint/eslint-plugin@workspace:*, @typescript-eslint/eslint-plugin@workspace:^, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin":
version: 0.0.0-use.local
resolution: "@typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin"
dependencies:
"@eslint-community/regexpp": ^4.10.0
"@types/mdast": ^4.0.3
"@types/natural-compare": "*"
- "@typescript-eslint/rule-schema-to-typescript-types": 8.41.0
- "@typescript-eslint/rule-tester": 8.41.0
- "@typescript-eslint/scope-manager": 8.41.0
- "@typescript-eslint/type-utils": 8.41.0
- "@typescript-eslint/utils": 8.41.0
- "@typescript-eslint/visitor-keys": 8.41.0
+ "@typescript-eslint/rule-schema-to-typescript-types": 8.42.0
+ "@typescript-eslint/rule-tester": 8.42.0
+ "@typescript-eslint/scope-manager": 8.42.0
+ "@typescript-eslint/type-utils": 8.42.0
+ "@typescript-eslint/utils": 8.42.0
+ "@typescript-eslint/visitor-keys": 8.42.0
"@vitest/coverage-v8": ^3.1.3
ajv: ^6.12.6
cross-fetch: "*"
@@ -5841,7 +5865,7 @@ __metadata:
unist-util-visit: ^5.0.0
vitest: ^3.1.3
peerDependencies:
- "@typescript-eslint/parser": ^8.41.0
+ "@typescript-eslint/parser": ^8.42.0
eslint: ^8.57.0 || ^9.0.0
typescript: ">=4.8.4 <6.0.0"
languageName: unknown
@@ -5857,14 +5881,14 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/parser@8.41.0, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:^, @typescript-eslint/parser@workspace:packages/parser":
+"@typescript-eslint/parser@8.42.0, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:^, @typescript-eslint/parser@workspace:packages/parser":
version: 0.0.0-use.local
resolution: "@typescript-eslint/parser@workspace:packages/parser"
dependencies:
- "@typescript-eslint/scope-manager": 8.41.0
- "@typescript-eslint/types": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
- "@typescript-eslint/visitor-keys": 8.41.0
+ "@typescript-eslint/scope-manager": 8.42.0
+ "@typescript-eslint/types": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
+ "@typescript-eslint/visitor-keys": 8.42.0
"@vitest/coverage-v8": ^3.1.3
debug: ^4.3.4
eslint: "*"
@@ -5878,12 +5902,12 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/project-service@8.41.0, @typescript-eslint/project-service@workspace:packages/project-service":
+"@typescript-eslint/project-service@8.42.0, @typescript-eslint/project-service@workspace:packages/project-service":
version: 0.0.0-use.local
resolution: "@typescript-eslint/project-service@workspace:packages/project-service"
dependencies:
- "@typescript-eslint/tsconfig-utils": ^8.41.0
- "@typescript-eslint/types": ^8.41.0
+ "@typescript-eslint/tsconfig-utils": ^8.42.0
+ "@typescript-eslint/types": ^8.42.0
"@vitest/coverage-v8": ^3.1.3
debug: ^4.3.4
rimraf: "*"
@@ -5894,12 +5918,12 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-schema-to-typescript-types@8.41.0, @typescript-eslint/rule-schema-to-typescript-types@workspace:*, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types":
+"@typescript-eslint/rule-schema-to-typescript-types@8.42.0, @typescript-eslint/rule-schema-to-typescript-types@workspace:*, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types":
version: 0.0.0-use.local
resolution: "@typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types"
dependencies:
- "@typescript-eslint/type-utils": 8.41.0
- "@typescript-eslint/utils": 8.41.0
+ "@typescript-eslint/type-utils": 8.42.0
+ "@typescript-eslint/utils": 8.42.0
"@vitest/coverage-v8": ^3.1.3
eslint: "*"
natural-compare: ^1.4.0
@@ -5910,15 +5934,15 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-tester@8.41.0, @typescript-eslint/rule-tester@workspace:*, @typescript-eslint/rule-tester@workspace:packages/rule-tester":
+"@typescript-eslint/rule-tester@8.42.0, @typescript-eslint/rule-tester@workspace:*, @typescript-eslint/rule-tester@workspace:packages/rule-tester":
version: 0.0.0-use.local
resolution: "@typescript-eslint/rule-tester@workspace:packages/rule-tester"
dependencies:
"@types/json-stable-stringify-without-jsonify": ^1.0.2
"@types/lodash.merge": 4.6.9
- "@typescript-eslint/parser": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
- "@typescript-eslint/utils": 8.41.0
+ "@typescript-eslint/parser": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
+ "@typescript-eslint/utils": 8.42.0
"@vitest/coverage-v8": ^3.1.3
ajv: ^6.12.6
eslint: "*"
@@ -5933,13 +5957,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/scope-manager@8.41.0, @typescript-eslint/scope-manager@workspace:*, @typescript-eslint/scope-manager@workspace:^, @typescript-eslint/scope-manager@workspace:packages/scope-manager":
+"@typescript-eslint/scope-manager@8.42.0, @typescript-eslint/scope-manager@workspace:*, @typescript-eslint/scope-manager@workspace:^, @typescript-eslint/scope-manager@workspace:packages/scope-manager":
version: 0.0.0-use.local
resolution: "@typescript-eslint/scope-manager@workspace:packages/scope-manager"
dependencies:
- "@typescript-eslint/types": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
- "@typescript-eslint/visitor-keys": 8.41.0
+ "@typescript-eslint/types": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
+ "@typescript-eslint/visitor-keys": 8.42.0
"@vitest/coverage-v8": ^3.1.3
"@vitest/pretty-format": ^3.1.3
eslint: "*"
@@ -5950,7 +5974,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/tsconfig-utils@8.41.0, @typescript-eslint/tsconfig-utils@^8.41.0, @typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils":
+"@typescript-eslint/tsconfig-utils@8.42.0, @typescript-eslint/tsconfig-utils@^8.42.0, @typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils":
version: 0.0.0-use.local
resolution: "@typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils"
dependencies:
@@ -5963,14 +5987,14 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/type-utils@8.41.0, @typescript-eslint/type-utils@workspace:*, @typescript-eslint/type-utils@workspace:packages/type-utils":
+"@typescript-eslint/type-utils@8.42.0, @typescript-eslint/type-utils@workspace:*, @typescript-eslint/type-utils@workspace:packages/type-utils":
version: 0.0.0-use.local
resolution: "@typescript-eslint/type-utils@workspace:packages/type-utils"
dependencies:
- "@typescript-eslint/parser": 8.41.0
- "@typescript-eslint/types": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
- "@typescript-eslint/utils": 8.41.0
+ "@typescript-eslint/parser": 8.42.0
+ "@typescript-eslint/types": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
+ "@typescript-eslint/utils": 8.42.0
"@vitest/coverage-v8": ^3.1.3
ajv: ^6.12.6
debug: ^4.3.4
@@ -5985,7 +6009,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/types@8.41.0, @typescript-eslint/types@^8.11.0, @typescript-eslint/types@^8.34.1, @typescript-eslint/types@^8.41.0, @typescript-eslint/types@workspace:*, @typescript-eslint/types@workspace:^, @typescript-eslint/types@workspace:packages/types":
+"@typescript-eslint/types@8.42.0, @typescript-eslint/types@^8.11.0, @typescript-eslint/types@^8.34.1, @typescript-eslint/types@^8.42.0, @typescript-eslint/types@workspace:*, @typescript-eslint/types@workspace:^, @typescript-eslint/types@workspace:packages/types":
version: 0.0.0-use.local
resolution: "@typescript-eslint/types@workspace:packages/types"
dependencies:
@@ -6006,10 +6030,10 @@ __metadata:
"@eslint/compat": ^1.2.4
"@eslint/eslintrc": ^3.2.0
"@eslint/js": ^9.26.0
- "@nx/devkit": 21.2.3
- "@nx/js": 21.2.3
- "@nx/vite": 21.2.3
- "@nx/workspace": 21.2.3
+ "@nx/devkit": 21.4.1
+ "@nx/js": 21.4.1
+ "@nx/vite": 21.4.1
+ "@nx/workspace": 21.4.1
"@swc/core": ^1.4.12
"@types/debug": ^4.1.12
"@types/eslint-plugin-jsx-a11y": ^6.10.0
@@ -6045,7 +6069,7 @@ __metadata:
knip: ^5.41.1
lint-staged: ^15.2.2
markdownlint-cli: ^0.45.0
- nx: 21.2.3
+ nx: 21.4.1
prettier: 3.6.2
rimraf: ^5.0.5
semver: 7.7.0
@@ -6058,15 +6082,15 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/typescript-estree@8.41.0, @typescript-eslint/typescript-estree@workspace:*, @typescript-eslint/typescript-estree@workspace:^, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree":
+"@typescript-eslint/typescript-estree@8.42.0, @typescript-eslint/typescript-estree@workspace:*, @typescript-eslint/typescript-estree@workspace:^, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree":
version: 0.0.0-use.local
resolution: "@typescript-eslint/typescript-estree@workspace:packages/typescript-estree"
dependencies:
"@types/is-glob": ^4.0.4
- "@typescript-eslint/project-service": 8.41.0
- "@typescript-eslint/tsconfig-utils": 8.41.0
- "@typescript-eslint/types": 8.41.0
- "@typescript-eslint/visitor-keys": 8.41.0
+ "@typescript-eslint/project-service": 8.42.0
+ "@typescript-eslint/tsconfig-utils": 8.42.0
+ "@typescript-eslint/types": 8.42.0
+ "@typescript-eslint/visitor-keys": 8.42.0
"@vitest/coverage-v8": ^3.1.3
debug: ^4.3.4
eslint: "*"
@@ -6084,14 +6108,14 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/utils@8.41.0, @typescript-eslint/utils@^8.24.1, @typescript-eslint/utils@^8.34.1, @typescript-eslint/utils@workspace:*, @typescript-eslint/utils@workspace:^, @typescript-eslint/utils@workspace:packages/utils":
+"@typescript-eslint/utils@8.42.0, @typescript-eslint/utils@^8.24.1, @typescript-eslint/utils@^8.34.1, @typescript-eslint/utils@workspace:*, @typescript-eslint/utils@workspace:^, @typescript-eslint/utils@workspace:packages/utils":
version: 0.0.0-use.local
resolution: "@typescript-eslint/utils@workspace:packages/utils"
dependencies:
"@eslint-community/eslint-utils": ^4.7.0
- "@typescript-eslint/scope-manager": 8.41.0
- "@typescript-eslint/types": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
+ "@typescript-eslint/scope-manager": 8.42.0
+ "@typescript-eslint/types": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
"@vitest/coverage-v8": ^3.1.3
eslint: "*"
rimraf: "*"
@@ -6103,11 +6127,11 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/visitor-keys@8.41.0, @typescript-eslint/visitor-keys@workspace:*, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys":
+"@typescript-eslint/visitor-keys@8.42.0, @typescript-eslint/visitor-keys@workspace:*, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys":
version: 0.0.0-use.local
resolution: "@typescript-eslint/visitor-keys@workspace:packages/visitor-keys"
dependencies:
- "@typescript-eslint/types": 8.41.0
+ "@typescript-eslint/types": 8.42.0
"@vitest/coverage-v8": ^3.1.3
eslint: "*"
eslint-visitor-keys: ^4.2.1
@@ -6483,16 +6507,6 @@ __metadata:
languageName: node
linkType: hard
-"accepts@npm:^2.0.0":
- version: 2.0.0
- resolution: "accepts@npm:2.0.0"
- dependencies:
- mime-types: ^3.0.0
- negotiator: ^1.0.0
- checksum: 49fe6c050cb6f6ff4e771b4d88324fca4d3127865f2473872e818dca127d809ba3aa8fdfc7acb51dd3c5bade7311ca6b8cfff7015ea6db2f7eb9c8444d223a4f
- languageName: node
- linkType: hard
-
"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8":
version: 1.3.8
resolution: "accepts@npm:1.3.8"
@@ -6528,7 +6542,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.14.0, acorn@npm:^8.15.0, acorn@npm:^8.8.2":
+"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.15.0, acorn@npm:^8.8.2":
version: 8.15.0
resolution: "acorn@npm:8.15.0"
bin:
@@ -6768,7 +6782,7 @@ __metadata:
languageName: node
linkType: hard
-"ansi-styles@npm:^5.0.0":
+"ansi-styles@npm:^5.2.0":
version: 5.2.0
resolution: "ansi-styles@npm:5.2.0"
checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
@@ -7266,23 +7280,6 @@ __metadata:
languageName: node
linkType: hard
-"body-parser@npm:^2.2.0":
- version: 2.2.0
- resolution: "body-parser@npm:2.2.0"
- dependencies:
- bytes: ^3.1.2
- content-type: ^1.0.5
- debug: ^4.4.0
- http-errors: ^2.0.0
- iconv-lite: ^0.6.3
- on-finished: ^2.4.1
- qs: ^6.14.0
- raw-body: ^3.0.0
- type-is: ^2.0.0
- checksum: 7fe3a2d288f0b632528d6ccb90052d1a9492c5b79d5716d32c8de1f5fb8237b0d31ee5050e1d0b7ff143a492ff151804612c6e2686a222a1d4c9e2e6531b8fb2
- languageName: node
- linkType: hard
-
"bonjour-service@npm:^1.0.11":
version: 1.0.12
resolution: "bonjour-service@npm:1.0.12"
@@ -7423,7 +7420,7 @@ __metadata:
languageName: node
linkType: hard
-"bytes@npm:3.1.2, bytes@npm:^3.1.2":
+"bytes@npm:3.1.2":
version: 3.1.2
resolution: "bytes@npm:3.1.2"
checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e
@@ -8129,16 +8126,7 @@ __metadata:
languageName: node
linkType: hard
-"content-disposition@npm:^1.0.0":
- version: 1.0.0
- resolution: "content-disposition@npm:1.0.0"
- dependencies:
- safe-buffer: 5.2.1
- checksum: b27e2579fefe0ecf78238bb652fbc750671efce8344f0c6f05235b12433e6a965adb40906df1ac1fdde23e8f9f0e58385e44640e633165420f3f47d830ae0398
- languageName: node
- linkType: hard
-
-"content-type@npm:^1.0.5, content-type@npm:~1.0.4":
+"content-type@npm:~1.0.4":
version: 1.0.5
resolution: "content-type@npm:1.0.5"
checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766
@@ -8159,13 +8147,6 @@ __metadata:
languageName: node
linkType: hard
-"cookie-signature@npm:^1.2.1":
- version: 1.2.2
- resolution: "cookie-signature@npm:1.2.2"
- checksum: 1ad4f9b3907c9f3673a0f0a07c0a23da7909ac6c9204c5d80a0ec102fe50ccc45f27fdf496361840d6c132c5bb0037122c0a381f856d070183d1ebe3e5e041ff
- languageName: node
- linkType: hard
-
"cookie@npm:0.5.0":
version: 0.5.0
resolution: "cookie@npm:0.5.0"
@@ -8173,13 +8154,6 @@ __metadata:
languageName: node
linkType: hard
-"cookie@npm:^0.7.1":
- version: 0.7.2
- resolution: "cookie@npm:0.7.2"
- checksum: 9bf8555e33530affd571ea37b615ccad9b9a34febbf2c950c86787088eb00a8973690833b0f8ebd6b69b753c62669ea60cec89178c1fb007bf0749abed74f93e
- languageName: node
- linkType: hard
-
"copy-text-to-clipboard@npm:^3.2.0":
version: 3.2.0
resolution: "copy-text-to-clipboard@npm:3.2.0"
@@ -8248,16 +8222,6 @@ __metadata:
languageName: node
linkType: hard
-"cors@npm:^2.8.5":
- version: 2.8.5
- resolution: "cors@npm:2.8.5"
- dependencies:
- object-assign: ^4
- vary: ^1
- checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006
- languageName: node
- linkType: hard
-
"cosmiconfig@npm:^6.0.0":
version: 6.0.0
resolution: "cosmiconfig@npm:6.0.0"
@@ -8833,7 +8797,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0, debug@npm:^4.4.1":
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1":
version: 4.4.1
resolution: "debug@npm:4.4.1"
dependencies:
@@ -8984,7 +8948,7 @@ __metadata:
languageName: node
linkType: hard
-"depd@npm:2.0.0, depd@npm:^2.0.0":
+"depd@npm:2.0.0":
version: 2.0.0
resolution: "depd@npm:2.0.0"
checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a
@@ -9054,13 +9018,6 @@ __metadata:
languageName: node
linkType: hard
-"diff-sequences@npm:^29.6.3":
- version: 29.6.3
- resolution: "diff-sequences@npm:29.6.3"
- checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa
- languageName: node
- linkType: hard
-
"dir-glob@npm:^3.0.1":
version: 3.0.1
resolution: "dir-glob@npm:3.0.1"
@@ -9318,13 +9275,6 @@ __metadata:
languageName: node
linkType: hard
-"encodeurl@npm:^2.0.0":
- version: 2.0.0
- resolution: "encodeurl@npm:2.0.0"
- checksum: abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe
- languageName: node
- linkType: hard
-
"encodeurl@npm:~1.0.2":
version: 1.0.2
resolution: "encodeurl@npm:1.0.2"
@@ -9989,13 +9939,13 @@ __metadata:
languageName: node
linkType: hard
-"eslint-scope@npm:^8.3.0":
- version: 8.3.0
- resolution: "eslint-scope@npm:8.3.0"
+"eslint-scope@npm:^8.4.0":
+ version: 8.4.0
+ resolution: "eslint-scope@npm:8.4.0"
dependencies:
esrecurse: ^4.3.0
estraverse: ^5.2.0
- checksum: 57a58b6716533e25d527089826c4add89a047aecf75e4a88fee05f113ef5a72b85392b304a69bf670646cc3e068354aec70361b9718c2453949a05fc4d9bfe73
+ checksum: cf88f42cd5e81490d549dc6d350fe01e6fe420f9d9ea34f134bb359b030e3c4ef888d36667632e448937fe52449f7181501df48c08200e3d3b0fee250d05364e
languageName: node
linkType: hard
@@ -10013,7 +9963,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-visitor-keys@npm:^4.2.0, eslint-visitor-keys@npm:^4.2.1":
+"eslint-visitor-keys@npm:^4.2.1":
version: 4.2.1
resolution: "eslint-visitor-keys@npm:4.2.1"
checksum: 3a77e3f99a49109f6fb2c5b7784bc78f9743b834d238cdba4d66c602c6b52f19ed7bcd0a5c5dbbeae3a8689fd785e76c001799f53d2228b278282cf9f699fff5
@@ -10021,21 +9971,20 @@ __metadata:
linkType: hard
"eslint@npm:*, eslint@npm:^9.15.0, eslint@npm:^9.26.0":
- version: 9.26.0
- resolution: "eslint@npm:9.26.0"
+ version: 9.34.0
+ resolution: "eslint@npm:9.34.0"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
"@eslint-community/regexpp": ^4.12.1
- "@eslint/config-array": ^0.20.0
- "@eslint/config-helpers": ^0.2.1
- "@eslint/core": ^0.13.0
+ "@eslint/config-array": ^0.21.0
+ "@eslint/config-helpers": ^0.3.1
+ "@eslint/core": ^0.15.2
"@eslint/eslintrc": ^3.3.1
- "@eslint/js": 9.26.0
- "@eslint/plugin-kit": ^0.2.8
+ "@eslint/js": 9.34.0
+ "@eslint/plugin-kit": ^0.3.5
"@humanfs/node": ^0.16.6
"@humanwhocodes/module-importer": ^1.0.1
"@humanwhocodes/retry": ^0.4.2
- "@modelcontextprotocol/sdk": ^1.8.0
"@types/estree": ^1.0.6
"@types/json-schema": ^7.0.15
ajv: ^6.12.4
@@ -10043,9 +9992,9 @@ __metadata:
cross-spawn: ^7.0.6
debug: ^4.3.2
escape-string-regexp: ^4.0.0
- eslint-scope: ^8.3.0
- eslint-visitor-keys: ^4.2.0
- espree: ^10.3.0
+ eslint-scope: ^8.4.0
+ eslint-visitor-keys: ^4.2.1
+ espree: ^10.4.0
esquery: ^1.5.0
esutils: ^2.0.2
fast-deep-equal: ^3.1.3
@@ -10060,7 +10009,6 @@ __metadata:
minimatch: ^3.1.2
natural-compare: ^1.4.0
optionator: ^0.9.3
- zod: ^3.24.2
peerDependencies:
jiti: "*"
peerDependenciesMeta:
@@ -10068,18 +10016,18 @@ __metadata:
optional: true
bin:
eslint: bin/eslint.js
- checksum: 9f17db3a3b759ca2435a19ced30f77354761fe159bb357bc7edcc716f4985fd2b8b84e667a85f9ee9ea3cb0f9718e029a822f97ae6b70421c5880c8b3b2214be
+ checksum: 6de97f6197774821a086783e1bd73b9518c4eb8896165e448a8bb2359142c63cad40faa5dc79bcdc28fab20b57e1376ccbb76a6ae081da5e94baa18d2d3b92fe
languageName: node
linkType: hard
-"espree@npm:^10.0.1, espree@npm:^10.3.0":
- version: 10.3.0
- resolution: "espree@npm:10.3.0"
+"espree@npm:^10.0.1, espree@npm:^10.3.0, espree@npm:^10.4.0":
+ version: 10.4.0
+ resolution: "espree@npm:10.4.0"
dependencies:
- acorn: ^8.14.0
+ acorn: ^8.15.0
acorn-jsx: ^5.3.2
- eslint-visitor-keys: ^4.2.0
- checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef
+ eslint-visitor-keys: ^4.2.1
+ checksum: 5f9d0d7c81c1bca4bfd29a55270067ff9d575adb8c729a5d7f779c2c7b910bfc68ccf8ec19b29844b707440fc159a83868f22c8e87bbf7cbcb225ed067df6c85
languageName: node
linkType: hard
@@ -10214,7 +10162,7 @@ __metadata:
languageName: node
linkType: hard
-"etag@npm:^1.8.1, etag@npm:~1.8.1":
+"etag@npm:~1.8.1":
version: 1.8.1
resolution: "etag@npm:1.8.1"
checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff
@@ -10252,22 +10200,6 @@ __metadata:
languageName: node
linkType: hard
-"eventsource-parser@npm:^3.0.1":
- version: 3.0.1
- resolution: "eventsource-parser@npm:3.0.1"
- checksum: 737f78d1330d7c257125c6b2bd374bb50c5588ac81eb83c05cd6af81fce295bd40fd3d3bb3357ba028a688267363f07912a7e6044656033cde7e8f836d840e40
- languageName: node
- linkType: hard
-
-"eventsource@npm:^3.0.2":
- version: 3.0.6
- resolution: "eventsource@npm:3.0.6"
- dependencies:
- eventsource-parser: ^3.0.1
- checksum: ac3bc3cc339b03c46688fde0a340957b8efd7a4d90592ac25b0cd497de2c8ee77259f1162d1beade6e7b37e932d31b5daec323a96215e392c4f5c535a29db36f
- languageName: node
- linkType: hard
-
"execa@npm:7.2.0":
version: 7.2.0
resolution: "execa@npm:7.2.0"
@@ -10333,15 +10265,6 @@ __metadata:
languageName: node
linkType: hard
-"express-rate-limit@npm:^7.5.0":
- version: 7.5.0
- resolution: "express-rate-limit@npm:7.5.0"
- peerDependencies:
- express: ^4.11 || 5 || ^5.0.0-beta.1
- checksum: 2807341039c111eed292e28768aff3c69515cb96ff15799976a44ead776c41931d6947fe3da3cea021fa0490700b1ab468b4832bbed7d231bed63c195d22b959
- languageName: node
- linkType: hard
-
"express@npm:^4.17.3":
version: 4.18.1
resolution: "express@npm:4.18.1"
@@ -10381,41 +10304,6 @@ __metadata:
languageName: node
linkType: hard
-"express@npm:^5.0.1":
- version: 5.1.0
- resolution: "express@npm:5.1.0"
- dependencies:
- accepts: ^2.0.0
- body-parser: ^2.2.0
- content-disposition: ^1.0.0
- content-type: ^1.0.5
- cookie: ^0.7.1
- cookie-signature: ^1.2.1
- debug: ^4.4.0
- encodeurl: ^2.0.0
- escape-html: ^1.0.3
- etag: ^1.8.1
- finalhandler: ^2.1.0
- fresh: ^2.0.0
- http-errors: ^2.0.0
- merge-descriptors: ^2.0.0
- mime-types: ^3.0.0
- on-finished: ^2.4.1
- once: ^1.4.0
- parseurl: ^1.3.3
- proxy-addr: ^2.0.7
- qs: ^6.14.0
- range-parser: ^1.2.1
- router: ^2.2.0
- send: ^1.1.0
- serve-static: ^2.2.0
- statuses: ^2.0.1
- type-is: ^2.0.1
- vary: ^1.1.2
- checksum: 06e6141780c6c4780111f971ce062c83d4cf4862c40b43caf1d95afcbb58d7422c560503b8c9d04c7271511525d09cbdbe940bcaad63970fd4c1b9f6fd713bdb
- languageName: node
- linkType: hard
-
"extend-shallow@npm:^2.0.1":
version: 2.0.1
resolution: "extend-shallow@npm:2.0.1"
@@ -10616,20 +10504,6 @@ __metadata:
languageName: node
linkType: hard
-"finalhandler@npm:^2.1.0":
- version: 2.1.0
- resolution: "finalhandler@npm:2.1.0"
- dependencies:
- debug: ^4.4.0
- encodeurl: ^2.0.0
- escape-html: ^1.0.3
- on-finished: ^2.4.1
- parseurl: ^1.3.3
- statuses: ^2.0.1
- checksum: 27ca9cc83b1384ba37959eb95bc7e62bc0bf4d6f6af63f6d38821cf7499b113e34b23f96a2a031616817f73986f94deea67c2f558de9daf406790c181a2501df
- languageName: node
- linkType: hard
-
"find-cache-dir@npm:^4.0.0":
version: 4.0.0
resolution: "find-cache-dir@npm:4.0.0"
@@ -10798,14 +10672,14 @@ __metadata:
languageName: node
linkType: hard
-"formatly@npm:^0.2.4":
- version: 0.2.4
- resolution: "formatly@npm:0.2.4"
+"formatly@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "formatly@npm:0.3.0"
dependencies:
fd-package-json: ^2.0.0
bin:
formatly: bin/index.mjs
- checksum: 1d5b501a83cb5778e357594b1f3c839de2bae1ee92dc5c0fc367f2dc7f9c3cddb52934c9f261e9ef2cac08931c4a8d2beb1d0f034c9f0b212e81b7e83faca996
+ checksum: ef2bf133c048195fc30ced2a20e9acb5251a2a7cf7c2bf67afc71f6bbad78a3f8816b814ee22ec6db1bca7b339fb0d1eddbf168c7d36cc53459c664ff73e8d0d
languageName: node
linkType: hard
@@ -10830,13 +10704,6 @@ __metadata:
languageName: node
linkType: hard
-"fresh@npm:^2.0.0":
- version: 2.0.0
- resolution: "fresh@npm:2.0.0"
- checksum: 38b9828352c6271e2a0dd8bdd985d0100dbbc4eb8b6a03286071dd6f7d96cfaacd06d7735701ad9a95870eb3f4555e67c08db1dcfe24c2e7bb87383c72fae1d2
- languageName: node
- linkType: hard
-
"front-matter@npm:^4.0.2":
version: 4.0.2
resolution: "front-matter@npm:4.0.2"
@@ -11732,7 +11599,7 @@ __metadata:
languageName: node
linkType: hard
-"http-errors@npm:2.0.0, http-errors@npm:^2.0.0":
+"http-errors@npm:2.0.0":
version: 2.0.0
resolution: "http-errors@npm:2.0.0"
dependencies:
@@ -11872,7 +11739,7 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
+"iconv-lite@npm:^0.6.2":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
dependencies:
@@ -12438,13 +12305,6 @@ __metadata:
languageName: node
linkType: hard
-"is-promise@npm:^4.0.0":
- version: 4.0.0
- resolution: "is-promise@npm:4.0.0"
- checksum: 0b46517ad47b00b6358fd6553c83ec1f6ba9acd7ffb3d30a0bf519c5c69e7147c132430452351b8a9fc198f8dd6c4f76f8e6f5a7f100f8c77d57d9e0f4261a8a
- languageName: node
- linkType: hard
-
"is-reference@npm:^3.0.0":
version: 3.0.2
resolution: "is-reference@npm:3.0.2"
@@ -12720,22 +12580,15 @@ __metadata:
languageName: node
linkType: hard
-"jest-diff@npm:^29.4.1":
- version: 29.7.0
- resolution: "jest-diff@npm:29.7.0"
+"jest-diff@npm:^30.0.2":
+ version: 30.1.2
+ resolution: "jest-diff@npm:30.1.2"
dependencies:
- chalk: ^4.0.0
- diff-sequences: ^29.6.3
- jest-get-type: ^29.6.3
- pretty-format: ^29.7.0
- checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77
- languageName: node
- linkType: hard
-
-"jest-get-type@npm:^29.6.3":
- version: 29.6.3
- resolution: "jest-get-type@npm:29.6.3"
- checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ "@jest/diff-sequences": 30.0.1
+ "@jest/get-type": 30.1.0
+ chalk: ^4.1.2
+ pretty-format: 30.0.5
+ checksum: 15f350b664f5fe00190cbd36dbe2fd477010bf471b9fb3b2b0b1a40ce4241b10595a05203fcb86aea7720d2be225419efc3d1afa921966b0371d33120c563eec
languageName: node
linkType: hard
@@ -12796,12 +12649,12 @@ __metadata:
languageName: node
linkType: hard
-"jiti@npm:^2.4.2":
- version: 2.4.2
- resolution: "jiti@npm:2.4.2"
+"jiti@npm:^2.5.1":
+ version: 2.5.1
+ resolution: "jiti@npm:2.5.1"
bin:
jiti: lib/jiti-cli.mjs
- checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e
+ checksum: db901281e01013c27d46d6c5cde5fa817082f32232c92099043df11e135d00ccd1b4356a9ba356a3293e91855bd7437b6df5ae0ae6ad2c384d9bd59df926633c
languageName: node
linkType: hard
@@ -13039,19 +12892,19 @@ __metadata:
linkType: hard
"knip@npm:^5.41.1":
- version: 5.62.0
- resolution: "knip@npm:5.62.0"
+ version: 5.63.0
+ resolution: "knip@npm:5.63.0"
dependencies:
"@nodelib/fs.walk": ^1.2.3
fast-glob: ^3.3.3
- formatly: ^0.2.4
- jiti: ^2.4.2
+ formatly: ^0.3.0
+ jiti: ^2.5.1
js-yaml: ^4.1.0
minimist: ^1.2.8
- oxc-resolver: ^11.1.0
+ oxc-resolver: ^11.6.2
picocolors: ^1.1.1
picomatch: ^4.0.1
- smol-toml: ^1.3.4
+ smol-toml: ^1.4.1
strip-json-comments: 5.0.2
zod: ^3.22.4
zod-validation-error: ^3.0.3
@@ -13061,7 +12914,7 @@ __metadata:
bin:
knip: bin/knip.js
knip-bun: bin/knip-bun.js
- checksum: a7b32e2d264b951e65ec7e0009bd27f1bacbe9be8703fa897eb520427b7414babf4c718876f3f01208d8479189061dc921edf44ad849d85b2c6689c858a79ebe
+ checksum: bbb8eda2469c3f2eddfa19e746732984bd6ac0485e34b650933f172ceecc8e6ac84ff8a481c85dcc3792cba3c135c63ab13f0159c4df4872ad3accb6c0a4cb84
languageName: node
linkType: hard
@@ -13888,13 +13741,6 @@ __metadata:
languageName: node
linkType: hard
-"media-typer@npm:^1.1.0":
- version: 1.1.0
- resolution: "media-typer@npm:1.1.0"
- checksum: a58dd60804df73c672942a7253ccc06815612326dc1c0827984b1a21704466d7cde351394f47649e56cf7415e6ee2e26e000e81b51b3eebb5a93540e8bf93cbd
- languageName: node
- linkType: hard
-
"memfs@npm:^3.1.2, memfs@npm:^3.4.3":
version: 3.5.3
resolution: "memfs@npm:3.5.3"
@@ -13918,13 +13764,6 @@ __metadata:
languageName: node
linkType: hard
-"merge-descriptors@npm:^2.0.0":
- version: 2.0.0
- resolution: "merge-descriptors@npm:2.0.0"
- checksum: e383332e700a94682d0125a36c8be761142a1320fc9feeb18e6e36647c9edf064271645f5669b2c21cf352116e561914fd8aa831b651f34db15ef4038c86696a
- languageName: node
- linkType: hard
-
"merge-stream@npm:^2.0.0":
version: 2.0.0
resolution: "merge-stream@npm:2.0.0"
@@ -14491,7 +14330,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.54.0":
+"mime-db@npm:>= 1.43.0 < 2":
version: 1.54.0
resolution: "mime-db@npm:1.54.0"
checksum: e99aaf2f23f5bd607deb08c83faba5dd25cf2fec90a7cc5b92d8260867ee08dab65312e1a589e60093dc7796d41e5fae013268418482f1db4c7d52d0a0960ac9
@@ -14523,15 +14362,6 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1":
- version: 3.0.1
- resolution: "mime-types@npm:3.0.1"
- dependencies:
- mime-db: ^1.54.0
- checksum: 8d497ad5cb2dd1210ac7d049b5de94af0b24b45a314961e145b44389344604d54752f03bc00bf880c0da60a214be6fb6d423d318104f02c28d95dd8ebeea4fb4
- languageName: node
- linkType: hard
-
"mime@npm:1.6.0":
version: 1.6.0
resolution: "mime@npm:1.6.0"
@@ -14860,13 +14690,6 @@ __metadata:
languageName: node
linkType: hard
-"negotiator@npm:^1.0.0":
- version: 1.0.0
- resolution: "negotiator@npm:1.0.0"
- checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb
- languageName: node
- linkType: hard
-
"neo-async@npm:^2.6.2":
version: 2.6.2
resolution: "neo-async@npm:2.6.2"
@@ -15061,21 +14884,21 @@ __metadata:
languageName: node
linkType: hard
-"nx@npm:21.2.3":
- version: 21.2.3
- resolution: "nx@npm:21.2.3"
+"nx@npm:21.4.1":
+ version: 21.4.1
+ resolution: "nx@npm:21.4.1"
dependencies:
"@napi-rs/wasm-runtime": 0.2.4
- "@nx/nx-darwin-arm64": 21.2.3
- "@nx/nx-darwin-x64": 21.2.3
- "@nx/nx-freebsd-x64": 21.2.3
- "@nx/nx-linux-arm-gnueabihf": 21.2.3
- "@nx/nx-linux-arm64-gnu": 21.2.3
- "@nx/nx-linux-arm64-musl": 21.2.3
- "@nx/nx-linux-x64-gnu": 21.2.3
- "@nx/nx-linux-x64-musl": 21.2.3
- "@nx/nx-win32-arm64-msvc": 21.2.3
- "@nx/nx-win32-x64-msvc": 21.2.3
+ "@nx/nx-darwin-arm64": 21.4.1
+ "@nx/nx-darwin-x64": 21.4.1
+ "@nx/nx-freebsd-x64": 21.4.1
+ "@nx/nx-linux-arm-gnueabihf": 21.4.1
+ "@nx/nx-linux-arm64-gnu": 21.4.1
+ "@nx/nx-linux-arm64-musl": 21.4.1
+ "@nx/nx-linux-x64-gnu": 21.4.1
+ "@nx/nx-linux-x64-musl": 21.4.1
+ "@nx/nx-win32-arm64-msvc": 21.4.1
+ "@nx/nx-win32-x64-msvc": 21.4.1
"@yarnpkg/lockfile": ^1.1.0
"@yarnpkg/parsers": 3.0.2
"@zkochan/js-yaml": 0.0.7
@@ -15091,7 +14914,7 @@ __metadata:
flat: ^5.0.2
front-matter: ^4.0.2
ignore: ^5.0.4
- jest-diff: ^29.4.1
+ jest-diff: ^30.0.2
jsonc-parser: 3.2.0
lines-and-columns: 2.0.3
minimatch: 9.0.3
@@ -15142,11 +14965,11 @@ __metadata:
bin:
nx: bin/nx.js
nx-cloud: bin/nx-cloud.js
- checksum: faaef03d763f6da739f8108c3f8fe4ad5dd30926d15b279508266e8a272164b5d53598fb3ff5b636ee665bb8e9782ccc2a3134cb6c977b577c5c16d5f20722bd
+ checksum: babf4d271031fad5e300509310dd65cc1f3198c37a880ceb0c2eec105a61fcd903fa6fba4f597669b08b1c92445998f82f5f2cffab1a94ff45b015389bcb0515
languageName: node
linkType: hard
-"object-assign@npm:^4, object-assign@npm:^4.1.1":
+"object-assign@npm:^4.1.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
@@ -15234,7 +15057,7 @@ __metadata:
languageName: node
linkType: hard
-"on-finished@npm:2.4.1, on-finished@npm:^2.4.1":
+"on-finished@npm:2.4.1":
version: 2.4.1
resolution: "on-finished@npm:2.4.1"
dependencies:
@@ -15347,29 +15170,29 @@ __metadata:
languageName: node
linkType: hard
-"oxc-resolver@npm:^11.1.0":
- version: 11.6.1
- resolution: "oxc-resolver@npm:11.6.1"
- dependencies:
- "@oxc-resolver/binding-android-arm-eabi": 11.6.1
- "@oxc-resolver/binding-android-arm64": 11.6.1
- "@oxc-resolver/binding-darwin-arm64": 11.6.1
- "@oxc-resolver/binding-darwin-x64": 11.6.1
- "@oxc-resolver/binding-freebsd-x64": 11.6.1
- "@oxc-resolver/binding-linux-arm-gnueabihf": 11.6.1
- "@oxc-resolver/binding-linux-arm-musleabihf": 11.6.1
- "@oxc-resolver/binding-linux-arm64-gnu": 11.6.1
- "@oxc-resolver/binding-linux-arm64-musl": 11.6.1
- "@oxc-resolver/binding-linux-ppc64-gnu": 11.6.1
- "@oxc-resolver/binding-linux-riscv64-gnu": 11.6.1
- "@oxc-resolver/binding-linux-riscv64-musl": 11.6.1
- "@oxc-resolver/binding-linux-s390x-gnu": 11.6.1
- "@oxc-resolver/binding-linux-x64-gnu": 11.6.1
- "@oxc-resolver/binding-linux-x64-musl": 11.6.1
- "@oxc-resolver/binding-wasm32-wasi": 11.6.1
- "@oxc-resolver/binding-win32-arm64-msvc": 11.6.1
- "@oxc-resolver/binding-win32-ia32-msvc": 11.6.1
- "@oxc-resolver/binding-win32-x64-msvc": 11.6.1
+"oxc-resolver@npm:^11.6.2":
+ version: 11.7.1
+ resolution: "oxc-resolver@npm:11.7.1"
+ dependencies:
+ "@oxc-resolver/binding-android-arm-eabi": 11.7.1
+ "@oxc-resolver/binding-android-arm64": 11.7.1
+ "@oxc-resolver/binding-darwin-arm64": 11.7.1
+ "@oxc-resolver/binding-darwin-x64": 11.7.1
+ "@oxc-resolver/binding-freebsd-x64": 11.7.1
+ "@oxc-resolver/binding-linux-arm-gnueabihf": 11.7.1
+ "@oxc-resolver/binding-linux-arm-musleabihf": 11.7.1
+ "@oxc-resolver/binding-linux-arm64-gnu": 11.7.1
+ "@oxc-resolver/binding-linux-arm64-musl": 11.7.1
+ "@oxc-resolver/binding-linux-ppc64-gnu": 11.7.1
+ "@oxc-resolver/binding-linux-riscv64-gnu": 11.7.1
+ "@oxc-resolver/binding-linux-riscv64-musl": 11.7.1
+ "@oxc-resolver/binding-linux-s390x-gnu": 11.7.1
+ "@oxc-resolver/binding-linux-x64-gnu": 11.7.1
+ "@oxc-resolver/binding-linux-x64-musl": 11.7.1
+ "@oxc-resolver/binding-wasm32-wasi": 11.7.1
+ "@oxc-resolver/binding-win32-arm64-msvc": 11.7.1
+ "@oxc-resolver/binding-win32-ia32-msvc": 11.7.1
+ "@oxc-resolver/binding-win32-x64-msvc": 11.7.1
napi-postinstall: ^0.3.0
dependenciesMeta:
"@oxc-resolver/binding-android-arm-eabi":
@@ -15410,7 +15233,7 @@ __metadata:
optional: true
"@oxc-resolver/binding-win32-x64-msvc":
optional: true
- checksum: 9cc70a0a88ed79c186b9f1bc450509bb7a0032b4ff72e5b0e674d8de167c7ea4d82751c6099b024ca2ae673f02352ce83cd0cee7119c2f5cbc4d48d18c982b38
+ checksum: 44b60d188ec8f27c193d056317944ad70f2aca5e1435ee4a03d24a07c5b4c460ed57a6a855a3f4b268014d374059199a17ae2c14452e08d2ad6a53c665bf1180
languageName: node
linkType: hard
@@ -15618,7 +15441,7 @@ __metadata:
languageName: node
linkType: hard
-"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
+"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
version: 1.3.3
resolution: "parseurl@npm:1.3.3"
checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
@@ -15734,13 +15557,6 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:^8.0.0":
- version: 8.2.0
- resolution: "path-to-regexp@npm:8.2.0"
- checksum: 56e13e45962e776e9e7cd72e87a441cfe41f33fd539d097237ceb16adc922281136ca12f5a742962e33d8dda9569f630ba594de56d8b7b6e49adf31803c5e771
- languageName: node
- linkType: hard
-
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -15810,13 +15626,6 @@ __metadata:
languageName: node
linkType: hard
-"pkce-challenge@npm:^5.0.0":
- version: 5.0.0
- resolution: "pkce-challenge@npm:5.0.0"
- checksum: b5cc239f67ed525b49a23a86fdb8f49e3cdb9fd8f5e8612a15f35b553a18e5a43c99db474ffc6232e084c8328d4f2da51557e51ee4e7f8be42f710215df36f3f
- languageName: node
- linkType: hard
-
"pkg-dir@npm:^7.0.0":
version: 7.0.0
resolution: "pkg-dir@npm:7.0.0"
@@ -16725,14 +16534,14 @@ __metadata:
languageName: node
linkType: hard
-"pretty-format@npm:^29.7.0":
- version: 29.7.0
- resolution: "pretty-format@npm:29.7.0"
+"pretty-format@npm:30.0.5":
+ version: 30.0.5
+ resolution: "pretty-format@npm:30.0.5"
dependencies:
- "@jest/schemas": ^29.6.3
- ansi-styles: ^5.0.0
- react-is: ^18.0.0
- checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ "@jest/schemas": 30.0.5
+ ansi-styles: ^5.2.0
+ react-is: ^18.3.1
+ checksum: 0772b7432ff4083483dc12b5b9a1904a1a8f2654936af2a5fa3ba5dfa994a4c7ef843f132152894fd96203a09e0ef80dab2e99dabebd510da86948ed91238fed
languageName: node
linkType: hard
@@ -16828,7 +16637,7 @@ __metadata:
languageName: node
linkType: hard
-"proxy-addr@npm:^2.0.7, proxy-addr@npm:~2.0.7":
+"proxy-addr@npm:~2.0.7":
version: 2.0.7
resolution: "proxy-addr@npm:2.0.7"
dependencies:
@@ -16877,15 +16686,6 @@ __metadata:
languageName: node
linkType: hard
-"qs@npm:^6.14.0":
- version: 6.14.0
- resolution: "qs@npm:6.14.0"
- dependencies:
- side-channel: ^1.1.0
- checksum: 189b52ad4e9a0da1a16aff4c58b2a554a8dad9bd7e287c7da7446059b49ca2e33a49e570480e8be406b87fccebf134f51c373cbce36c8c83859efa0c9b71d635
- languageName: node
- linkType: hard
-
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -16944,18 +16744,6 @@ __metadata:
languageName: node
linkType: hard
-"raw-body@npm:^3.0.0":
- version: 3.0.0
- resolution: "raw-body@npm:3.0.0"
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.6.3
- unpipe: 1.0.0
- checksum: 25b7cf7964183db322e819050d758a5abd0f22c51e9f37884ea44a9ed6855a1fb61f8caa8ec5b61d07e69f54db43dbbc08ad98ef84556696d6aa806be247af0e
- languageName: node
- linkType: hard
-
"raw-loader@npm:^4.0.2":
version: 4.0.2
resolution: "raw-loader@npm:4.0.2"
@@ -17063,10 +16851,10 @@ __metadata:
languageName: node
linkType: hard
-"react-is@npm:^18.0.0":
- version: 18.2.0
- resolution: "react-is@npm:18.2.0"
- checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e
+"react-is@npm:^18.3.1":
+ version: 18.3.1
+ resolution: "react-is@npm:18.3.1"
+ checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21
languageName: node
linkType: hard
@@ -17853,19 +17641,6 @@ __metadata:
languageName: node
linkType: hard
-"router@npm:^2.2.0":
- version: 2.2.0
- resolution: "router@npm:2.2.0"
- dependencies:
- debug: ^4.4.0
- depd: ^2.0.0
- is-promise: ^4.0.0
- parseurl: ^1.3.3
- path-to-regexp: ^8.0.0
- checksum: 4c3bec8011ed10bb07d1ee860bc715f245fff0fdff991d8319741d2932d89c3fe0a56766b4fa78e95444bc323fd2538e09c8e43bfbd442c2a7fab67456df7fa5
- languageName: node
- linkType: hard
-
"rtlcss@npm:^4.1.0":
version: 4.1.1
resolution: "rtlcss@npm:4.1.1"
@@ -18114,25 +17889,6 @@ __metadata:
languageName: node
linkType: hard
-"send@npm:^1.1.0, send@npm:^1.2.0":
- version: 1.2.0
- resolution: "send@npm:1.2.0"
- dependencies:
- debug: ^4.3.5
- encodeurl: ^2.0.0
- escape-html: ^1.0.3
- etag: ^1.8.1
- fresh: ^2.0.0
- http-errors: ^2.0.0
- mime-types: ^3.0.1
- ms: ^2.1.3
- on-finished: ^2.4.1
- range-parser: ^1.2.1
- statuses: ^2.0.1
- checksum: 7557ee6c1c257a1c53b402b4fba8ed88c95800b08abe085fc79e0824869274f213491be2efb2df3de228c70e4d40ce2019e5f77b58c42adb97149135420c3f34
- languageName: node
- linkType: hard
-
"serialize-javascript@npm:^4.0.0":
version: 4.0.0
resolution: "serialize-javascript@npm:4.0.0"
@@ -18193,18 +17949,6 @@ __metadata:
languageName: node
linkType: hard
-"serve-static@npm:^2.2.0":
- version: 2.2.0
- resolution: "serve-static@npm:2.2.0"
- dependencies:
- encodeurl: ^2.0.0
- escape-html: ^1.0.3
- parseurl: ^1.3.3
- send: ^1.2.0
- checksum: 74f39e88f0444aa6732aae3b9597739c47552adecdc83fa32aa42555e76f1daad480d791af73894655c27a2d378275a461e691cead33fb35d8b976f1e2d24665
- languageName: node
- linkType: hard
-
"set-blocking@npm:^2.0.0":
version: 2.0.0
resolution: "set-blocking@npm:2.0.0"
@@ -18477,7 +18221,7 @@ __metadata:
languageName: node
linkType: hard
-"smol-toml@npm:^1.3.4, smol-toml@npm:^1.4.1":
+"smol-toml@npm:^1.4.1":
version: 1.4.2
resolution: "smol-toml@npm:1.4.2"
checksum: f12d3fbc2d49396ec523170828a5c9a89bc7740eb7b205f8d8553af18629d936474c1ce55b70c7839aa239a11252e16fd1c3fc955b966b81c9dec00155df4f85
@@ -18685,7 +18429,7 @@ __metadata:
languageName: node
linkType: hard
-"statuses@npm:2.0.1, statuses@npm:^2.0.1":
+"statuses@npm:2.0.1":
version: 2.0.1
resolution: "statuses@npm:2.0.1"
checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb
@@ -19444,7 +19188,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.8.0":
+"tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0":
version: 2.8.1
resolution: "tslib@npm:2.8.1"
checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a
@@ -19504,17 +19248,6 @@ __metadata:
languageName: node
linkType: hard
-"type-is@npm:^2.0.0, type-is@npm:^2.0.1":
- version: 2.0.1
- resolution: "type-is@npm:2.0.1"
- dependencies:
- content-type: ^1.0.5
- media-typer: ^1.1.0
- mime-types: ^3.0.0
- checksum: 0266e7c782238128292e8c45e60037174d48c6366bb2d45e6bd6422b611c193f83409a8341518b6b5f33f8e4d5a959f38658cacfea77f0a3505b9f7ac1ddec8f
- languageName: node
- linkType: hard
-
"type-is@npm:~1.6.18":
version: 1.6.18
resolution: "type-is@npm:1.6.18"
@@ -19626,10 +19359,10 @@ __metadata:
version: 0.0.0-use.local
resolution: "typescript-eslint@workspace:packages/typescript-eslint"
dependencies:
- "@typescript-eslint/eslint-plugin": 8.41.0
- "@typescript-eslint/parser": 8.41.0
- "@typescript-eslint/typescript-estree": 8.41.0
- "@typescript-eslint/utils": 8.41.0
+ "@typescript-eslint/eslint-plugin": 8.42.0
+ "@typescript-eslint/parser": 8.42.0
+ "@typescript-eslint/typescript-estree": 8.42.0
+ "@typescript-eslint/utils": 8.42.0
"@vitest/coverage-v8": ^3.1.3
eslint: "*"
rimraf: "*"
@@ -19979,7 +19712,7 @@ __metadata:
languageName: node
linkType: hard
-"vary@npm:^1, vary@npm:^1.1.2, vary@npm:~1.1.2":
+"vary@npm:~1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"
checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b
@@ -21032,15 +20765,6 @@ __metadata:
languageName: node
linkType: hard
-"zod-to-json-schema@npm:^3.24.1":
- version: 3.24.5
- resolution: "zod-to-json-schema@npm:3.24.5"
- peerDependencies:
- zod: ^3.24.1
- checksum: dc4e5e4c06e9a5494e4b1d8c8363ac907f9d488f36c8e4923e1e5ac4f91f737722f99200cd92a409551e7456d960734d4cabd37935234ca95e290572468ffc08
- languageName: node
- linkType: hard
-
"zod-validation-error@npm:^3.0.3":
version: 3.2.0
resolution: "zod-validation-error@npm:3.2.0"
@@ -21050,7 +20774,7 @@ __metadata:
languageName: node
linkType: hard
-"zod@npm:^3.22.4, zod@npm:^3.23.8, zod@npm:^3.24.2, zod@npm:^3.25.67":
+"zod@npm:^3.22.4, zod@npm:^3.25.67":
version: 3.25.67
resolution: "zod@npm:3.25.67"
checksum: 56ab904d33b1cd00041ce64ae05b0628fcbfeb7e707fa31cd498a97b540135e4dfe685200c9c62aea307695ee132870b4bc34f035228ea728aa75cc96a4954cb