Dunqing
893a949a5d
fix(transformer): skip async generators in async-to-generator
...
Async generator methods must return async iterators, but the method
visitor sent them through async-to-generator and changed their return
value to a Promise.
Match the other function paths and Babel by leaving these methods for
the async-generator-functions transform.
2026-09-04 09:08:37 +08:00
Dunqing
ce757a5f8e
fix(transformer): preserve this in lowered async methods
...
Async method bodies moved into generated generator functions lose their
receiver when arrow-function lowering is enabled at the same time.
Track the two async transforms separately so ordinary async methods and
async generator methods capture `this` only when their owning transform
actually moves the body.
2026-09-01 23:41:54 +08:00
camc314
243b685c3d
fix(transformer/object-rest): lower multiple declarators correctly ( #26147 )
...
## Summary
Fix ES2018 object-rest lowering when one variable declaration contains multiple object-rest declarators.
### Before
Given:
```js
let { a, ...r } = x, { b, ...s } = y;
```
Oxc produced:
```js
let { a } = x, { b } = y,
s = babelHelpers.objectWithoutProperties(y, ["b"]),
{} = null;
```
The `r` binding was lost.
Each replacement was recorded using its original declarator index. Replacing the first declarator expanded it into multiple entries, shifting the second declarator. The subsequent replacement still used the old index and overwrote part of the first expansion.
### After
Oxc now produces:
```js
let { a } = x,
r = babelHelpers.objectWithoutProperties(x, ["a"]),
{ b } = y,
s = babelHelpers.objectWithoutProperties(y, ["b"]);
```
Queued replacements are applied from right to left. Replacing a later declarator cannot change the index of an earlier one, so every recorded index remains valid.
Regression coverage includes multiple `let`, `const`, and `var` declarators.
2026-08-28 14:02:19 +00:00
Dunqing
c3dedc9b0c
fix(semantic): skip function body bindings in parameters ( #26099 )
...
Function parameters, TypeScript signatures, and function bodies currently share one Oxc semantic scope. A reference in a parameter can therefore bind to a declaration inside the body, even though JavaScript does not make body declarations visible there. Rolldown may then treat a global as local, skip a configured define, or remove live code.
## Example
```js
export function load(value = typeof window !== "undefined") {
var window;
return value;
}
```
The body `var window` is not visible to the default value. Before this change, Oxc resolved `window` in the default value to that body declaration. It should remain a global reference.
The workaround resolves parameter and signature references before visiting the body, while only parameter bindings are present. If a reference is still unresolved, its `lookup_scope_id` advances to the function's parent. Final resolution resumes there, so declarations added while visiting the body are skipped. References created in the body still begin at the function scope and resolve normally.
```text
Before: parameter reference -> completed function scope -> body binding (wrong)
After: parameter reference -> parameter bindings -> parent scopes
body reference -> completed function scope -> parent scopes
```
Parameter decorators already begin in the enclosing class scope, so they are left for normal final resolution. This emulates separate parameter and body scopes until https://github.com/oxc-project/backlog/issues/176 is implemented.
The corrected semantic data also exposes the transformer case covered by #26105 .
Verified with semantic and transformer-plugin tests, Clippy, coverage, allocation snapshots, and diff checks. `just ready` completed workspace checks but stopped at a codegen snapshot recorded with Node.js v26.5.0; the local version is v25.8.1.
Closes #20427
Closes #22783
Downstream reports:
- https://github.com/rolldown/rolldown/issues/10722
- https://github.com/rolldown/rolldown/issues/10779
AI assistance: OpenAI Codex was used to investigate, implement, and test this change. The contributor is responsible for the submitted change.
2026-08-27 17:23:18 +00:00
camc314
db808d2c91
fix(transformer): avoid filtered exec snapshot updates ( #26052 )
...
## Summary
- prevent filtered transform exec runs from overwriting aggregate snapshots
- print filtered Vitest output while preserving snapshot updates for unfiltered runs
2026-08-24 10:44:11 +00:00
renovate[bot]
aec79a6c7f
chore(deps): update npm packages ( #26022 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@vitest/browser](https://vitest.dev/guide/browser/ )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser ))
| [`4.1.10` →
`4.1.11`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.1.10/4.1.11 )
|

|

|

|

|
|
[@vitest/browser-playwright](https://vitest.dev/config/browser/playwright )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright ))
| [`4.1.10` →
`4.1.11`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.1.10/4.1.11 )
|

|

|

|

|
| [degit](https://redirect.github.com/Rich-Harris/degit ) | [`3.7.0` →
`3.8.0`](https://renovatebot.com/diffs/npm/degit/3.7.0/3.8.0 ) |

|

|

|

|
| [publint](https://publint.dev )
([source](https://redirect.github.com/publint/publint/tree/HEAD/packages/publint ))
| [`0.3.23` →
`0.3.24`](https://renovatebot.com/diffs/npm/publint/0.3.23/0.3.24 ) |

|

|

|

|
| [vitest](https://vitest.dev )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ))
| [`4.1.10` →
`4.1.11`](https://renovatebot.com/diffs/npm/vitest/4.1.10/4.1.11 ) |

|

|

|

|
---
### Release Notes
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
###
[`v4.1.11`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.11 )
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11 )
##### 🐞 Bug Fixes
- Revive global concurrency limit for test lifecycle \[backport to v4]
- by [@​sheremet-va](https://redirect.github.com/sheremet-va )
and [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​10992](https://redirect.github.com/vitest-dev/vitest/issues/10992 )
[<samp>(5146d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5146df80b )
- **browser**:
- Encode iframeId in tester iframe URL \[backport to v4] - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ),
**Pduhard** and **Claude Opus 4.8** in
[#​10955](https://redirect.github.com/vitest-dev/vitest/issues/10955 )
[<samp>(10b2c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/10b2cd201 )
- Trigger playwright/chromium gc on lower disk availability \[backport
to v4] - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ),
**Hiroshi Ogawa** and **OpenCode** in
[#​10951](https://redirect.github.com/vitest-dev/vitest/issues/10951 )
[<samp>(9851d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9851dbc41 )
- **mocker**:
- Restrict redirect mocks to the fs allowlist \[backport to v4] - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​10974](https://redirect.github.com/vitest-dev/vitest/issues/10974 )
[<samp>(fe5a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fe5a11d3c )
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11 )
</details>
<details>
<summary>Rich-Harris/degit (degit)</summary>
###
[`v3.8.0`](https://redirect.github.com/Rich-Harris/degit/compare/v3.7.1...v3.8.0 )
[Compare
Source](https://redirect.github.com/Rich-Harris/degit/compare/v3.7.1...v3.8.0 )
###
[`v3.7.1`](https://redirect.github.com/Rich-Harris/degit/compare/v3.7.0...v3.7.1 )
[Compare
Source](https://redirect.github.com/Rich-Harris/degit/compare/v3.7.0...v3.7.1 )
</details>
<details>
<summary>publint/publint (publint)</summary>
###
[`v0.3.24`](https://redirect.github.com/publint/publint/blob/HEAD/packages/publint/CHANGELOG.md#0324 )
[Compare
Source](https://redirect.github.com/publint/publint/compare/publint@0.3.23...publint@0.3.24 )
##### Patch Changes
- [#​257](https://redirect.github.com/publint/publint/pull/257 )
[`7c4d25a`](https://redirect.github.com/publint/publint/commit/7c4d25a4a03d8a8332221248df8c386d4cd97f30 )
- Check the `repository.url` value even when `repository.type` is
omitted. `type` is optional and defaults to git, so packages using the
object form without it were previously skipped for the
deprecated-protocol, invalid-git-url, and shorthand-URL checks.
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron Clark <cameron.clark@hey.com >
2026-08-23 17:08:27 +00:00
Boshen
1193c9dbaf
chore(oxfmt): dogfood operator position at line start ( #25937 )
...
dogfood
2026-08-20 14:36:47 +00:00
camc314
65cda29177
fix(transform_conformance): record missing expected errors ( #25306 )
...
Fix the transformer conformance runner incorrectly marking a fixture as passed that specified `throws` when Oxc produces no error.
Failed conformance cases now always record a diagnostic. This exposes previously hidden failures in the Babel snapshot, including the nested ambient-module fixtures.
2026-08-12 10:30:24 +00:00
oxc-guard
7ebbdddce7
chore(submodules): update submodule SHAs to latest commits ( #25505 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `b363f29` → `be13516`
- babel: `06b6eae` → `1eac448`
- estree-conformance: `f7a4e0c` → `8d4e1fa`
This PR is automatically generated by the [update_submodules workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
2026-08-11 16:17:31 +00:00
Boshen
030857b509
refactor(diagnostics): update oxc-miette to v4 ( #25395 )
...
Remove the miette `Report` wrapper and update oxc-miette to v4's narrowed diagnostic and source protocol.
AI-assisted by OpenAI Codex.
2026-08-10 07:48:02 +00:00
camc314
4d723caaff
fix(parser): report TS1035 for quoted module names ( #25305 )
...
Quoted module names are only valid in ambient contexts in TypeScript, but we were accepting them in regular TypeScript files.
This reports TS1035 when a quoted module name appears outside a declaration file or ambient declaration. The conformance snapshots now cover both TypeScript cases, and the old invalid codegen fixture has been replaced with a valid internal module declaration.
2026-08-05 10:21:52 +00:00
oxc-guard[bot]
4e7007118d
chore(submodules): update submodule SHAs to latest commits ( #25261 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `d1d583d` → `b363f29`
- babel: `c86e9e4` → `06b6eae`
- TypeScript: `637d574` → `b465fdb`
- estree-conformance: `e8fd120` → `f7a4e0c`
This PR is automatically generated by the [update_submodules
workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
Co-authored-by: oxc-guard[bot] <276638029+oxc-guard[bot]@users.noreply.github.com>
2026-08-03 22:09:18 +01:00
camc314
caeb0a61d1
test(transformer): cover re-export extension rewriting ( #25087 )
...
## Summary
- add transformer conformance coverage for named re-exports from `.mts` modules
- verify `export { x } from "./a.mts"` rewrites to the `.mjs` extension
2026-07-29 15:38:57 +00:00
Boshen
baf022d74d
refactor(ast)!: remove old AstBuilder methods ( #24563 )
...
Closes the migration tracked in #23043 .
The new builder API (methods on the AST types themselves) has been in place for a while, all Oxc crates are migrated, and every crate which uses `AstBuilder` already enables `disable_old_builder` in its tests. The module docs said "after a few weeks, we will remove `AstBuilder`'s own methods entirely" — this does that.
## What's removed
- `crates/oxc_ast/src/generated/ast_builder.rs` and `builder/methods.rs` — `AstBuilder`'s own node and primitive constructors.
- `AstBuilderGenerator`, which produced the former.
- The `disable_old_builder` Cargo feature, plus the dev-dependency hacks it required across 33 manifests. Eight crates depended on `oxc_ast` *purely* to turn the feature on; those deps and their `cargo-shear` ignore entries are gone too.
## One thing worth reviewing
`AstBuilderGenerator` owned the `#[builder(default)]` / `#[builder(skip)]` attr registration that `BuilderMethodsGenerator` only *reads* — its doc comment said as much. Deleting it naively would have silently dropped `skip`/`default` handling for the 12 AST types using those attrs, so `attrs()` and `parse_attr()` move to `BuilderMethodsGenerator`.
The evidence this was faithful: after regenerating, `builder_methods.rs` and every other generated file are **byte-identical**. The only generated change in the diff is the deletion.
## Breaking changes
- `AstBuilder`'s own methods are gone. Use the AST type methods: `Statement::new_expression_statement(span, expr, &builder)` instead of `builder.statement_expression(span, expr)`.
- `AstBuilder` is no longer `Copy`/`Clone`, and its `allocator` field is private — use the `allocator` method from `GetAllocator`.
- `AstBuilder` and `NONE` are no longer re-exported from the crate root; import them from `oxc_ast::builder`. (The `disable_old_builder` feature already gated these off, so nothing in-tree used the root path.)
- The `disable_old_builder` feature no longer exists — remove it from any manifest that sets it.
A migration note covering all of the above is in `crates/oxc_ast/src/builder/mod.rs`.
---
Implemented with AI assistance (Claude Code); design, review, and verification driven by the author per the repo AI-usage policy.
2026-07-21 15:22:46 +00:00
camc314
76ec104498
fix(semantic): resolve import-equals namespaces ( #22696 )
...
Fixes `import =` semantic reference resolution so internal module references are resolved as namespace lookups instead of ordinary value reads.
TypeScript treats the RHS of an internal `import =` specially. In the checker, `getTargetOfImportEqualsDeclaration` delegates internal module references to `getSymbolOfPartOfRightHandSideOfImportEquals`, which resolves bare RHS names and intermediate qualified names with `SymbolFlags.Namespace` rather than value meaning:
- `getTargetOfImportEqualsDeclaration`: https://github.com/microsoft/TypeScript/blob/f350b52331494b68c90ab02e2b6d0828d2a22a74/src/compiler/checker.ts#L3708-L3733
- `getSymbolOfPartOfRightHandSideOfImportEquals`: https://github.com/microsoft/TypeScript/blob/f350b52331494b68c90ab02e2b6d0828d2a22a74/src/compiler/checker.ts#L4480-L4499
- `getSymbolOfNameOrPropertyAccessExpression` also routes names on the RHS of import/export assignments through that same helper: https://github.com/microsoft/TypeScript/blob/f350b52331494b68c90ab02e2b6d0828d2a22a74/src/compiler/checker.ts#L50014-L50019
Before this change, Oxc could count plain values as references from `import =`:
```ts
const x = 1;
import foo = x;
```
Before:
```text
x references: 1
```
After:
```text
x references: 0
```
That matches TypeScript’s behavior because `x` is only a value symbol, not a namespace-capable symbol.
The same applies to qualified names:
```ts
const x = { y: 1 };
import foo = x.y;
```
Before:
```text
x references: 1
```
After:
```text
x references: 0
```
But namespace-capable declarations still resolve:
```ts
namespace x {}
import foo = x;
```
After:
```text
x references: 1
```
and:
```ts
namespace x {
export namespace y {}
}
import foo = x.y;
```
After:
```text
x references: 1
```
This updates the semantic snapshots to reflect the corrected reference/declaration matching.
2026-07-20 13:10:54 +00:00
camc314
6ea3e0620c
chore(deps): update Node.js to 26.5.0 ( #24507 )
...
## Summary
- update .node-version from 24.14.0 to 26.5.0
- verify v26.5.0 as the latest v26 release in the official Node.js distribution index (released 2026-07-08)
2026-07-14 14:05:31 +00:00
oxc-guard[bot]
17cb5c13c5
chore(submodules): update submodule SHAs to latest commits ( #24463 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `de8e621` → `d1d583d`
- babel: `1fb0b77` → `c86e9e4`
- TypeScript: `7964e22` → `637d574`
- estree-conformance: `6514ad7` → `e8fd120`
This PR is automatically generated by the [update_submodules
workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
Co-authored-by: oxc-guard[bot] <276638029+oxc-guard[bot]@users.noreply.github.com>
2026-07-13 14:24:36 +01:00
renovate
bb629d8fd4
chore(deps): update npm packages ( #24418 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Adoption](https://docs.renovatebot.com/merge-confidence/ ) | [Passing](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@arethetypeswrong/core](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io ) ([source](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/tree/HEAD/packages/core )) | [`0.18.4` → `0.18.5`](https://renovatebot.com/diffs/npm/@arethetypeswrong%2fcore/0.18.4/0.18.5 ) |  |  |  |  |
| [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser )) | [`8.62.1` → `8.63.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.62.1/8.63.0 ) |  |  |  |  |
| [@typescript-eslint/scope-manager](https://typescript-eslint.io/packages/scope-manager ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/scope-manager )) | [`8.62.1` → `8.63.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fscope-manager/8.62.1/8.63.0 ) |  |  |  |  |
| [@typescript-eslint/visitor-keys](https://typescript-eslint.io ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/visitor-keys )) | [`8.62.1` → `8.63.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fvisitor-keys/8.62.1/8.63.0 ) |  |  |  |  |
| [@vitest/browser](https://vitest.dev/guide/browser/ ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser )) | [`4.1.9` → `4.1.10`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.1.9/4.1.10 ) |  |  |  |  |
| [@vitest/browser-playwright](https://vitest.dev/config/browser/playwright ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright )) | [`4.1.9` → `4.1.10`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.1.9/4.1.10 ) |  |  |  |  |
| [tsx](https://tsx.hirok.io ) ([source](https://redirect.github.com/privatenumber/tsx )) | [`4.22.5` → `4.23.0`](https://renovatebot.com/diffs/npm/tsx/4.22.5/4.23.0 ) |  |  |  |  |
| [type-fest](https://redirect.github.com/sindresorhus/type-fest ) | [`5.7.0` → `5.8.0`](https://renovatebot.com/diffs/npm/type-fest/5.7.0/5.8.0 ) |  |  |  |  |
| [vitest](https://vitest.dev ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest )) | [`4.1.9` → `4.1.10`](https://renovatebot.com/diffs/npm/vitest/4.1.9/4.1.10 ) |  |  |  |  |
---
### Release Notes
<details>
<summary>arethetypeswrong/arethetypeswrong.github.io (@​arethetypeswrong/core)</summary>
### [`v0.18.5`](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/blob/HEAD/packages/core/CHANGELOG.md#0185 )
##### Patch Changes
- [`c4be7e8`](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/commit/c4be7e8 ): Detect default exports in webpack-bundled CommonJS libraries.
</details>
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary>
### [`v8.63.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8630-2026-07-06 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.62.1...v8.63.0 )
This was a version bump only for parser to align it with other projects, there were no code changes.
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/scope-manager)</summary>
### [`v8.63.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/scope-manager/CHANGELOG.md#8630-2026-07-06 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.62.1...v8.63.0 )
##### 🩹 Fixes
- **scope-manager:** export ClassStaticBlockScope ([#​12460](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12460 ))
##### ❤️ Thank You
- 송재욱
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/visitor-keys)</summary>
### [`v8.63.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/visitor-keys/CHANGELOG.md#8630-2026-07-06 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.62.1...v8.63.0 )
This was a version bump only for visitor-keys to align it with other projects, there were no code changes.
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
### [`v4.1.10`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.10 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10 )
##### 🐞 Bug Fixes
- **browser**: Check fs access in builtin commands \[backport to v4] - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ), **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in [#​10680](https://redirect.github.com/vitest-dev/vitest/issues/10680 ) [<samp>(5c18d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5c18dd267 )
- **vm**: Fix external module resolve error with deps optimizer query for encoded URI \[backport to v4] - by [@​SveLil](https://redirect.github.com/SveLil ) and [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [#​10661](https://redirect.github.com/vitest-dev/vitest/issues/10661 ) [<samp>(bae52)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bae52b511 )
##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10 )
</details>
<details>
<summary>privatenumber/tsx (tsx)</summary>
### [`v4.23.0`](https://redirect.github.com/privatenumber/tsx/releases/tag/v4.23.0 )
[Compare Source](https://redirect.github.com/privatenumber/tsx/compare/v4.22.5...v4.23.0 )
##### Bug Fixes
- avoid redundant filesystem probes during module resolution ([257bbbb](https://redirect.github.com/privatenumber/tsx/commit/257bbbb7eb2784cad6a3bb7a2d9c9747d28d96ec )), closes [privatenumber/tsx#809 ](https://redirect.github.com/privatenumber/tsx/issues/809 )
##### Features
- add multi-scenario startup benchmark suite ([c178197](https://redirect.github.com/privatenumber/tsx/commit/c178197b104d055fd3431f7448982f3156394d12 )), closes [privatenumber/tsx#809 ](https://redirect.github.com/privatenumber/tsx/issues/809 ) [#​809](https://redirect.github.com/privatenumber/tsx/issues/809 ) [hi#signal](https://redirect.github.com/hi/issues/signal ) [privatenumber/tsx#145 ](https://redirect.github.com/privatenumber/tsx/issues/145 ) [#​809](https://redirect.github.com/privatenumber/tsx/issues/809 )
***
This release is also available on:
- [npm package (@​latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.23.0 )
</details>
<details>
<summary>sindresorhus/type-fest (type-fest)</summary>
### [`v5.8.0`](https://redirect.github.com/sindresorhus/type-fest/compare/v5.7.0...v5.8.0 )
[Compare Source](https://redirect.github.com/sindresorhus/type-fest/compare/v5.7.0...v5.8.0 )
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
2026-07-13 00:48:51 +00:00
camc314
af4922be6d
fix(transformer): clear lowered namespace redeclarations ( #24300 )
2026-07-08 13:56:43 +00:00
camc314
6371fed556
fix(transformer): remove stale enum member bindings ( #24272 )
...
## Summary
Remove TypeScript enum-member bindings after transformation.
Enum members are represented as bindings during semantic analysis so the transformer can resolve member values, fold references, and handle merged enums. Once TypeScript transformation finishes, those bindings no longer correspond to emitted JavaScript declarations.
Include `EnumMember` in the existing final TypeScript binding cleanup instead of removing bindings during enum lowering, where later references may still need them.
This fixes `discriminatedUnionTypes4.ts` and removes the same stale binding mismatch from other enum cases.
2026-07-07 18:29:57 +00:00
Dunqing
f05dfabe5c
fix(transformer): correct symbol flags for lowered namespaces ( #24271 )
...
Closes #24224 — the first commit is @camc314's fix from there.
Lowered namespaces kept their `ValueModule`/`NameSpaceModule` symbol flags, so the flags no longer matched the emitted JavaScript:
- Namespaces lowered to a declaration become `let` → `BlockScopedVariable`.
- Namespaces lowered to an assignment only lose their module bits.
This removes over 2,000 stale symbol-flag mismatches from the snapshots.
Unlike #24224 there is no pending state: the type-only check for merged namespaces now reads per-declaration flags from the redeclaration list instead of the symbol's live flags, so each declaration can update the flags right when it is lowered.
2026-07-07 16:48:19 +00:00
Dunqing
84eeb5570b
fix(transformer): correct symbol flags for lowered enums ( #24269 )
...
Closes #24226 — the first commit is @camc314's fix from there.
Lowered enums kept their `RegularEnum`/`ConstEnum` symbol flags, so the flags no longer matched the emitted JavaScript:
- Top-level enums become `var` → `FunctionScopedVariable`.
- Exported and nested enums become `let` → `BlockScopedVariable`.
- Merged enums lowered to an assignment only lose their enum bits.
This removes over 1,000 stale symbol-flag mismatches from the snapshots.
Unlike #24226 there is no pending state: enum member inlining now identifies enums through `EnumData` (#24268 ) instead of `SymbolFlags`, so the flags can be updated right when the enum is lowered.
2026-07-07 16:48:19 +00:00
camc314
c3057dac59
fix(transformer): preserve generated class binding spans ( #24220 )
...
## Summary
- preserve outer and inner class binding spans during legacy decorator lowering
- add a span-aware traversal binding generator for transformed source-backed bindings
- update semantic coverage snapshots, removing stale `Span { start: 0, end: 0 }` mismatches
2026-07-07 06:53:38 +00:00
camc314
8260096253
fix(transformer): correct span for lowered namespace symbol ( #24222 )
...
## Summary
- preserve source spans when TypeScript namespace declarations are lowered to variable bindings
- update semantic coverage snapshots, removing stale `Span { start: 0, end: 0 }` mismatches
2026-07-07 02:27:08 +00:00
camc314
588d9971ac
fix(semantic): mark TS PropertyDefinitions computed fields as type references ( #24233 )
...
## Summary
- resolve computed declare class-field keys through ValueAsType so their final references are Type
- allow declared keys to resolve type-only import bindings while preserving Read for ordinary runtime class fields
- add a red/green semantic snapshot and update conformance snapshots, yielding one additional TypeScript semantic pass and one additional transform-conformance pass
2026-07-06 16:28:50 +00:00
camc314
ce5f40f575
fix(transformer): declare temp for renamed anonymous class ( #24230 )
...
## Summary
- declare the class-properties temp when another transform names an anonymous class
- prevent static-field initialization from referencing an undeclared temp
- add legacy-decorator/class-properties conformance coverage
## Transformation
```mermaid
flowchart LR
A["Anonymous class"] --> B["Class properties reserves _Class"]
B --> C["Decorator names class _default"]
C --> D["Declare var _Class"]
D --> E["_Class = _default"]
E --> F["Initialize static fields"]
```
```ts
export default class {
@dec
static foo = 0;
}
```
```js
var _Class;
export default class _default {}
_Class = _default;
babelHelpers.defineProperty(_Class, "foo", 0);
```
2026-07-06 15:05:12 +00:00
camc314
09bd6389c8
fix(transformer): scope anonymous decorated class bindings correctly ( #24229 )
...
## Summary
Generate bindings for anonymous decorated classes in the class’s enclosing scope.
## Problem
When an anonymous class element has a decorator, the transformer creates a
temporary `_default` binding while traversing the class body.
Previously, the binding was registered in the current class scope even though
the transformed declaration is emitted outside that class.
```text
Semantic data before fix Transformed AST
Program Program
└─ Class scope └─ class/variable _default
└─ binding: _default ↑ emitted here
↑ recorded here
```
This caused the retained semantic data to disagree with semantics rebuilt from
the transformed AST:
```text
after transform: _default → class scope
rebuilt: _default → enclosing scope
```
## Solution
Derive the class’s enclosing scope from its semantic scope and generate the
temporary binding there.
```text
Class scope
│
└── parent scope ── generate `_default` binding here
│
└── matches emitted declaration
```
This corrects binding ownership for anonymous default-export classes with
decorated members.
2026-07-06 14:44:59 +00:00
camc314
4b7fa9ca35
fix(transformer): preserve namespace strict mode flags ( #24227 )
...
## Summary
Preserve strict-mode metadata when lowering TypeScript namespaces into IIFE-style functions.
Previously, namespace transformation always replaced the original scope flags with `Function | StrictMode`, causing semantic mismatches for namespaces that were not strict. The transform now retains strictness only when present on the original namespace or enclosing scope.
Updated semantic and transform-conformance snapshots to remove the resolved scope-flag mismatches.
2026-07-06 14:00:03 +00:00
camc314
d8ead846c8
fix(transformer): correct scoping flags for lowered enums ( #24225 )
...
## Summary
TypeScript enum lowering reuses the enum body’s scope for the generated function expression. Update that scope with `ScopeFlags::Function` so transformed semantic data matches a freshly rebuilt AST.
2026-07-06 13:34:00 +00:00
camc314
98fe16f7b1
refactor(transform): migrate fixture updater to TypeScript ( #24213 )
...
## Summary
- migrate the transform fixture updater from JavaScript to TypeScript using Node native type stripping
- update the just recipe to execute the TypeScript file
2026-07-06 08:56:35 +00:00
camc314
e8b50ee716
fix(transformer): clean up semantics for stripped TypeScript syntax ( #24180 )
...
## Summary
Keep transformer semantic data in sync when TypeScript-only syntax is removed.
This change:
- removes resolved and unresolved references belonging only to stripped TypeScript syntax
- removes bindings for erased type-only and unused imports
- preserves runtime bindings when a type import is merged with a value declaration
- promotes the surviving declaration’s symbol flags, span, and redeclaration metadata
- adds coverage for type imports merged with runtime declarations
- refreshes semantic and transformer conformance snapshots
## Motivation
We are preparing to change the AST shape, including adding and rearranging scopes.
Currently, transformer semantic snapshots contain thousands of lines of mismatches caused by stale bindings and references from TypeScript syntax that has already been removed from the AST. That creates a large amount of unrelated snapshot noise.
With that noise present, snapshot changes caused by the upcoming AST work would be difficult to review: a real scope or semantic regression could easily be hidden among mechanical churn.
This PR fixes the underlying semantic inconsistencies first, giving us a much cleaner baseline for reviewing future AST and scope changes. It is not intended to change emitted JavaScript.
2026-07-06 08:11:46 +00:00
leaysgur
47008d88b6
fix(ci): regenerate transform_conformance snapshots ( #24103 )
...
In #24078 , the snapshot generation was missed, which caused the CI to fail on all subsequent PRs.
Also fixes typo in CI trigger, which should prevent this. 🙈
2026-07-03 06:38:43 +00:00
camc314
c0c69dcf05
fix(transformer): migrate babel loose options ( #24078 )
...
## Summary
Migrates deprecated Babel `loose` plugin options in `tasks/transform_conformance/update_fixtures.mjs` before fixture regeneration runs.
The updater was copying `loose: true` into class-feature plugins and passing Babel 7-style options through to Babel 8. Babel then emitted repeated migration warnings in the conformance job. This converts those options to Babel 8 assumptions instead:
- class feature plugins: `setPublicClassFields` + `privateFieldsAsProperties`
- optional chaining: `noDocumentAll` + `pureGetters`
No warnings are suppressed; unexpected Babel warnings and transform errors still surface normally.
2026-07-03 00:07:52 +00:00
overlookmotel
85a6853e0b
fix(tasks): enable disable_old_builder Cargo feature for oxc_ast crate for all tasks ( #23885 )
...
Part of #23043 .
We don't enable `oxc_ast`'s `disable_old_builder` Cargo feature in any of our published crates, or crates that are depended on by published crates.
Tasks are private to the repo, so enable this feature on them, to ensure no usage of legacy `AstBuilder` methods sneak in during the transition period before we delete these methods.
2026-06-28 12:13:17 +00:00
renovate[bot]
3cdd18f557
chore(deps): update npm packages ( #23690 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@codspeed/vitest-plugin](https://codspeed.io )
([source](https://redirect.github.com/CodSpeedHQ/codspeed-node )) |
[`5.5.0` →
`5.6.0`](https://renovatebot.com/diffs/npm/@codspeed%2fvitest-plugin/5.5.0/5.6.0 )
|

|

|

|

|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ))
| [`8.61.0` →
`8.61.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.61.0/8.61.1 )
|

|

|

|

|
|
[@typescript-eslint/scope-manager](https://typescript-eslint.io/packages/scope-manager )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/scope-manager ))
| [`8.61.0` →
`8.61.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fscope-manager/8.61.0/8.61.1 )
|

|

|

|

|
| [@typescript-eslint/visitor-keys](https://typescript-eslint.io )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/visitor-keys ))
| [`8.61.0` →
`8.61.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fvisitor-keys/8.61.0/8.61.1 )
|

|

|

|

|
| [@vitest/browser](https://vitest.dev/guide/browser/ )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser ))
| [`4.1.8` →
`4.1.9`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.1.8/4.1.9 )
|

|

|

|

|
|
[@vitest/browser-playwright](https://vitest.dev/config/browser/playwright )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright ))
| [`4.1.8` →
`4.1.9`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.1.8/4.1.9 )
|

|

|

|

|
| [eslint](https://eslint.org )
([source](https://redirect.github.com/eslint/eslint )) | [`10.4.1` →
`10.5.0`](https://renovatebot.com/diffs/npm/eslint/10.4.1/10.5.0 ) |

|

|

|

|
| [playwright](https://playwright.dev )
([source](https://redirect.github.com/microsoft/playwright )) | [`1.60.0`
→ `1.61.0`](https://renovatebot.com/diffs/npm/playwright/1.60.0/1.61.0 )
|

|

|

|

|
|
[serialize-javascript](https://redirect.github.com/yahoo/serialize-javascript )
| [`7.0.5` →
`7.0.6`](https://renovatebot.com/diffs/npm/serialize-javascript/7.0.5/7.0.6 )
|

|

|

|

|
| [vitest](https://vitest.dev )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ))
| [`4.1.8` →
`4.1.9`](https://renovatebot.com/diffs/npm/vitest/4.1.8/4.1.9 ) |

|

|

|

|
---
### Release Notes
<details>
<summary>CodSpeedHQ/codspeed-node
(@​codspeed/vitest-plugin)</summary>
###
[`v5.6.0`](https://redirect.github.com/CodSpeedHQ/codspeed-node/releases/tag/v5.6.0 )
[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-node/compare/v5.5.0...v5.6.0 )
#### What's Changed
- feat: add MacOS support by
[@​not-matthias](https://redirect.github.com/not-matthias ) in
[#​81](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/81 )
**Full Changelog**:
<https://github.com/CodSpeedHQ/codspeed-node/compare/v5.5.0...v5.6.0 >
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/parser)</summary>
###
[`v8.61.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8611-2026-06-15 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.61.0...v8.61.1 )
This was a version bump only for parser to align it with other projects,
there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/scope-manager)</summary>
###
[`v8.61.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/scope-manager/CHANGELOG.md#8611-2026-06-15 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.61.0...v8.61.1 )
This was a version bump only for scope-manager to align it with other
projects, there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/visitor-keys)</summary>
###
[`v8.61.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/visitor-keys/CHANGELOG.md#8611-2026-06-15 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.61.0...v8.61.1 )
This was a version bump only for visitor-keys to align it with other
projects, there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
###
[`v4.1.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.9 )
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9 )
##### 🐞 Bug Fixes
- Fix `importOriginal` with optimizer and query import \[backport to v4]
- by **Hiroshi Ogawa**, **David Harris**, **Codex**and **Vladimir** in
[#​10546](https://redirect.github.com/vitest-dev/vitest/issues/10546 )
[<samp>(a5180)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a5180190c )
- **browser**:
- Wait for orchestrator readiness before resolving browser sessions
\[backport to v4] - by **Vladimir** and **Séamus O'Connor** in
[#​10555](https://redirect.github.com/vitest-dev/vitest/issues/10555 )
[<samp>(7fb29)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7fb29651a )
- Wait for iframe tester readiness before preparing \[backport to v4] -
by **Vladimir** and **Séamus O'Connor** in
[#​10497](https://redirect.github.com/vitest-dev/vitest/issues/10497 )
and
[#​10556](https://redirect.github.com/vitest-dev/vitest/issues/10556 )
[<samp>(fbc62)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fbc626c40 )
- **mocker**:
- Hoist vi.mock() for vite-plus/test imports \[backport to v4] - by
**Hiroshi Ogawa**, **LongYinan**, **Claude Opus 4.8** and **Vladimir**
in
[#​10548](https://redirect.github.com/vitest-dev/vitest/issues/10548 )
[<samp>(2c955)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2c9559c02 )
- **pool**:
- Prevent test run hang on worker crash \[backport to v4] - by **Ari
Perkkiö** and **Jattioui Ismail** in
[#​10543](https://redirect.github.com/vitest-dev/vitest/issues/10543 )
and
[#​10564](https://redirect.github.com/vitest-dev/vitest/issues/10564 )
[<samp>(934b0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/934b0f587 )
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9 )
</details>
<details>
<summary>eslint/eslint (eslint)</summary>
###
[`v10.5.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.5.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.4.1...v10.5.0 )
#### Features
-
[`5ca8c52`](https://redirect.github.com/eslint/eslint/commit/5ca8c5278edea1fd84d3ba83d8ea3f52fb3831ad )
feat: correct stack tracking in max-nested-callbacks
([#​20973](https://redirect.github.com/eslint/eslint/issues/20973 ))
(Pixel998)
-
[`b565783`](https://redirect.github.com/eslint/eslint/commit/b5657837604fa5e8cf1278074782025cadd34b6c )
feat: report no-with violations at the with keyword
([#​20971](https://redirect.github.com/eslint/eslint/issues/20971 ))
(Pixel998)
-
[`2ce032f`](https://redirect.github.com/eslint/eslint/commit/2ce032fbc72a1a80c024c084a4f382fb6dece684 )
feat: report max-lines-per-function violations at function head
([#​20966](https://redirect.github.com/eslint/eslint/issues/20966 ))
(Pixel998)
-
[`732cb3e`](https://redirect.github.com/eslint/eslint/commit/732cb3e09d5b8b809b5f461d118a5d9fdcd6427f )
feat: report max-nested-callbacks violations at function head
([#​20967](https://redirect.github.com/eslint/eslint/issues/20967 ))
(Pixel998)
-
[`f9c138a`](https://redirect.github.com/eslint/eslint/commit/f9c138a0ba7d8e37aed39aef4a3ff1cae8c669f7 )
feat: report max-depth violations on keywords
([#​20943](https://redirect.github.com/eslint/eslint/issues/20943 ))
(Pixel998)
-
[`bdb496c`](https://redirect.github.com/eslint/eslint/commit/bdb496cc0d54b6d0a023aef9abd5f040ccff2101 )
feat: correct max-depth handling for else-if chains
([#​20944](https://redirect.github.com/eslint/eslint/issues/20944 ))
(Pixel998)
-
[`c296873`](https://redirect.github.com/eslint/eslint/commit/c29687354a7f96093f57f7d73eecb866ad5e2953 )
feat: update error loc in `max-statements` to function header
([#​20907](https://redirect.github.com/eslint/eslint/issues/20907 ))
(Taejin Kim)
#### Documentation
-
[`8ae1b5b`](https://redirect.github.com/eslint/eslint/commit/8ae1b5b856dc031cd6c701d89a4df7da4772cd56 )
docs: Update README (GitHub Actions Bot)
-
[`ca7eb90`](https://redirect.github.com/eslint/eslint/commit/ca7eb90127dcad917188bb1342623f02a272e781 )
docs: update Node.js prerequisites to include ICU support
([#​20962](https://redirect.github.com/eslint/eslint/issues/20962 ))
(Francesco Trotta)
-
[`f99b47a`](https://redirect.github.com/eslint/eslint/commit/f99b47a6799be25321552402a49303bb06a43fe4 )
docs: Update README (GitHub Actions Bot)
-
[`acf03d4`](https://redirect.github.com/eslint/eslint/commit/acf03d4eed31d259c7dc62af5b9640629784f7cc )
docs: clarify precedence of parserOptions over languageOptions
([#​20926](https://redirect.github.com/eslint/eslint/issues/20926 ))
(sethamus)
#### Chores
-
[`b18bf58`](https://redirect.github.com/eslint/eslint/commit/b18bf58c5ac748415ffffdff2d96980fbd6a57e8 )
chore: update ecosystem plugins
([#​20959](https://redirect.github.com/eslint/eslint/issues/20959 ))
(ESLint Bot)
-
[`c2d1444`](https://redirect.github.com/eslint/eslint/commit/c2d1444df77cb42e5a0b89ab70496879d180a54d )
refactor: replace areAllSegmentsUnreachable with !isAnySegmentReachable
([#​20951](https://redirect.github.com/eslint/eslint/issues/20951 ))
(Taejin Kim)
-
[`243b8c5`](https://redirect.github.com/eslint/eslint/commit/243b8c56014bbbe63771185b0731d8dd4d1316e9 )
chore: enhance config-rule to support oneOf, anyOf, and nested schemas
([#​20788](https://redirect.github.com/eslint/eslint/issues/20788 ))
(kuldeep kumar)
-
[`217b2a9`](https://redirect.github.com/eslint/eslint/commit/217b2a91f46137c5ffd693965e71306c4c15ea6b )
test: add unit tests for ParserService
([#​20949](https://redirect.github.com/eslint/eslint/issues/20949 ))
(Taejin Kim)
-
[`72003e7`](https://redirect.github.com/eslint/eslint/commit/72003e781d76bd4ee0d98a6601730d0b829070f9 )
test: add location information to error messages in `max-statements`
([#​20945](https://redirect.github.com/eslint/eslint/issues/20945 ))
(lumir)
-
[`7797c26`](https://redirect.github.com/eslint/eslint/commit/7797c266977b0bc4971aa79721813d480de72cd1 )
refactor: deduplicate isAnySegmentReachable across rules
([#​20890](https://redirect.github.com/eslint/eslint/issues/20890 ))
(Taejin Kim)
-
[`67c46fa`](https://redirect.github.com/eslint/eslint/commit/67c46fa6e4f34e88cc6bc82f8a0dcc917c65d257 )
chore: update ecosystem plugins
([#​20938](https://redirect.github.com/eslint/eslint/issues/20938 ))
(ESLint Bot)
-
[`95d8c7a`](https://redirect.github.com/eslint/eslint/commit/95d8c7a99f991abd8ab618d0ee2cbd4f58effc29 )
chore: update dependency
[@​eslint/json](https://redirect.github.com/eslint/json ) to v2
([#​20934](https://redirect.github.com/eslint/eslint/issues/20934 ))
(renovate\[bot])
-
[`cf9e496`](https://redirect.github.com/eslint/eslint/commit/cf9e496205142cd4971b9f98aed85866d1010b9c )
chore: update
[@​arethetypeswrong/cli](https://redirect.github.com/arethetypeswrong/cli )
to 0.18.3
([#​20933](https://redirect.github.com/eslint/eslint/issues/20933 ))
(Pixel998)
-
[`fb6d396`](https://redirect.github.com/eslint/eslint/commit/fb6d3960cacc51fc12383fa5ded2382adbf90c1c )
test: run type tests with TypeScript 7
([#​20868](https://redirect.github.com/eslint/eslint/issues/20868 ))
(sethamus)
</details>
<details>
<summary>microsoft/playwright (playwright)</summary>
###
[`v1.61.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.61.0 )
[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.60.0...v1.61.0 )
##### 🔑 WebAuthn passkeys
New [Credentials](https://playwright.dev/docs/api/class-credentials )
virtual authenticator, available via
[browserContext.credentials](https://playwright.dev/docs/api/class-browsercontext#browser-context-credentials ),
lets tests register passkeys and answer `navigator.credentials.create()`
/ `navigator.credentials.get()` ceremonies in the page — no real
hardware key required, works in all browsers:
```js
const context = await browser.newContext();
// Seed a passkey your backend provisioned for a test user.
await context.credentials.create('example.com', {
id: credentialId,
userHandle,
privateKey,
publicKey,
});
await context.credentials.install();
const page = await context.newPage();
await page.goto('https://example.com/login ');
// The page's navigator.credentials.get() is answered with the seeded passkey.
```
You can also let the app register a passkey once in a setup test, read
it back with
[credentials.get()](https://playwright.dev/docs/api/class-credentials#credentials-get ),
and seed it into later tests — see
[Credentials](https://playwright.dev/docs/api/class-credentials ) for
details.
##### 🗃️ Web Storage
New [WebStorage](https://playwright.dev/docs/api/class-webstorage ) API,
available via
[page.localStorage](https://playwright.dev/docs/api/class-page#page-local-storage )
and
[page.sessionStorage](https://playwright.dev/docs/api/class-page#page-session-storage ),
reads and writes the page's storage for the current origin:
```js
await page.localStorage.setItem('token', 'abc');
const token = await page.localStorage.getItem('token');
const items = await page.sessionStorage.items();
```
##### New APIs
##### Network
-
[apiResponse.securityDetails()](https://playwright.dev/docs/api/class-apiresponse#api-response-security-details )
and
[apiResponse.serverAddr()](https://playwright.dev/docs/api/class-apiresponse#api-response-server-addr )
mirror the browser-side
[response.securityDetails()](https://playwright.dev/docs/api/class-response#response-security-details )
and
[response.serverAddr()](https://playwright.dev/docs/api/class-response#response-server-addr ).
##### Browser and Screencast
- New option `artifactsDir` in
[browserType.connectOverCDP()](https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp )
controls where artifacts such as traces and downloads are stored when
attached to an existing browser.
- New option `cursor` in
[screencast.showActions()](https://playwright.dev/docs/api/class-screencast#screencast-show-actions )
controls the cursor decoration rendered for pointer actions.
- The `onFrame` callback in
[screencast.start()](https://playwright.dev/docs/api/class-screencast#screencast-start )
now receives a `timestamp` of when the frame was presented by the
browser.
##### Test runner
- The
[testOptions.video](https://playwright.dev/docs/api/class-testoptions#test-options-video )
option now supports the same set of modes as `trace`: new
`'on-all-retries'`, `'retain-on-first-failure'` and
`'retain-on-failure-and-retries'` values. See the [video modes
table](https://playwright.dev/docs/test-use-options#video-modes ) for
which runs are recorded and kept in each mode.
- Supported `expect.soft.poll(...)`.
- New
[fullConfig.argv](https://playwright.dev/docs/api/class-fullconfig#full-config-argv )
— a snapshot of `process.argv` from the runner process, handy for
reading custom arguments passed after the `--` separator.
- New
[fullConfig.failOnFlakyTests](https://playwright.dev/docs/api/class-fullconfig#full-config-fail-on-flaky-tests )
mirrors the config option, so reporters can explain why a flaky run
failed.
-
[testInfo.errors](https://playwright.dev/docs/api/class-testinfo#test-info-errors )
now lists each sub-error of an `AggregateError` as a separate entry.
- New `-G` command line shorthand for `--grep-invert`.
##### 🛠️ Other improvements
- Playwright now supports Ubuntu 26.04.
- HAR and trace recordings now include WebSocket requests.
##### Browser Versions
- Chromium 149.0.7827.55
- Mozilla Firefox 151.0
- WebKit 26.5
This version was also tested against the following stable channels:
- Google Chrome 149
- Microsoft Edge 149
</details>
<details>
<summary>yahoo/serialize-javascript (serialize-javascript)</summary>
###
[`v7.0.6`](https://redirect.github.com/yahoo/serialize-javascript/releases/tag/v7.0.6 )
[Compare
Source](https://redirect.github.com/yahoo/serialize-javascript/compare/v7.0.5...v7.0.6 )
##### What's Changed
- build(deps-dev): bump lodash from 4.17.23 to 4.18.1 by
[@​dependabot](https://redirect.github.com/dependabot )\[bot] in
[#​215](https://redirect.github.com/yahoo/serialize-javascript/pull/215 )
- fix: reject spoofed URL objects with non-string toString() result by
[@​redonkulus](https://redirect.github.com/redonkulus ) in
[#​217](https://redirect.github.com/yahoo/serialize-javascript/pull/217 )
- release: v7.0.6 by
[@​okuryu](https://redirect.github.com/okuryu ) in
[#​221](https://redirect.github.com/yahoo/serialize-javascript/pull/221 )
**Full Changelog**:
<https://github.com/yahoo/serialize-javascript/compare/v7.0.5...v7.0.6 >
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron Clark <cameron.clark@hey.com >
2026-06-23 12:36:01 +01:00
renovate[bot]
1449f183bd
chore(deps): update npm packages (major) ( #23692 )
...
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@babel/code-frame](https://babel.dev/docs/en/next/babel-code-frame )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-code-frame ))
| [`^7.28.6` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fcode-frame/7.29.7/8.0.0 )
|

|

|

|

|
| [@babel/core](https://babel.dev/docs/en/next/babel-core )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-core ))
| [`^7.26.0` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-external-helpers](https://babel.dev/docs/en/next/babel-plugin-external-helpers )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-external-helpers ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-external-helpers/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-proposal-decorators](https://babel.dev/docs/en/next/babel-plugin-proposal-decorators )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-proposal-decorators/7.29.7/8.0.2 )
|

|

|

|

|
|
[@babel/plugin-transform-arrow-functions](https://babel.dev/docs/en/next/babel-plugin-transform-arrow-functions )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-arrow-functions ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-arrow-functions/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-async-to-generator](https://babel.dev/docs/en/next/babel-plugin-transform-async-to-generator )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-async-to-generator ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-async-to-generator/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-class-properties](https://babel.dev/docs/en/next/babel-plugin-transform-class-properties )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-properties ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-class-properties/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-class-static-block](https://babel.dev/docs/en/next/babel-plugin-transform-class-static-block )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block ))
| [`^7.26.0` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-class-static-block/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-explicit-resource-management](https://babel.dev/docs/en/next/babel-plugin-transform-explicit-resource-management )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-explicit-resource-management ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-explicit-resource-management/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-exponentiation-operator](https://babel.dev/docs/en/next/babel-plugin-transform-exponentiation-operator )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-exponentiation-operator ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-exponentiation-operator/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-logical-assignment-operators](https://babel.dev/docs/en/next/babel-plugin-transform-logical-assignment-operators )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-logical-assignment-operators ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-logical-assignment-operators/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-optional-chaining](https://babel.dev/docs/en/next/babel-plugin-transform-optional-chaining )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-optional-chaining ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-optional-chaining/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-private-methods](https://babel.dev/docs/en/next/babel-plugin-transform-private-methods )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-private-methods ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-private-methods/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-private-property-in-object](https://babel.dev/docs/en/next/babel-plugin-transform-private-property-in-object )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-private-property-in-object ))
| [`^7.25.9` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-private-property-in-object/7.29.7/8.0.1 )
|

|

|

|

|
|
[@babel/plugin-transform-typescript](https://babel.dev/docs/en/next/babel-plugin-transform-typescript )
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-typescript ))
| [`^7.26.3` →
`^8.0.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-typescript/7.29.7/8.0.1 )
|

|

|

|

|
| [eslint](https://eslint.org )
([source](https://redirect.github.com/eslint/eslint )) | [`^9.13.0` →
`^10.0.0`](https://renovatebot.com/diffs/npm/eslint/9.39.4/10.5.0 ) |

|

|

|

|
---
### Release Notes
<details>
<summary>babel/babel (@​babel/code-frame)</summary>
###
[`v8.0.0`](https://redirect.github.com/babel/babel/blob/HEAD/CHANGELOG.md#v800-2026-06-16 )
[Compare
Source](https://redirect.github.com/babel/babel/compare/v7.29.7...v8.0.0 )
##### 👓 Spec Compliance
- `babel-core`
- [#​18039](https://redirect.github.com/babel/babel/pull/18039 )
perf: Only extract source map comments at the end of the file
([@​liuxingbaoyu](https://redirect.github.com/liuxingbaoyu ))
##### 💥 Breaking Change
- `babel-cli`, `babel-node`, `babel-plugin-proposal-decorators`,
`babel-plugin-transform-classes`,
`babel-plugin-transform-function-name`,
`babel-plugin-transform-modules-commonjs`,
`babel-plugin-transform-object-rest-spread`,
`babel-plugin-transform-parameters`,
`babel-plugin-transform-react-constant-elements`,
`babel-plugin-transform-regenerator`, `babel-preset-env`,
`babel-register`
- [#​18069](https://redirect.github.com/babel/babel/pull/18069 )
Fallback to assuming ESM support with `modules: auto`
([@​nicolo-ribaudo](https://redirect.github.com/nicolo-ribaudo ))
- `babel-plugin-transform-runtime`, `babel-runtime-corejs3`,
`babel-runtime`
- [#​18036](https://redirect.github.com/babel/babel/pull/18036 )
Remove corejs exports for `@babe/runtime-corejs3`
([@​liuxingbaoyu](https://redirect.github.com/liuxingbaoyu ))
- `babel-parser`
- [#​18034](https://redirect.github.com/babel/babel/pull/18034 )
Remove `locations: "packed"`
([@​liuxingbaoyu](https://redirect.github.com/liuxingbaoyu ))
##### 🐛 Bug Fix
- `babel-generator`
- [#​18046](https://redirect.github.com/babel/babel/pull/18046 )
fix(generator): improve new callee parens check
([@​JLHwung](https://redirect.github.com/JLHwung ))
- `babel-plugin-transform-modules-systemjs`
- [#​18032](https://redirect.github.com/babel/babel/pull/18032 )
fix(systemjs): support **proto** as an export name
([@​JLHwung](https://redirect.github.com/JLHwung ))
##### 📝 Documentation
- [#​18070](https://redirect.github.com/babel/babel/pull/18070 )
Add EOL date for Babel 7 (end of June 2027) to SECURITY.md
([@​nicolo-ribaudo](https://redirect.github.com/nicolo-ribaudo ))
##### 🏠 Internal
- [#​18018](https://redirect.github.com/babel/babel/pull/18018 )
ci: enforce yarn integrity
([@​JLHwung](https://redirect.github.com/JLHwung ))
##### :running\_woman: Performance
- `babel-core`
- [#​18039](https://redirect.github.com/babel/babel/pull/18039 )
perf: Only extract source map comments at the end of the file
([@​liuxingbaoyu](https://redirect.github.com/liuxingbaoyu ))
</details>
<details>
<summary>eslint/eslint (eslint)</summary>
###
[`v10.5.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.5.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.4.1...v10.5.0 )
#### Features
-
[`5ca8c52`](https://redirect.github.com/eslint/eslint/commit/5ca8c5278edea1fd84d3ba83d8ea3f52fb3831ad )
feat: correct stack tracking in max-nested-callbacks
([#​20973](https://redirect.github.com/eslint/eslint/issues/20973 ))
(Pixel998)
-
[`b565783`](https://redirect.github.com/eslint/eslint/commit/b5657837604fa5e8cf1278074782025cadd34b6c )
feat: report no-with violations at the with keyword
([#​20971](https://redirect.github.com/eslint/eslint/issues/20971 ))
(Pixel998)
-
[`2ce032f`](https://redirect.github.com/eslint/eslint/commit/2ce032fbc72a1a80c024c084a4f382fb6dece684 )
feat: report max-lines-per-function violations at function head
([#​20966](https://redirect.github.com/eslint/eslint/issues/20966 ))
(Pixel998)
-
[`732cb3e`](https://redirect.github.com/eslint/eslint/commit/732cb3e09d5b8b809b5f461d118a5d9fdcd6427f )
feat: report max-nested-callbacks violations at function head
([#​20967](https://redirect.github.com/eslint/eslint/issues/20967 ))
(Pixel998)
-
[`f9c138a`](https://redirect.github.com/eslint/eslint/commit/f9c138a0ba7d8e37aed39aef4a3ff1cae8c669f7 )
feat: report max-depth violations on keywords
([#​20943](https://redirect.github.com/eslint/eslint/issues/20943 ))
(Pixel998)
-
[`bdb496c`](https://redirect.github.com/eslint/eslint/commit/bdb496cc0d54b6d0a023aef9abd5f040ccff2101 )
feat: correct max-depth handling for else-if chains
([#​20944](https://redirect.github.com/eslint/eslint/issues/20944 ))
(Pixel998)
-
[`c296873`](https://redirect.github.com/eslint/eslint/commit/c29687354a7f96093f57f7d73eecb866ad5e2953 )
feat: update error loc in `max-statements` to function header
([#​20907](https://redirect.github.com/eslint/eslint/issues/20907 ))
(Taejin Kim)
#### Documentation
-
[`8ae1b5b`](https://redirect.github.com/eslint/eslint/commit/8ae1b5b856dc031cd6c701d89a4df7da4772cd56 )
docs: Update README (GitHub Actions Bot)
-
[`ca7eb90`](https://redirect.github.com/eslint/eslint/commit/ca7eb90127dcad917188bb1342623f02a272e781 )
docs: update Node.js prerequisites to include ICU support
([#​20962](https://redirect.github.com/eslint/eslint/issues/20962 ))
(Francesco Trotta)
-
[`f99b47a`](https://redirect.github.com/eslint/eslint/commit/f99b47a6799be25321552402a49303bb06a43fe4 )
docs: Update README (GitHub Actions Bot)
-
[`acf03d4`](https://redirect.github.com/eslint/eslint/commit/acf03d4eed31d259c7dc62af5b9640629784f7cc )
docs: clarify precedence of parserOptions over languageOptions
([#​20926](https://redirect.github.com/eslint/eslint/issues/20926 ))
(sethamus)
#### Chores
-
[`b18bf58`](https://redirect.github.com/eslint/eslint/commit/b18bf58c5ac748415ffffdff2d96980fbd6a57e8 )
chore: update ecosystem plugins
([#​20959](https://redirect.github.com/eslint/eslint/issues/20959 ))
(ESLint Bot)
-
[`c2d1444`](https://redirect.github.com/eslint/eslint/commit/c2d1444df77cb42e5a0b89ab70496879d180a54d )
refactor: replace areAllSegmentsUnreachable with !isAnySegmentReachable
([#​20951](https://redirect.github.com/eslint/eslint/issues/20951 ))
(Taejin Kim)
-
[`243b8c5`](https://redirect.github.com/eslint/eslint/commit/243b8c56014bbbe63771185b0731d8dd4d1316e9 )
chore: enhance config-rule to support oneOf, anyOf, and nested schemas
([#​20788](https://redirect.github.com/eslint/eslint/issues/20788 ))
(kuldeep kumar)
-
[`217b2a9`](https://redirect.github.com/eslint/eslint/commit/217b2a91f46137c5ffd693965e71306c4c15ea6b )
test: add unit tests for ParserService
([#​20949](https://redirect.github.com/eslint/eslint/issues/20949 ))
(Taejin Kim)
-
[`72003e7`](https://redirect.github.com/eslint/eslint/commit/72003e781d76bd4ee0d98a6601730d0b829070f9 )
test: add location information to error messages in `max-statements`
([#​20945](https://redirect.github.com/eslint/eslint/issues/20945 ))
(lumir)
-
[`7797c26`](https://redirect.github.com/eslint/eslint/commit/7797c266977b0bc4971aa79721813d480de72cd1 )
refactor: deduplicate isAnySegmentReachable across rules
([#​20890](https://redirect.github.com/eslint/eslint/issues/20890 ))
(Taejin Kim)
-
[`67c46fa`](https://redirect.github.com/eslint/eslint/commit/67c46fa6e4f34e88cc6bc82f8a0dcc917c65d257 )
chore: update ecosystem plugins
([#​20938](https://redirect.github.com/eslint/eslint/issues/20938 ))
(ESLint Bot)
-
[`95d8c7a`](https://redirect.github.com/eslint/eslint/commit/95d8c7a99f991abd8ab618d0ee2cbd4f58effc29 )
chore: update dependency
[@​eslint/json](https://redirect.github.com/eslint/json ) to v2
([#​20934](https://redirect.github.com/eslint/eslint/issues/20934 ))
(renovate\[bot])
-
[`cf9e496`](https://redirect.github.com/eslint/eslint/commit/cf9e496205142cd4971b9f98aed85866d1010b9c )
chore: update
[@​arethetypeswrong/cli](https://redirect.github.com/arethetypeswrong/cli )
to 0.18.3
([#​20933](https://redirect.github.com/eslint/eslint/issues/20933 ))
(Pixel998)
-
[`fb6d396`](https://redirect.github.com/eslint/eslint/commit/fb6d3960cacc51fc12383fa5ded2382adbf90c1c )
test: run type tests with TypeScript 7
([#​20868](https://redirect.github.com/eslint/eslint/issues/20868 ))
(sethamus)
###
[`v10.4.1`](https://redirect.github.com/eslint/eslint/releases/tag/v10.4.1 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.4.0...v10.4.1 )
#### Bug Fixes
-
[`e557467`](https://redirect.github.com/eslint/eslint/commit/e557467db7496220eebcbe2ac5ea6d38c12bb1ec )
fix: update `@eslint/plugin-kit` version to 0.7.2
([#​20930](https://redirect.github.com/eslint/eslint/issues/20930 ))
(Francesco Trotta)
-
[`d4ce898`](https://redirect.github.com/eslint/eslint/commit/d4ce898796ca22c3b96aa70d3014cb85f4bac1cd )
fix: propagate failures from delegated commands
([#​20917](https://redirect.github.com/eslint/eslint/issues/20917 ))
(Minh Vu)
-
[`f4f3507`](https://redirect.github.com/eslint/eslint/commit/f4f3507460bc016b5be979c05d2969793f570cbf )
fix: prefer-arrow-callback invalid autofix with newline after `async`
([#​20916](https://redirect.github.com/eslint/eslint/issues/20916 ))
(kuldeep kumar)
-
[`c5bc78b`](https://redirect.github.com/eslint/eslint/commit/c5bc78b37e08b9054a11f0cc2d81808bb24acb85 )
fix: false positive for reference in `finally` block
([#​20655](https://redirect.github.com/eslint/eslint/issues/20655 ))
(Tanuj Kanti)
-
[`27538c0`](https://redirect.github.com/eslint/eslint/commit/27538c01f5df4e9306f6f4ba867b2dd6307fae59 )
fix: add missing CodePath and CodePathSegment types
([#​20853](https://redirect.github.com/eslint/eslint/issues/20853 ))
(Pixel998)
#### Documentation
-
[`61b0add`](https://redirect.github.com/eslint/eslint/commit/61b0add61ffc52665562be7bb96f526690a78b30 )
docs: remove deprecated rule from related rules of `max-params`
([#​20921](https://redirect.github.com/eslint/eslint/issues/20921 ))
(Tanuj Kanti)
-
[`305d5b9`](https://redirect.github.com/eslint/eslint/commit/305d5b91aeac24d36fde42f75625a8f183d4ce43 )
docs: remove deprecated rules from related rules section
([#​20911](https://redirect.github.com/eslint/eslint/issues/20911 ))
(Tanuj Kanti)
-
[`49b0202`](https://redirect.github.com/eslint/eslint/commit/49b0202d01918b8061720d586dffd7c68047090c )
docs: fix `display: none` of ad
([#​20901](https://redirect.github.com/eslint/eslint/issues/20901 ))
(Tanuj Kanti)
-
[`9067f94`](https://redirect.github.com/eslint/eslint/commit/9067f9492ec998afc5b4f057a477ecf6ebd45e44 )
docs: switch build to Node.js 24
([#​20893](https://redirect.github.com/eslint/eslint/issues/20893 ))
(Milos Djermanovic)
-
[`c91b041`](https://redirect.github.com/eslint/eslint/commit/c91b0417e3420c76807ce1fa2aea76e2de87ab86 )
docs: Update README (GitHub Actions Bot)
-
[`e349265`](https://redirect.github.com/eslint/eslint/commit/e349265cb37f3ebc837e178e48a725bb782bd870 )
docs: clarify semver strings in rule deprecation objects
([#​20885](https://redirect.github.com/eslint/eslint/issues/20885 ))
(Milos Djermanovic)
#### Chores
-
[`b0e466b`](https://redirect.github.com/eslint/eslint/commit/b0e466b6ab47bfc7de43d8de0c315d8ee83aa584 )
test: add `data` property to invalid tests cases for rules
([#​20924](https://redirect.github.com/eslint/eslint/issues/20924 ))
(Tanuj Kanti)
-
[`f78838b`](https://redirect.github.com/eslint/eslint/commit/f78838bc4c86d487e1bcc7cede260c4467721c46 )
test: add CodePath type coverage
([#​20904](https://redirect.github.com/eslint/eslint/issues/20904 ))
(Pixel998)
-
[`1daa4bd`](https://redirect.github.com/eslint/eslint/commit/1daa4bd734b79a62e317d0394394a6b38cff49f9 )
chore: update `eslint-plugin-eslint-comments` test data to latest commit
([#​20922](https://redirect.github.com/eslint/eslint/issues/20922 ))
(Francesco Trotta)
-
[`002942c`](https://redirect.github.com/eslint/eslint/commit/002942ce988ea28b78e0a2f3b074081e638b552c )
ci: declare contents:read on update-readme workflow
([#​20919](https://redirect.github.com/eslint/eslint/issues/20919 ))
(Arpit Jain)
-
[`64bca24`](https://redirect.github.com/eslint/eslint/commit/64bca24e7bed35bc3c864fc625cb2d89eca87d5b )
chore: update ecosystem plugins
([#​20912](https://redirect.github.com/eslint/eslint/issues/20912 ))
(ESLint Bot)
-
[`6d7c832`](https://redirect.github.com/eslint/eslint/commit/6d7c832950d5e92499d88e504080661f888f8f56 )
chore: ignore fflate updates in renovate
([#​20908](https://redirect.github.com/eslint/eslint/issues/20908 ))
(Pixel998)
-
[`b2c8638`](https://redirect.github.com/eslint/eslint/commit/b2c86382164d87c6203b78d52068cd6a2a6ffe30 )
ci: bump pnpm/action-setup from 6.0.7 to 6.0.8
([#​20889](https://redirect.github.com/eslint/eslint/issues/20889 ))
(dependabot\[bot])
-
[`a9b8d7f`](https://redirect.github.com/eslint/eslint/commit/a9b8d7f74c50211701cfc49710fa541fd91b2aa5 )
chore: increase maxBuffer for ecosystem tests
([#​20881](https://redirect.github.com/eslint/eslint/issues/20881 ))
(sethamus)
-
[`b702ead`](https://redirect.github.com/eslint/eslint/commit/b702ead5e1ed7cb9f28238a454797662efb37396 )
chore: update ecosystem update PR settings
([#​20884](https://redirect.github.com/eslint/eslint/issues/20884 ))
(Pixel998)
-
[`507f60e`](https://redirect.github.com/eslint/eslint/commit/507f60e9a78c9a902bc8759f066ae17a1ea6cd81 )
chore: update ecosystem plugins
([#​20882](https://redirect.github.com/eslint/eslint/issues/20882 ))
(ESLint Bot)
-
[`92f5c5b`](https://redirect.github.com/eslint/eslint/commit/92f5c5bb6bf3a5d167c8ee53a430833410295c6d )
test: add unit test for message-count
([#​20878](https://redirect.github.com/eslint/eslint/issues/20878 ))
(kuldeep kumar)
-
[`df32108`](https://redirect.github.com/eslint/eslint/commit/df321080af5758b1fa25e4b9a40e26135642dd6e )
chore: add
[@​eslint/markdown](https://redirect.github.com/eslint/markdown )
and typescript-eslint ecosystem tests
([#​20837](https://redirect.github.com/eslint/eslint/issues/20837 ))
(sethamus)
-
[`327f91d`](https://redirect.github.com/eslint/eslint/commit/327f91d36aa49f2a50ded931d841a16374fd875f )
chore: use includeIgnoreFile internally
([#​20876](https://redirect.github.com/eslint/eslint/issues/20876 ))
(Kirk Waiblinger)
-
[`f0dc4bd`](https://redirect.github.com/eslint/eslint/commit/f0dc4bd893fb3a9f44e4ddc3ad7063ffb0beacd3 )
chore: pin fflate\@​0.8.2
([#​20877](https://redirect.github.com/eslint/eslint/issues/20877 ))
(Milos Djermanovic)
-
[`0f4bd25`](https://redirect.github.com/eslint/eslint/commit/0f4bd257a67a082b756de746d9e0c4842ab764ca )
ci: run Discord alert for ecosystem test failures
([#​20873](https://redirect.github.com/eslint/eslint/issues/20873 ))
(Copilot)
###
[`v10.4.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.4.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.3.0...v10.4.0 )
#### Features
-
[`1a45ec5`](https://redirect.github.com/eslint/eslint/commit/1a45ec596af1dd5f880e6874cb8f24dafb6a7ecf )
feat: check sequence expressions in `for-direction`
([#​20701](https://redirect.github.com/eslint/eslint/issues/20701 ))
(kuldeep kumar)
-
[`450040b`](https://redirect.github.com/eslint/eslint/commit/450040bd89b989b3531824c6be45feb5fe3d936b )
feat: add `includeIgnoreFile()` to `eslint/config`
([#​20735](https://redirect.github.com/eslint/eslint/issues/20735 ))
(Kirk Waiblinger)
#### Bug Fixes
-
[`544c0c3`](https://redirect.github.com/eslint/eslint/commit/544c0c3da589166ad8e5d634f35d3d06701c57be )
fix: escape code path DOT labels in debug output
([#​20866](https://redirect.github.com/eslint/eslint/issues/20866 ))
(Pixel998)
-
[`6799431`](https://redirect.github.com/eslint/eslint/commit/6799431203f2579632d0870f98ba132067f4040c )
fix: update dependency
[@​eslint/config-helpers](https://redirect.github.com/eslint/config-helpers )
to ^0.6.0
([#​20850](https://redirect.github.com/eslint/eslint/issues/20850 ))
(renovate\[bot])
-
[`f078fef`](https://redirect.github.com/eslint/eslint/commit/f078fef5005dceb14fc162aab7c7200e027688dd )
fix: handle non-array deprecated rule replacements
([#​20825](https://redirect.github.com/eslint/eslint/issues/20825 ))
(xbinaryx)
#### Documentation
-
[`7e52a71`](https://redirect.github.com/eslint/eslint/commit/7e52a7151fb92eec0e0f67fe4e5ddbd1ccce796f )
docs: add mention of `@eslint-react/eslint-plugin`
([#​20869](https://redirect.github.com/eslint/eslint/issues/20869 ))
(Pavel)
-
[`db3468b`](https://redirect.github.com/eslint/eslint/commit/db3468ba746407d7f286f18f7ea9db6df0e3bc08 )
docs: tweak wording around ambiguous CJS-vs-ESM config
([#​20865](https://redirect.github.com/eslint/eslint/issues/20865 ))
(Kirk Waiblinger)
-
[`9084664`](https://redirect.github.com/eslint/eslint/commit/90846643ec6e97d447ae0d831fabe6d17b0a998a )
docs: Update README (GitHub Actions Bot)
-
[`9cc7387`](https://redirect.github.com/eslint/eslint/commit/9cc73875046e3c4b8313644cbb1e99e26b36bd3f )
docs: Update README (GitHub Actions Bot)
-
[`3d7b548`](https://redirect.github.com/eslint/eslint/commit/3d7b5484407403817aa9071a394d336d8ea96eb5 )
docs: Update README (GitHub Actions Bot)
-
[`191ec3c`](https://redirect.github.com/eslint/eslint/commit/191ec3c0a3f94ce0f110df761f0b2b8949011ccb )
docs: Update README (GitHub Actions Bot)
#### Chores
-
[`6616856`](https://redirect.github.com/eslint/eslint/commit/6616856f28fa514a30f87b5539fc100d739a94bf )
chore: upgrade knip to v6
([#​20875](https://redirect.github.com/eslint/eslint/issues/20875 ))
(Pixel998)
-
[`d13b084`](https://redirect.github.com/eslint/eslint/commit/d13b084a3ad02f926e9addaa35fc383759ea5554 )
ci: ensure auto-created PRs run CI
([#​20860](https://redirect.github.com/eslint/eslint/issues/20860 ))
(lumir)
-
[`e71c7af`](https://redirect.github.com/eslint/eslint/commit/e71c7af86dce9acc1d18cb12d2184309f6841594 )
ci: bump pnpm/action-setup from 6.0.5 to 6.0.7
([#​20862](https://redirect.github.com/eslint/eslint/issues/20862 ))
(dependabot\[bot])
-
[`d84393d`](https://redirect.github.com/eslint/eslint/commit/d84393dea170f54191fd20c8268b52c81c0ccd99 )
test: add unit tests for SuppressionsService.applySuppressions()
([#​20863](https://redirect.github.com/eslint/eslint/issues/20863 ))
(kuldeep kumar)
-
[`24db8cb`](https://redirect.github.com/eslint/eslint/commit/24db8cb8e6f07fba667121777a15b1785486be94 )
test: add tests for SuppressionsService.save()
([#​20802](https://redirect.github.com/eslint/eslint/issues/20802 ))
(kuldeep kumar)
-
[`2ef0549`](https://redirect.github.com/eslint/eslint/commit/2ef0549cac4a9537e4c3a26b9f3edd4c99476bf6 )
chore: update ecosystem plugins
([#​20857](https://redirect.github.com/eslint/eslint/issues/20857 ))
(github-actions\[bot])
-
[`a429791`](https://redirect.github.com/eslint/eslint/commit/a4297918d264d229a06cd96051ef9b91c7b86732 )
ci: remove `eslint-webpack-plugin` types integration test
([#​20668](https://redirect.github.com/eslint/eslint/issues/20668 ))
(Milos Djermanovic)
-
[`9e37386`](https://redirect.github.com/eslint/eslint/commit/9e37386aa7f2ce220b2ef74a6afbac5f6b3527c5 )
chore: replace `recast` with range approach in code-sample-minimizer
([#​20682](https://redirect.github.com/eslint/eslint/issues/20682 ))
(Copilot)
-
[`0dd1f9f`](https://redirect.github.com/eslint/eslint/commit/0dd1f9ffc9a07704d46e2a4c8d4ccc0d0908b0c0 )
test: disable warning for `vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER`
([#​20845](https://redirect.github.com/eslint/eslint/issues/20845 ))
(Francesco Trotta)
-
[`9da3c7b`](https://redirect.github.com/eslint/eslint/commit/9da3c7bc92d9579f8db19ecb56e718538d09db2b )
refactor: remove deprecated `meta.language` and migrate `meta.dialects`
([#​20716](https://redirect.github.com/eslint/eslint/issues/20716 ))
(Pixel998)
-
[`2099ed1`](https://redirect.github.com/eslint/eslint/commit/2099ed12a0a74c3d7f0808514362af2499b4fe2b )
refactor: add `meta.defaultOptions` to more rules, enable linting
([#​20800](https://redirect.github.com/eslint/eslint/issues/20800 ))
(xbinaryx)
-
[`f1dfbc9`](https://redirect.github.com/eslint/eslint/commit/f1dfbc9ca57196de7092e1888cc99427bd6fe06e )
chore: update ecosystem plugins
([#​20836](https://redirect.github.com/eslint/eslint/issues/20836 ))
(github-actions\[bot])
-
[`c759413`](https://redirect.github.com/eslint/eslint/commit/c75941390c14728806cd4baef4f6072f6de78318 )
ci: bump pnpm/action-setup from 6.0.3 to 6.0.5
([#​20843](https://redirect.github.com/eslint/eslint/issues/20843 ))
(dependabot\[bot])
-
[`5b817d6`](https://redirect.github.com/eslint/eslint/commit/5b817d6fdc9ae2c35b528dc662b2eca8f40f64aa )
test: add unit tests for lib/shared/ast-utils
([#​20838](https://redirect.github.com/eslint/eslint/issues/20838 ))
(kuldeep kumar)
-
[`1c13ae3`](https://redirect.github.com/eslint/eslint/commit/1c13ae3934c198c494e5958fa3a68b33244ff06a )
test: add unit tests for lib/shared/severity
([#​20835](https://redirect.github.com/eslint/eslint/issues/20835 ))
(kuldeep kumar)
###
[`v10.3.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.3.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.2.1...v10.3.0 )
#### Features
-
[`379571a`](https://redirect.github.com/eslint/eslint/commit/379571a975f2b24d88037b9de2e72ec61d004130 )
feat: add suggestions for no-unused-private-class-members
([#​20773](https://redirect.github.com/eslint/eslint/issues/20773 ))
(sethamus)
#### Bug Fixes
-
[`b6ae5cf`](https://redirect.github.com/eslint/eslint/commit/b6ae5cf07b9b51802367539cb24b245b61eaa37c )
fix: handle unavailable require cache
([#​20812](https://redirect.github.com/eslint/eslint/issues/20812 ))
(Simon Podlipsky)
-
[`6fb3685`](https://redirect.github.com/eslint/eslint/commit/6fb3685bcbe9a6f72fd7dfb9129686b6fb96b0bd )
fix: rule suggestions cause continuation in class body
([#​20787](https://redirect.github.com/eslint/eslint/issues/20787 ))
(Milos Djermanovic)
#### Documentation
-
[`32cc7ab`](https://redirect.github.com/eslint/eslint/commit/32cc7ab4ec653ce89da92deb5c40a9f4fc707fe5 )
docs: fix typos in docs and comments
([#​20809](https://redirect.github.com/eslint/eslint/issues/20809 ))
(Tanuj Kanti)
-
[`7f47937`](https://redirect.github.com/eslint/eslint/commit/7f479376a2fa463d823ab762db6bb37ce8d2ee8f )
docs: Update README (GitHub Actions Bot)
#### Chores
-
[`d32235e`](https://redirect.github.com/eslint/eslint/commit/d32235ec19ceea211fa86452afa383ca05f5c2f9 )
ci: use pnpm in `eslint-flat-config-utils` type integration test
([#​20826](https://redirect.github.com/eslint/eslint/issues/20826 ))
(Francesco Trotta)
-
[`3ffb14e`](https://redirect.github.com/eslint/eslint/commit/3ffb14ea517de750ed1181579ef844af342e4096 )
chore: clean up typos in comments and JSDoc
([#​20821](https://redirect.github.com/eslint/eslint/issues/20821 ))
(Pixel998)
-
[`22eb58a`](https://redirect.github.com/eslint/eslint/commit/22eb58a21cbde2fbd53a1fae99453d408672de50 )
chore: add missing continue-on-error to ecosystem-tests.yml
([#​20818](https://redirect.github.com/eslint/eslint/issues/20818 ))
(Josh Goldberg ✨ )
-
[`88bf002`](https://redirect.github.com/eslint/eslint/commit/88bf0024cb36caebf2880516d9a1f81aa75dafe2 )
ci: bump pnpm/action-setup from 6.0.1 to 6.0.3
([#​20815](https://redirect.github.com/eslint/eslint/issues/20815 ))
(dependabot\[bot])
-
[`97c8c33`](https://redirect.github.com/eslint/eslint/commit/97c8c330beae9557ad24e19f94eebc8d08d1a722 )
chore: update ilshidur/action-discord action to v0.4.0
([#​20811](https://redirect.github.com/eslint/eslint/issues/20811 ))
(renovate\[bot])
-
[`2f58136`](https://redirect.github.com/eslint/eslint/commit/2f58136dd47364a4cae7054a64f7bf1e79693813 )
chore: pin peter-evans/create-pull-request action to
[`5f6978f`](https://redirect.github.com/eslint/eslint/commit/5f6978f )
([#​20810](https://redirect.github.com/eslint/eslint/issues/20810 ))
(renovate\[bot])
-
[`77add7f`](https://redirect.github.com/eslint/eslint/commit/77add7f1bc91ed17bba3be3289928a9146c5f5a1 )
chore: add initial ecosystem plugin tests workflow
([#​19643](https://redirect.github.com/eslint/eslint/issues/19643 ))
(Josh Goldberg ✨ )
-
[`4023b55`](https://redirect.github.com/eslint/eslint/commit/4023b55490fae55e464fe35530ef038cdf5d79a5 )
test: Add unit tests for SuppressionsService.prune()
([#​20797](https://redirect.github.com/eslint/eslint/issues/20797 ))
(kuldeep kumar)
-
[`54080da`](https://redirect.github.com/eslint/eslint/commit/54080dad4f77bb39a1a843933d4ff3a2b7c175e2 )
test: add unit tests for ForkContext
([#​20778](https://redirect.github.com/eslint/eslint/issues/20778 ))
(kuldeep kumar)
-
[`f0e2bcc`](https://redirect.github.com/eslint/eslint/commit/f0e2bcc4bf19253aaebfbd7df87824b0ca4a151f )
test: add unit tests for SuppressionsService.suppress() method
([#​20765](https://redirect.github.com/eslint/eslint/issues/20765 ))
(kuldeep kumar)
-
[`a7f0b94`](https://redirect.github.com/eslint/eslint/commit/a7f0b94743a99bcdf8d07cff15ffbfa6a6c5f927 )
chore: update dependency prettier to v3.8.3
([#​20782](https://redirect.github.com/eslint/eslint/issues/20782 ))
(renovate\[bot])
-
[`7bf93d9`](https://redirect.github.com/eslint/eslint/commit/7bf93d9e79f6dbf77242cbb9a9b8be834730fccd )
chore: update TypeScript to v6
([#​20677](https://redirect.github.com/eslint/eslint/issues/20677 ))
(sethamus)
-
[`b42dd72`](https://redirect.github.com/eslint/eslint/commit/b42dd72e76e7f90e7f0be9458288d93353052adc )
ci: bump pnpm/action-setup from 6.0.0 to 6.0.1
([#​20781](https://redirect.github.com/eslint/eslint/issues/20781 ))
(dependabot\[bot])
-
[`2b252be`](https://redirect.github.com/eslint/eslint/commit/2b252be80f362cca7be3326a6dbe958680fdfe9a )
test: add unit tests for IdGenerator
([#​20775](https://redirect.github.com/eslint/eslint/issues/20775 ))
(kuldeep kumar)
###
[`v10.2.1`](https://redirect.github.com/eslint/eslint/releases/tag/v10.2.1 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.2.0...v10.2.1 )
#### Bug Fixes
-
[`14be92b`](https://redirect.github.com/eslint/eslint/commit/14be92b6d1fa0923b8923830f2208e5e2705b002 )
fix: model generator yield resumption paths in code path analysis
([#​20665](https://redirect.github.com/eslint/eslint/issues/20665 ))
(sethamus)
-
[`84a19d2`](https://redirect.github.com/eslint/eslint/commit/84a19d2c32255db6b9cfc08644a607aae6d5cb62 )
fix: no-async-promise-executor false positives for shadowed Promise
([#​20740](https://redirect.github.com/eslint/eslint/issues/20740 ))
(xbinaryx)
-
[`af764af`](https://redirect.github.com/eslint/eslint/commit/af764af0ec38225755fbf8a6f207f0c77b595a8d )
fix: clarify language and processor validation errors
([#​20729](https://redirect.github.com/eslint/eslint/issues/20729 ))
(Pixel998)
-
[`e251b89`](https://redirect.github.com/eslint/eslint/commit/e251b89a38280973e468a4a9386c138f4f55d10d )
fix: update eslint
([#​20715](https://redirect.github.com/eslint/eslint/issues/20715 ))
(renovate\[bot])
#### Documentation
-
[`ca92ca0`](https://redirect.github.com/eslint/eslint/commit/ca92ca0fb4599e8de1e2fb914e695fe7397cbe63 )
docs: reuse markdown-it instance for markdown filter
([#​20768](https://redirect.github.com/eslint/eslint/issues/20768 ))
(Amaresh S M)
-
[`57d2ee2`](https://redirect.github.com/eslint/eslint/commit/57d2ee213305cee0cb55ef08e0480b57396269a9 )
docs: Enable Eleventy incremental mode for watch
([#​20767](https://redirect.github.com/eslint/eslint/issues/20767 ))
(Amaresh S M)
-
[`c1621b9`](https://redirect.github.com/eslint/eslint/commit/c1621b915742276e5f4b25efe790ca62296330dc )
docs: fix typos in code-path-analyzer.js
([#​20700](https://redirect.github.com/eslint/eslint/issues/20700 ))
(Ayush Shukla)
-
[`1418d52`](https://redirect.github.com/eslint/eslint/commit/1418d522d10bde1960f4942afb548bc7160ec49e )
docs: Update README (GitHub Actions Bot)
-
[`39771e6`](https://redirect.github.com/eslint/eslint/commit/39771e6e600f0b0617fdeafff6dd07e4211ffde6 )
docs: Update README (GitHub Actions Bot)
-
[`71e0469`](https://redirect.github.com/eslint/eslint/commit/71e04693def2df57268f08f3072a2749df6bf438 )
docs: fix incomplete JSDoc param description in no-shadow rule
([#​20728](https://redirect.github.com/eslint/eslint/issues/20728 ))
(kuldeep kumar)
-
[`22119ce`](https://redirect.github.com/eslint/eslint/commit/22119ceb93e28f62262fc1d98ff1b1442d6e2dbf )
docs: clarify scope of for-direction rule with dead code examples
([#​20723](https://redirect.github.com/eslint/eslint/issues/20723 ))
(Amaresh S M)
-
[`8f3fb77`](https://redirect.github.com/eslint/eslint/commit/8f3fb77f122a5641d1833cad5d93f3f54fa3be0b )
docs: document `meta.docs.dialects`
([#​20718](https://redirect.github.com/eslint/eslint/issues/20718 ))
(Pixel998)
#### Chores
-
[`7ddfea9`](https://redirect.github.com/eslint/eslint/commit/7ddfea9c4f62add1588c5c0b0da568c299246383 )
chore: update dependency prettier to v3.8.2
([#​20770](https://redirect.github.com/eslint/eslint/issues/20770 ))
(renovate\[bot])
-
[`fac40e1`](https://redirect.github.com/eslint/eslint/commit/fac40e1de2ba7646cc7cd2d3f93fbdd1f8819001 )
ci: bump pnpm/action-setup from 5.0.0 to 6.0.0
([#​20763](https://redirect.github.com/eslint/eslint/issues/20763 ))
(dependabot\[bot])
-
[`7246f92`](https://redirect.github.com/eslint/eslint/commit/7246f923332522d8b3d46b6ee646fce88535f3fb )
test: add tests for SuppressionsService.load() error handling
([#​20734](https://redirect.github.com/eslint/eslint/issues/20734 ))
(kuldeep kumar)
-
[`4f34b1e`](https://redirect.github.com/eslint/eslint/commit/4f34b1e592b0f63d766d9903998e8e36eb49d3aa )
chore: update pnpm/action-setup action to v5
([#​20762](https://redirect.github.com/eslint/eslint/issues/20762 ))
(renovate\[bot])
-
[`51080eb`](https://redirect.github.com/eslint/eslint/commit/51080eb5c98d619434e4835dbe9f1c6654aca3b8 )
test: processor service
([#​20731](https://redirect.github.com/eslint/eslint/issues/20731 ))
(kuldeep kumar)
-
[`e7e1889`](https://redirect.github.com/eslint/eslint/commit/e7e1889fca9b6044e08f41b38df20a1ce45808c8 )
chore: remove stale babel-eslint10 fixture and test
([#​20727](https://redirect.github.com/eslint/eslint/issues/20727 ))
(kuldeep kumar)
-
[`4e1a87c`](https://redirect.github.com/eslint/eslint/commit/4e1a87cb8fb90e309524bc36bc5f31b9f9cfaa76 )
test: remove redundant async/await in flat config array tests
([#​20722](https://redirect.github.com/eslint/eslint/issues/20722 ))
(Pixel998)
-
[`066eabb`](https://redirect.github.com/eslint/eslint/commit/066eabb3643b12931f991594969bcc0028f71a5f )
test: add rule metadata coverage for `languages` and `docs.dialects`
([#​20717](https://redirect.github.com/eslint/eslint/issues/20717 ))
(Pixel998)
###
[`v10.2.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.2.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.1.0...v10.2.0 )
#### Features
-
[`586ec2f`](https://redirect.github.com/eslint/eslint/commit/586ec2f43092779acc957866db4abe999112d1e1 )
feat: Add `meta.languages` support to rules
([#​20571](https://redirect.github.com/eslint/eslint/issues/20571 ))
(Copilot)
-
[`14207de`](https://redirect.github.com/eslint/eslint/commit/14207dee3939dc87cfa8b2fcfc271fff2cfd6471 )
feat: add `Temporal` to `no-obj-calls`
([#​20675](https://redirect.github.com/eslint/eslint/issues/20675 ))
(Pixel998)
-
[`bbb2c93`](https://redirect.github.com/eslint/eslint/commit/bbb2c93a2b31bd30924f32fe69a9acf41f9dfe35 )
feat: add Temporal to ES2026 globals
([#​20672](https://redirect.github.com/eslint/eslint/issues/20672 ))
(Pixel998)
#### Bug Fixes
-
[`542cb3e`](https://redirect.github.com/eslint/eslint/commit/542cb3e6442a4e6ee3457c799e2a0ee23bef0c6a )
fix: update first-party dependencies
([#​20714](https://redirect.github.com/eslint/eslint/issues/20714 ))
(Francesco Trotta)
#### Documentation
-
[`a2af743`](https://redirect.github.com/eslint/eslint/commit/a2af743ea60f683d0e0de9d98267c1e7e4f5e412 )
docs: add `language` to configuration objects
([#​20712](https://redirect.github.com/eslint/eslint/issues/20712 ))
(Francesco Trotta)
-
[`845f23f`](https://redirect.github.com/eslint/eslint/commit/845f23f1370892bf07d819497ac518c9e65090d6 )
docs: Update README (GitHub Actions Bot)
-
[`5fbcf59`](https://redirect.github.com/eslint/eslint/commit/5fbcf5958b897cc4df5d652924d18428db37f7ee )
docs: remove `sourceType` from ts playground link
([#​20477](https://redirect.github.com/eslint/eslint/issues/20477 ))
(Tanuj Kanti)
-
[`8702a47`](https://redirect.github.com/eslint/eslint/commit/8702a474659be786b6b1392e5e7c0c56355ae4a4 )
docs: Update README (GitHub Actions Bot)
-
[`ddeaded`](https://redirect.github.com/eslint/eslint/commit/ddeaded2ab36951383ff67c60fb64ec68d29a46a )
docs: Update README (GitHub Actions Bot)
-
[`2b44966`](https://redirect.github.com/eslint/eslint/commit/2b4496691266547784a7f7ad1989ce53381bab91 )
docs: add Major Releases section to Manage Releases
([#​20269](https://redirect.github.com/eslint/eslint/issues/20269 ))
(Milos Djermanovic)
-
[`eab65c7`](https://redirect.github.com/eslint/eslint/commit/eab65c700ebb16a6e790910c720450c9908961fd )
docs: update `eslint` versions in examples
([#​20664](https://redirect.github.com/eslint/eslint/issues/20664 ))
(루밀LuMir)
-
[`3e4a299`](https://redirect.github.com/eslint/eslint/commit/3e4a29903bf31f0998e45ad9128a265bce1edc56 )
docs: update ESM Dependencies policies with note for own-usage packages
([#​20660](https://redirect.github.com/eslint/eslint/issues/20660 ))
(Milos Djermanovic)
#### Chores
-
[`8120e30`](https://redirect.github.com/eslint/eslint/commit/8120e30f833474f47acc061d24d164e9f022264f )
refactor: extract no unmodified loop condition
([#​20679](https://redirect.github.com/eslint/eslint/issues/20679 ))
(kuldeep kumar)
-
[`46e8469`](https://redirect.github.com/eslint/eslint/commit/46e8469786be1b2bbb522100e1d44624d98d3745 )
chore: update dependency markdownlint-cli2 to ^0.22.0
([#​20697](https://redirect.github.com/eslint/eslint/issues/20697 ))
(renovate\[bot])
-
[`01ed3aa`](https://redirect.github.com/eslint/eslint/commit/01ed3aa68477f81a7188e1498cf4906e02015b7c )
test: add unit tests for unicode utilities
([#​20622](https://redirect.github.com/eslint/eslint/issues/20622 ))
(Manish chaudhary)
-
[`811f493`](https://redirect.github.com/eslint/eslint/commit/811f4930f82ee2b6ac8eae75cade9bed63de0781 )
ci: remove `--legacy-peer-deps` from types integration tests
([#​20667](https://redirect.github.com/eslint/eslint/issues/20667 ))
(Milos Djermanovic)
-
[`6b86fcf`](https://redirect.github.com/eslint/eslint/commit/6b86fcfc5c75d6a3b8a2cf7bcdb3ef60635a9a03 )
chore: update dependency npm-run-all2 to v8
([#​20663](https://redirect.github.com/eslint/eslint/issues/20663 ))
(renovate\[bot])
-
[`632c4f8`](https://redirect.github.com/eslint/eslint/commit/632c4f83bf32b77981c7d395cacddd1bb172ee25 )
chore: add `prettier` update commit to `.git-blame-ignore-revs`
([#​20662](https://redirect.github.com/eslint/eslint/issues/20662 ))
(루밀LuMir)
-
[`b0b0f21`](https://redirect.github.com/eslint/eslint/commit/b0b0f21927e03ba092400e3c70d7058f537765c8 )
chore: update dependency eslint-plugin-regexp to ^3.1.0
([#​20659](https://redirect.github.com/eslint/eslint/issues/20659 ))
(Milos Djermanovic)
-
[`228a2dd`](https://redirect.github.com/eslint/eslint/commit/228a2dd4b272c17f516ee3541f1dd69eca0a8ab0 )
chore: update dependency eslint-plugin-eslint-plugin to ^7.3.2
([#​20661](https://redirect.github.com/eslint/eslint/issues/20661 ))
(Milos Djermanovic)
-
[`3ab4d7e`](https://redirect.github.com/eslint/eslint/commit/3ab4d7e244df244102de9d0d250b2ff12456a785 )
test: Add tests for eslintrc-style keys
([#​20645](https://redirect.github.com/eslint/eslint/issues/20645 ))
(kuldeep kumar)
###
[`v10.1.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.1.0 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.0.3...v10.1.0 )
#### Features
-
[`ff4382b`](https://redirect.github.com/eslint/eslint/commit/ff4382be349035acdb170627a2dc92828e134562 )
feat: apply fix for `no-var` in `TSModuleBlock`
([#​20638](https://redirect.github.com/eslint/eslint/issues/20638 ))
(Tanuj Kanti)
-
[`0916995`](https://redirect.github.com/eslint/eslint/commit/0916995b51528872b15ba4fedb24172cf25fcb3f )
feat: Implement api support for bulk-suppressions
([#​20565](https://redirect.github.com/eslint/eslint/issues/20565 ))
(Blake Sager)
#### Bug Fixes
-
[`2b8824e`](https://redirect.github.com/eslint/eslint/commit/2b8824e6be4223980e929a20025602df20d05ea2 )
fix: Prevent `no-var` autofix when a variable is used before declaration
([#​20464](https://redirect.github.com/eslint/eslint/issues/20464 ))
(Amaresh S M)
-
[`e58b4bf`](https://redirect.github.com/eslint/eslint/commit/e58b4bff167e79afd067d1b0ee9360bec2d3393e )
fix: update eslint
([#​20597](https://redirect.github.com/eslint/eslint/issues/20597 ))
(renovate\[bot])
#### Documentation
-
[`b7b57fe`](https://redirect.github.com/eslint/eslint/commit/b7b57fe9942c572ff651230f1f96cefed787ca52 )
docs: use correct JSDoc link in require-jsdoc.md
([#​20641](https://redirect.github.com/eslint/eslint/issues/20641 ))
(mkemna-clb)
-
[`58e4cfc`](https://redirect.github.com/eslint/eslint/commit/58e4cfc7dbf0fe40c73f09bf0ff94ad944d0ba0e )
docs: add deprecation notice partial
([#​20639](https://redirect.github.com/eslint/eslint/issues/20639 ))
(Milos Djermanovic)
-
[`7143dbf`](https://redirect.github.com/eslint/eslint/commit/7143dbf99df27c61edf1552da981794e99a0b2f2 )
docs: update v9 migration guide for `@eslint/js` usage
([#​20540](https://redirect.github.com/eslint/eslint/issues/20540 ))
(fnx)
-
[`035fc4f`](https://redirect.github.com/eslint/eslint/commit/035fc4fbe506e3e4524882cf50db37a4e430adf4 )
docs: note that `globalReturn` applies only with `sourceType: "script"`
([#​20630](https://redirect.github.com/eslint/eslint/issues/20630 ))
(Milos Djermanovic)
-
[`e972c88`](https://redirect.github.com/eslint/eslint/commit/e972c88ab7474a74191ee99ac2558b00d0427a8a )
docs: merge ESLint option descriptions into type definitions
([#​20608](https://redirect.github.com/eslint/eslint/issues/20608 ))
(Francesco Trotta)
-
[`7f10d84`](https://redirect.github.com/eslint/eslint/commit/7f10d8440137f0cfd75f18f4746ba6a1c621b953 )
docs: Update README (GitHub Actions Bot)
-
[`aeed007`](https://redirect.github.com/eslint/eslint/commit/aeed0078ca2f73d4744cc522102178d45b5be64e )
docs: open playground link in new tab
([#​20602](https://redirect.github.com/eslint/eslint/issues/20602 ))
(Tanuj Kanti)
-
[`a0d1a37`](https://redirect.github.com/eslint/eslint/commit/a0d1a3772679d3d74bb860fc65b5b58678acd452 )
docs: Add AI Usage Policy
([#​20510](https://redirect.github.com/eslint/eslint/issues/20510 ))
(Nicholas C. Zakas)
#### Chores
-
[`a9f9cce`](https://redirect.github.com/eslint/eslint/commit/a9f9cce82d80b540a0e3549d0e91c16df28740d8 )
chore: update dependency eslint-plugin-unicorn to ^63.0.0
([#​20584](https://redirect.github.com/eslint/eslint/issues/20584 ))
(Milos Djermanovic)
-
[`1f42bd7`](https://redirect.github.com/eslint/eslint/commit/1f42bd7876ae4192cf7f7f4faf73b4ef3d2563cb )
chore: update `prettier` to 3.8.1
([#​20651](https://redirect.github.com/eslint/eslint/issues/20651 ))
(루밀LuMir)
-
[`c0a6f4a`](https://redirect.github.com/eslint/eslint/commit/c0a6f4a2b4169edeca2a81bf7b47783e39ade366 )
chore: update dependency
[@​eslint/json](https://redirect.github.com/eslint/json ) to ^1.2.0
([#​20652](https://redirect.github.com/eslint/eslint/issues/20652 ))
(renovate\[bot])
-
[`cc43f79`](https://redirect.github.com/eslint/eslint/commit/cc43f795c42e5ec2f19bb43b1f6d534ef2e469f3 )
chore: update dependency c8 to v11
([#​20650](https://redirect.github.com/eslint/eslint/issues/20650 ))
(renovate\[bot])
-
[`2ce4635`](https://redirect.github.com/eslint/eslint/commit/2ce4635b036ff2665c7009afddf9c0fb2274dceb )
chore: update dependency
[@​eslint/json](https://redirect.github.com/eslint/json ) to v1
([#​20649](https://redirect.github.com/eslint/eslint/issues/20649 ))
(renovate\[bot])
-
[`f0406ee`](https://redirect.github.com/eslint/eslint/commit/f0406eedcc3dc415babbbf6bbdb5db1eebfd487b )
chore: update dependency markdownlint-cli2 to ^0.21.0
([#​20646](https://redirect.github.com/eslint/eslint/issues/20646 ))
(renovate\[bot])
-
[`dbb4c95`](https://redirect.github.com/eslint/eslint/commit/dbb4c9582a00bac604d5c6ac671bb7111468a846 )
chore: remove trunk
([#​20478](https://redirect.github.com/eslint/eslint/issues/20478 ))
(sethamus)
-
[`c672a2a`](https://redirect.github.com/eslint/eslint/commit/c672a2a70579fddf1c6ce33dfa712d705726e1c9 )
test: fix CLI test for empty output file
([#​20640](https://redirect.github.com/eslint/eslint/issues/20640 ))
(kuldeep kumar)
-
[`c7ada24`](https://redirect.github.com/eslint/eslint/commit/c7ada2455680036bbfc42fcb1511ff28afe3c587 )
ci: bump pnpm/action-setup from 4.3.0 to 4.4.0
([#​20636](https://redirect.github.com/eslint/eslint/issues/20636 ))
(dependabot\[bot])
-
[`07c4b8b`](https://redirect.github.com/eslint/eslint/commit/07c4b8b4a9f49145e60a3448dd57853213ed4de3 )
test: fix `RuleTester` test without test runners
([#​20631](https://redirect.github.com/eslint/eslint/issues/20631 ))
(Francesco Trotta)
-
[`079bba7`](https://redirect.github.com/eslint/eslint/commit/079bba7ff17d0a99fdffe32bf991d005ba797fae )
test: Add tests for `isValidWithUnicodeFlag`
([#​20601](https://redirect.github.com/eslint/eslint/issues/20601 ))
(Manish chaudhary)
-
[`5885ae6`](https://redirect.github.com/eslint/eslint/commit/5885ae66216bcee9310bbf73786b7d7d5774aeaf )
ci: unpin Node.js 25.x in CI
([#​20615](https://redirect.github.com/eslint/eslint/issues/20615 ))
(Copilot)
-
[`f65e5d3`](https://redirect.github.com/eslint/eslint/commit/f65e5d3c0df65fdb317ad6d23f7ae113c5f4b6d7 )
chore: update pnpm/action-setup digest to
[`b906aff`](https://redirect.github.com/eslint/eslint/commit/b906aff )
([#​20610](https://redirect.github.com/eslint/eslint/issues/20610 ))
(renovate\[bot])
###
[`v10.0.3`](https://redirect.github.com/eslint/eslint/releases/tag/v10.0.3 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.0.2...v10.0.3 )
#### Bug Fixes
-
[`e511b58`](https://redirect.github.com/eslint/eslint/commit/e511b58d5ecd63a232b87743614867f4eaadbba4 )
fix: update eslint
([#​20595](https://redirect.github.com/eslint/eslint/issues/20595 ))
(renovate\[bot])
-
[`f4c9cf9`](https://redirect.github.com/eslint/eslint/commit/f4c9cf9b8dc5642de555a09295933464080d722a )
fix: include variable name in `no-useless-assignment` message
([#​20581](https://redirect.github.com/eslint/eslint/issues/20581 ))
(sethamus)
-
[`ee9ff31`](https://redirect.github.com/eslint/eslint/commit/ee9ff31cee13712d2be2a6b5c0a4a54449fe9fe1 )
fix: update dependency minimatch to ^10.2.4
([#​20562](https://redirect.github.com/eslint/eslint/issues/20562 ))
(Milos Djermanovic)
#### Documentation
-
[`9fc31b0`](https://redirect.github.com/eslint/eslint/commit/9fc31b03ef05abfc4f0f449b22947029d51a72f6 )
docs: Update README (GitHub Actions Bot)
-
[`4efaa36`](https://redirect.github.com/eslint/eslint/commit/4efaa367c62d5a45dd21e246e4a506e11dd51758 )
docs: add info box for `eslint-plugin-eslint-comments`
([#​20570](https://redirect.github.com/eslint/eslint/issues/20570 ))
(DesselBane)
-
[`23b2759`](https://redirect.github.com/eslint/eslint/commit/23b2759dd5cd70976ab2e8f4a1cf86ffe4b9f65d )
docs: add v10 migration guide link to Use docs index
([#​20577](https://redirect.gith
> ✂ **Note**
>
> PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIzMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sysix <sysix@sysix-coding.de >
Co-authored-by: Cameron <cameron.clark@hey.com >
2026-06-22 20:08:46 +02:00
oxc-guard
9e72aa0312
chore(submodules): update submodule SHAs to latest commits ( #23451 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `05bb032` → `de8e621`
- babel: `2688fbd` → `1fb0b77`
- TypeScript: `7539c04` → `7964e22`
- estree-conformance: `ca42c3d` → `6514ad7`
This PR is automatically generated by the [update_submodules workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
2026-06-15 14:31:01 +00:00
Boshen
7a24911846
perf(codegen)!: borrow sourcemaps from codegen ( #23422 )
...
Summary:
- Upgrade oxc_sourcemap to 8.0.1.
- Return borrowed SourceMap from CodegenReturn.
- Support no-sourcemap feature builds used by benchmarks.
AI-assisted: yes
2026-06-15 19:07:21 +08:00
Dunqing
6c0bdf0486
feat(transformer/react-refresh): support module.property.useHook() ( #23190 )
...
## Summary
Ports facebook/react#35318 to the React Refresh plugin: hook calls through a nested member expression such as `FancyHook.property.useNestedThing()` are now collected into the `$RefreshSig$` custom-hooks list, so components using them no longer lose state on every fast-refresh update. As in the Babel plugin, the binding is resolved through one extra static member level, and a force reset is emitted when the root object has no binding in scope. Deeper nesting (`A.B.C.useHook()`) remains uncollected, same as upstream; note that Babel additionally emits `forceReset = true` in that case while oxc does not — a pre-existing, intentional divergence from #6143 that this PR does not change.
closes #16571
## Example
Input:
```jsx
import FancyHook from 'fancy';
export default function App() {
const foo = FancyHook.property.useNestedThing();
return <h1>{foo}</h1>;
}
```
Signature before:
```js
_s(App, "useNestedThing{foo}");
```
Signature after:
```js
_s(App, "useNestedThing{foo}", false, function() {
return [FancyHook.property.useNestedThing];
});
```
---
This PR was prepared with AI assistance; I reviewed, tested, and verified the changes.
2026-06-12 02:04:52 +00:00
Boshen
777f02ae10
refactor(diagnostics)!: return a Diagnostics type instead of Vec<OxcDiagnostic> ( #23217 )
...
## Summary
Introduces `oxc_diagnostics::Diagnostics` — a `Vec<OxcDiagnostic>` newtype that knows the difference between errors and warnings — and makes it the standard diagnostics return value across oxc.
- **New type**: `Diagnostics` with `has_errors()`, `has_warnings()`, `errors()`, `warnings()`, plus `Vec`-like ergonomics (Deref, `IntoIterator`, `Extend`, `From`/`Into<Vec>`) so most call sites are unchanged.
- **Return types**: `ParserReturn`, `SemanticBuilderReturn`, `IsolatedDeclarationsReturn`, the React Compiler `TransformResult`/`LintResult`, and `TransformerReturn` now expose `diagnostics: Diagnostics` instead of `errors: Vec<OxcDiagnostic>` (the React Compiler's separate `errors`/`warnings` are merged into one severity-tagged list).
- **Behaviour**: a React Compiler **error** now stops the transform (no output), while **warnings** flow through and the transform continues. `compile()` aborts codegen only when `diagnostics.has_errors()` — warnings alone no longer abort (previously any diagnostic did).
## Breaking change
Consumers reading `*.errors` on these return values must read `*.diagnostics`. React Compiler consumers that read `.errors`/`.warnings` separately should use `diagnostics.has_errors()` / `diagnostics.errors()` / `diagnostics.warnings()`.
Parser/semantic/isolated-declarations fatality is otherwise unchanged. Builds on the React Compiler transform feature (#23201 ).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
2026-06-10 14:46:52 +00:00
camc314
2c28748328
fix(transformer/class): parent generated constructors to class scope ( #23222 )
...
## Summary
- Parent synthesized constructors for TypeScript class field lowering under the transformed class body scope instead of the current traversal scope.
- Update the transform conformance snapshot now that the generated constructor scope matches the rebuilt semantic scope.
## Details
When `useDefineForClassFields` lowering needs to synthesize a constructor, the traversal is still positioned in the scope that encloses the class. Static blocks created in the same transform already use `class_scope_id`, but generated constructors used `create_child_scope_of_current`, so their semantic parent could point outside the class.
This changes the generated constructor scope creation to use `create_child_scope(class_scope_id, ...)`, matching where the constructor actually lives in the class body.
## Example
```ts
class Cls {
y = 1;
[key] = 2;
}
```
Conceptually this transform creates a constructor for the hoisted field initializers:
```ts
class Cls {
constructor() {
this.y = 1;
this[key] = 2;
}
}
```
Before this change, the constructor AST was nested in `Cls`, but its semantic scope was parented to the enclosing scope:
```mermaid
flowchart TD
Program["Program scope"] --> Class["Class body scope: Cls"]
Program --> GeneratedCtor["Generated constructor scope"]
Class --> StaticBlocks["Generated static blocks"]
```
After this change, the generated constructor scope is parented to the class body scope, matching the rebuilt semantic tree:
```mermaid
flowchart TD
Program["Program scope"] --> Class["Class body scope: Cls"]
Class --> GeneratedCtor["Generated constructor scope"]
Class --> StaticBlocks["Generated static blocks"]
```
The same mismatch showed up in the accessor backing field fixture:
```ts
class Hello {
private input = { foo };
accessor util = this.input.foo();
}
```
AI assistance: OpenAI Codex was used to prepare this change.
2026-06-10 10:01:04 +00:00
Boshen
bb0ed44541
feat(transformer)!: disable styled-components transpileTemplateLiterals by default ( #23171 )
...
## Summary
Closes #13398 .
The styled-components transform's `transpileTemplateLiterals` option rewrites tagged template literals into the array-call form:
```js
// in
styled.div`width: 100%;`
// out — transpileTemplateLiterals: true
styled.div(["width: 100%;"])
```
This form is only more compact when template literals are *also* down-levelled to ES5 — which is why `babel-plugin-styled-components` enables it by default, to pre-empt Babel's verbose `_taggedTemplateLiteral` output. Oxc does not down-level template literals below ES6, so the array-call form is strictly *larger* than leaving the tagged template untouched.
This PR flips the default to `false`, as agreed with @Dunqing in #13398 .
## Changes
- `StyledComponentsOptions::transpile_template_literals` now defaults to `false` (both the `serde` field default and the `Default` impl), with docs explaining why.
- napi: `transpileTemplateLiterals` is documented `@default false` (`transformer.rs` + `index.d.ts`), and the styled-components napi test snapshot now reflects the non-transpiled default output.
- Conformance fixtures that relied on the old default and whose reference output is transpiled now pin `transpileTemplateLiterals: true`, so they keep matching `babel-plugin-styled-components`' reference output. The conformance snapshot is unchanged — `plugin-styled-components` stays at 25/40.
## Breaking change
`transpileTemplateLiterals` now defaults to `false`. Pass `transpileTemplateLiterals: true` to restore the previous behavior.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
2026-06-10 03:26:40 +00:00
camc314
d74964cda6
perf(parser): store class definite assertion offset ( #23170 )
...
- Store class property definite assignment assertion positions as `u32` offsets instead of carrying a full `Span`.
- Reconstruct the one-character diagnostic span only when emitting class definite-assignment diagnostics.
- aligns the behaviour for definite assertion errors with variables by reporting on the definite assertion rather than on the whole class member
2026-06-09 15:33:10 +00:00
camc314
d169fcd3af
feat(parser): report invalid class definite assertions ( #23164 )
...
- Match TypeScript’s diagnostic precedence for class property definite assignment assertions.
- Report TS1264 when a class property uses ! without a type annotation.
- Report TS1255 when a definite assignment assertion is used in disallowed class property contexts, including static.
2026-06-09 14:42:42 +00:00
camc314
00244d8e10
feat(parser): report definite property initializer errors ( #23160 )
...
Report TS1263 for TypeScript class properties that combine a definite assignment assertion with an initializer.
2026-06-09 14:42:42 +00:00
oxc-guard
b4f9cb9d8c
chore(submodules): update submodule SHAs to latest commits ( #23118 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `7e115f4` → `05bb032`
- babel: `d9fe348` → `2688fbd`
- TypeScript: `e5509e2` → `7539c04`
- estree-conformance: `faf089d` → `ca42c3d`
This PR is automatically generated by the [update_submodules workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
2026-06-08 14:49:36 +00:00
renovate[bot]
cdc0ac4aef
chore(deps): update npm packages ( #23087 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
|
[@arethetypeswrong/core](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io )
([source](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/tree/HEAD/packages/core ))
| [`0.18.2` →
`0.18.3`](https://renovatebot.com/diffs/npm/@arethetypeswrong%2fcore/0.18.2/0.18.3 )
|

|

|

|

|
| [@codspeed/vitest-plugin](https://codspeed.io )
([source](https://redirect.github.com/CodSpeedHQ/codspeed-node )) |
[`5.4.0` →
`5.5.0`](https://renovatebot.com/diffs/npm/@codspeed%2fvitest-plugin/5.4.0/5.5.0 )
|

|

|

|

|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ))
| [`8.60.0` →
`8.60.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.60.0/8.60.1 )
|

|

|

|

|
|
[@typescript-eslint/scope-manager](https://typescript-eslint.io/packages/scope-manager )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/scope-manager ))
| [`8.60.0` →
`8.60.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fscope-manager/8.60.0/8.60.1 )
|

|

|

|

|
| [@typescript-eslint/visitor-keys](https://typescript-eslint.io )
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/visitor-keys ))
| [`8.60.0` →
`8.60.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fvisitor-keys/8.60.0/8.60.1 )
|

|

|

|

|
| [@vitest/browser](https://vitest.dev/guide/browser/ )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser ))
| [`4.1.7` →
`4.1.8`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.1.7/4.1.8 )
|

|

|

|

|
|
[@vitest/browser-playwright](https://vitest.dev/config/browser/playwright )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright ))
| [`4.1.7` →
`4.1.8`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.1.7/4.1.8 )
|

|

|

|

|
| [degit](https://redirect.github.com/Rich-Harris/degit ) | [`3.3.2` →
`3.4.1`](https://renovatebot.com/diffs/npm/degit/3.3.2/3.4.1 ) |

|

|

|

|
| [eslint](https://eslint.org )
([source](https://redirect.github.com/eslint/eslint )) | [`10.4.0` →
`10.4.1`](https://renovatebot.com/diffs/npm/eslint/10.4.0/10.4.1 ) |

|

|

|

|
|
[prettier-plugin-svelte](https://redirect.github.com/sveltejs/prettier-plugin-svelte )
| [`4.0.1` →
`4.1.0`](https://renovatebot.com/diffs/npm/prettier-plugin-svelte/4.0.1/4.1.0 )
|

|

|

|

|
| [svelte](https://svelte.dev )
([source](https://redirect.github.com/sveltejs/svelte/tree/HEAD/packages/svelte ))
| [`5.55.10` →
`5.56.1`](https://renovatebot.com/diffs/npm/svelte/5.55.10/5.56.1 ) |

|

|

|

|
| [tsx](https://tsx.hirok.io )
([source](https://redirect.github.com/privatenumber/tsx )) | [`4.22.3` →
`4.22.4`](https://renovatebot.com/diffs/npm/tsx/4.22.3/4.22.4 ) |

|

|

|

|
| [type-fest](https://redirect.github.com/sindresorhus/type-fest ) |
[`5.6.0` →
`5.7.0`](https://renovatebot.com/diffs/npm/type-fest/5.6.0/5.7.0 ) |

|

|

|

|
| [vitest](https://vitest.dev )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ))
| [`4.1.7` →
`4.1.8`](https://renovatebot.com/diffs/npm/vitest/4.1.7/4.1.8 ) |

|

|

|

|
|
[vscode-languageserver-protocol](https://redirect.github.com/Microsoft/vscode-languageserver-node )
([source](https://redirect.github.com/Microsoft/vscode-languageserver-node/tree/HEAD/protocol ))
| [`3.17.5` →
`3.18.0`](https://renovatebot.com/diffs/npm/vscode-languageserver-protocol/3.17.5/3.18.0 )
|

|

|

|

|
---
### Release Notes
<details>
<summary>arethetypeswrong/arethetypeswrong.github.io
(@​arethetypeswrong/core)</summary>
###
[`v0.18.3`](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/blob/HEAD/packages/core/CHANGELOG.md#0183 )
##### Patch Changes
-
[`14e61d5`](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/commit/14e61d5 ):
Update [@​types/node](https://redirect.github.com/types/node ), use
[@​typescript/native-preview](https://redirect.github.com/typescript/native-preview )
for local build/check
-
[`25031aa`](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/commit/25031aa ):
- Fix "Cannot read properties of undefined (reading 'filename')" caused
by fflate 0.8.3
([#​258](https://redirect.github.com/arethetypeswrong/arethetypeswrong.github.io/issues/258 ))
- Bump fflate to ^0.8.3
</details>
<details>
<summary>CodSpeedHQ/codspeed-node
(@​codspeed/vitest-plugin)</summary>
###
[`v5.5.0`](https://redirect.github.com/CodSpeedHQ/codspeed-node/releases/tag/v5.5.0 )
[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-node/compare/v5.4.0...v5.5.0 )
### Highlights
We are introducing `@codspeed/playwright`, for walltime benchmarking and
profiling of end to end browser applications through playwright.
Here's an example usage, but head to the
[docs](https://codspeed.io/docs/benchmarks/nodejs/playwright ) for more
information
```typescript
import { bench, type Page } from "@​codspeed/playwright-plugin";
import electronExecutable from "electron";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const appRoot = path.resolve(__dirname, "..");
async function waitUntilSettled(page: Page): Promise<void> {
await page.waitForFunction(() => {
const main = document.getElementById("main");
return !!main && !main.classList.contains("loading");
});
}
await bench(
"inbox-search-archive-threads",
async ({ page }) => {
await page.fill("#search", "update");
await waitUntilSettled(page);
await page.click("#select-visible-btn");
await page.click("#archive-btn");
await waitUntilSettled(page);
await page.click('#sidebar nav button[data-view="threads"]');
await waitUntilSettled(page);
},
{
target: {
kind: "electron",
appPath: path.join(appRoot, "out/main/index.js"),
cwd: appRoot,
},
beforeRound: async ({ page }) => {
page.setDefaultTimeout(180_000);
await page.waitForSelector("#main");
await waitUntilSettled(page);
},
},
);
```
Note: this plugin is only compatible with the walltime instrument.
#### What's Changed
- Add playwright profiling package by
[@​GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange )
in
[#​80](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/80 )
**Full Changelog**:
<https://github.com/CodSpeedHQ/codspeed-node/compare/v5.4.0...v5.5.0 >
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/parser)</summary>
###
[`v8.60.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8601-2026-06-01 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.60.0...v8.60.1 )
This was a version bump only for parser to align it with other projects,
there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/scope-manager)</summary>
###
[`v8.60.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/scope-manager/CHANGELOG.md#8601-2026-06-01 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.60.0...v8.60.1 )
This was a version bump only for scope-manager to align it with other
projects, there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint
(@​typescript-eslint/visitor-keys)</summary>
###
[`v8.60.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/visitor-keys/CHANGELOG.md#8601-2026-06-01 )
[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.60.0...v8.60.1 )
This was a version bump only for visitor-keys to align it with other
projects, there were no code changes.
See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.60.1 )
for more information.
You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning ) and
[releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
###
[`v4.1.8`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.8 )
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8 )
##### 🐞 Bug Fixes
- **browser**:
- Disable client `cdp` API when `allowWrite/allowExec: false` \[backport
to v4] - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa )
and **Codex** in
[#​10450](https://redirect.github.com/vitest-dev/vitest/issues/10450 )
[<samp>(e4067)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e4067b3b1 )
- Remove orphaned Playwright route when same module is mocked via
multiple ids \[backport to v4] - by
[@​toxik](https://redirect.github.com/toxik ) and
[@​Zelys-DFKH](https://redirect.github.com/Zelys-DFKH ) in
[#​10474](https://redirect.github.com/vitest-dev/vitest/issues/10474 )
[<samp>(675b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/675b4343f )
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8 )
</details>
<details>
<summary>Rich-Harris/degit (degit)</summary>
###
[`v3.4.1`](https://redirect.github.com/Rich-Harris/degit/compare/v3.4.0...v3.4.1 )
[Compare
Source](https://redirect.github.com/Rich-Harris/degit/compare/v3.4.0...v3.4.1 )
###
[`v3.4.0`](https://redirect.github.com/Rich-Harris/degit/compare/v3.3.2...v3.4.0 )
[Compare
Source](https://redirect.github.com/Rich-Harris/degit/compare/v3.3.2...v3.4.0 )
</details>
<details>
<summary>eslint/eslint (eslint)</summary>
###
[`v10.4.1`](https://redirect.github.com/eslint/eslint/releases/tag/v10.4.1 )
[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v10.4.0...v10.4.1 )
#### Bug Fixes
-
[`e557467`](https://redirect.github.com/eslint/eslint/commit/e557467db7496220eebcbe2ac5ea6d38c12bb1ec )
fix: update `@eslint/plugin-kit` version to 0.7.2
([#​20930](https://redirect.github.com/eslint/eslint/issues/20930 ))
(Francesco Trotta)
-
[`d4ce898`](https://redirect.github.com/eslint/eslint/commit/d4ce898796ca22c3b96aa70d3014cb85f4bac1cd )
fix: propagate failures from delegated commands
([#​20917](https://redirect.github.com/eslint/eslint/issues/20917 ))
(Minh Vu)
-
[`f4f3507`](https://redirect.github.com/eslint/eslint/commit/f4f3507460bc016b5be979c05d2969793f570cbf )
fix: prefer-arrow-callback invalid autofix with newline after `async`
([#​20916](https://redirect.github.com/eslint/eslint/issues/20916 ))
(kuldeep kumar)
-
[`c5bc78b`](https://redirect.github.com/eslint/eslint/commit/c5bc78b37e08b9054a11f0cc2d81808bb24acb85 )
fix: false positive for reference in `finally` block
([#​20655](https://redirect.github.com/eslint/eslint/issues/20655 ))
(Tanuj Kanti)
-
[`27538c0`](https://redirect.github.com/eslint/eslint/commit/27538c01f5df4e9306f6f4ba867b2dd6307fae59 )
fix: add missing CodePath and CodePathSegment types
([#​20853](https://redirect.github.com/eslint/eslint/issues/20853 ))
(Pixel998)
#### Documentation
-
[`61b0add`](https://redirect.github.com/eslint/eslint/commit/61b0add61ffc52665562be7bb96f526690a78b30 )
docs: remove deprecated rule from related rules of `max-params`
([#​20921](https://redirect.github.com/eslint/eslint/issues/20921 ))
(Tanuj Kanti)
-
[`305d5b9`](https://redirect.github.com/eslint/eslint/commit/305d5b91aeac24d36fde42f75625a8f183d4ce43 )
docs: remove deprecated rules from related rules section
([#​20911](https://redirect.github.com/eslint/eslint/issues/20911 ))
(Tanuj Kanti)
-
[`49b0202`](https://redirect.github.com/eslint/eslint/commit/49b0202d01918b8061720d586dffd7c68047090c )
docs: fix `display: none` of ad
([#​20901](https://redirect.github.com/eslint/eslint/issues/20901 ))
(Tanuj Kanti)
-
[`9067f94`](https://redirect.github.com/eslint/eslint/commit/9067f9492ec998afc5b4f057a477ecf6ebd45e44 )
docs: switch build to Node.js 24
([#​20893](https://redirect.github.com/eslint/eslint/issues/20893 ))
(Milos Djermanovic)
-
[`c91b041`](https://redirect.github.com/eslint/eslint/commit/c91b0417e3420c76807ce1fa2aea76e2de87ab86 )
docs: Update README (GitHub Actions Bot)
-
[`e349265`](https://redirect.github.com/eslint/eslint/commit/e349265cb37f3ebc837e178e48a725bb782bd870 )
docs: clarify semver strings in rule deprecation objects
([#​20885](https://redirect.github.com/eslint/eslint/issues/20885 ))
(Milos Djermanovic)
#### Chores
-
[`b0e466b`](https://redirect.github.com/eslint/eslint/commit/b0e466b6ab47bfc7de43d8de0c315d8ee83aa584 )
test: add `data` property to invalid tests cases for rules
([#​20924](https://redirect.github.com/eslint/eslint/issues/20924 ))
(Tanuj Kanti)
-
[`f78838b`](https://redirect.github.com/eslint/eslint/commit/f78838bc4c86d487e1bcc7cede260c4467721c46 )
test: add CodePath type coverage
([#​20904](https://redirect.github.com/eslint/eslint/issues/20904 ))
(Pixel998)
-
[`1daa4bd`](https://redirect.github.com/eslint/eslint/commit/1daa4bd734b79a62e317d0394394a6b38cff49f9 )
chore: update `eslint-plugin-eslint-comments` test data to latest commit
([#​20922](https://redirect.github.com/eslint/eslint/issues/20922 ))
(Francesco Trotta)
-
[`002942c`](https://redirect.github.com/eslint/eslint/commit/002942ce988ea28b78e0a2f3b074081e638b552c )
ci: declare contents:read on update-readme workflow
([#​20919](https://redirect.github.com/eslint/eslint/issues/20919 ))
(Arpit Jain)
-
[`64bca24`](https://redirect.github.com/eslint/eslint/commit/64bca24e7bed35bc3c864fc625cb2d89eca87d5b )
chore: update ecosystem plugins
([#​20912](https://redirect.github.com/eslint/eslint/issues/20912 ))
(ESLint Bot)
-
[`6d7c832`](https://redirect.github.com/eslint/eslint/commit/6d7c832950d5e92499d88e504080661f888f8f56 )
chore: ignore fflate updates in renovate
([#​20908](https://redirect.github.com/eslint/eslint/issues/20908 ))
(Pixel998)
-
[`b2c8638`](https://redirect.github.com/eslint/eslint/commit/b2c86382164d87c6203b78d52068cd6a2a6ffe30 )
ci: bump pnpm/action-setup from 6.0.7 to 6.0.8
([#​20889](https://redirect.github.com/eslint/eslint/issues/20889 ))
(dependabot\[bot])
-
[`a9b8d7f`](https://redirect.github.com/eslint/eslint/commit/a9b8d7f74c50211701cfc49710fa541fd91b2aa5 )
chore: increase maxBuffer for ecosystem tests
([#​20881](https://redirect.github.com/eslint/eslint/issues/20881 ))
(sethamus)
-
[`b702ead`](https://redirect.github.com/eslint/eslint/commit/b702ead5e1ed7cb9f28238a454797662efb37396 )
chore: update ecosystem update PR settings
([#​20884](https://redirect.github.com/eslint/eslint/issues/20884 ))
(Pixel998)
-
[`507f60e`](https://redirect.github.com/eslint/eslint/commit/507f60e9a78c9a902bc8759f066ae17a1ea6cd81 )
chore: update ecosystem plugins
([#​20882](https://redirect.github.com/eslint/eslint/issues/20882 ))
(ESLint Bot)
-
[`92f5c5b`](https://redirect.github.com/eslint/eslint/commit/92f5c5bb6bf3a5d167c8ee53a430833410295c6d )
test: add unit test for message-count
([#​20878](https://redirect.github.com/eslint/eslint/issues/20878 ))
(kuldeep kumar)
-
[`df32108`](https://redirect.github.com/eslint/eslint/commit/df321080af5758b1fa25e4b9a40e26135642dd6e )
chore: add
[@​eslint/markdown](https://redirect.github.com/eslint/markdown )
and typescript-eslint ecosystem tests
([#​20837](https://redirect.github.com/eslint/eslint/issues/20837 ))
(sethamus)
-
[`327f91d`](https://redirect.github.com/eslint/eslint/commit/327f91d36aa49f2a50ded931d841a16374fd875f )
chore: use includeIgnoreFile internally
([#​20876](https://redirect.github.com/eslint/eslint/issues/20876 ))
(Kirk Waiblinger)
-
[`f0dc4bd`](https://redirect.github.com/eslint/eslint/commit/f0dc4bd893fb3a9f44e4ddc3ad7063ffb0beacd3 )
chore: pin fflate\@​0.8.2
([#​20877](https://redirect.github.com/eslint/eslint/issues/20877 ))
(Milos Djermanovic)
-
[`0f4bd25`](https://redirect.github.com/eslint/eslint/commit/0f4bd257a67a082b756de746d9e0c4842ab764ca )
ci: run Discord alert for ecosystem test failures
([#​20873](https://redirect.github.com/eslint/eslint/issues/20873 ))
(Copilot)
</details>
<details>
<summary>sveltejs/prettier-plugin-svelte
(prettier-plugin-svelte)</summary>
###
[`v4.1.0`](https://redirect.github.com/sveltejs/prettier-plugin-svelte/blob/HEAD/CHANGELOG.md#410 )
[Compare
Source](https://redirect.github.com/sveltejs/prettier-plugin-svelte/compare/prettier-plugin-svelte@4.0.1...prettier-plugin-svelte@4.1.0 )
##### Minor Changes
- feat: support Svelte 5 declaration tags
([#​533](https://redirect.github.com/sveltejs/prettier-plugin-svelte/pull/533 ))
</details>
<details>
<summary>sveltejs/svelte (svelte)</summary>
###
[`v5.56.1`](https://redirect.github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5561 )
[Compare
Source](https://redirect.github.com/sveltejs/svelte/compare/svelte@5.56.0...svelte@5.56.1 )
##### Patch Changes
- fix: error at compile time on duplicate snippet/declaration tag
definitions
([#​18351](https://redirect.github.com/sveltejs/svelte/pull/18351 ))
- fix: parse declaration tag contents more robustly
([#​18353](https://redirect.github.com/sveltejs/svelte/pull/18353 ))
- fix: correctly transform references to earlier declarators in a
declaration tag (e.g. `{let a = $state(0), b = $derived(a * 2)}`)
([#​18348](https://redirect.github.com/sveltejs/svelte/pull/18348 ))
- fix: avoid spurious `state_referenced_locally` warnings for `$derived`
declarations in declaration tags
([#​18348](https://redirect.github.com/sveltejs/svelte/pull/18348 ))
- fix: tolerate whitespace before `let`/`const` in declaration tags
([#​18348](https://redirect.github.com/sveltejs/svelte/pull/18348 ))
- fix: prevent infinite loop when a tag's expression ends with a
trailing `/` at the end of the input
([#​18350](https://redirect.github.com/sveltejs/svelte/pull/18350 ))
- fix: more robust parsing of declaration tags with regards to `type`
([#​18330](https://redirect.github.com/sveltejs/svelte/pull/18330 ))
- fix: preserve newlines in spread input values when the `type`
attribute is applied after `value`
([#​18345](https://redirect.github.com/sveltejs/svelte/pull/18345 ))
- fix: update `SvelteURLSearchParams` when setting duplicate keys to the
same joined value
([#​18336](https://redirect.github.com/sveltejs/svelte/pull/18336 ))
- fix: check references for blockers on server, too
([#​18352](https://redirect.github.com/sveltejs/svelte/pull/18352 ))
###
[`v5.56.0`](https://redirect.github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5560 )
[Compare
Source](https://redirect.github.com/sveltejs/svelte/compare/svelte@5.55.10...svelte@5.56.0 )
##### Minor Changes
- feat: allow declarations in the template
([#​18282](https://redirect.github.com/sveltejs/svelte/pull/18282 ))
##### Patch Changes
- perf: use `createElement` instead of `createElementNS` for HTML
elements
([#​18262](https://redirect.github.com/sveltejs/svelte/pull/18262 ))
- perf: store `current_sources` as a `Set` for O(1) membership checks
([#​18278](https://redirect.github.com/sveltejs/svelte/pull/18278 ))
- perf: deduplicate identical hoisted templates within a component
([#​18320](https://redirect.github.com/sveltejs/svelte/pull/18320 ))
- perf: hoist `rest_props` exclude list as a module-scope `Set`
([#​18252](https://redirect.github.com/sveltejs/svelte/pull/18252 ))
</details>
<details>
<summary>privatenumber/tsx (tsx)</summary>
###
[`v4.22.4`](https://redirect.github.com/privatenumber/tsx/releases/tag/v4.22.4 )
[Compare
Source](https://redirect.github.com/privatenumber/tsx/compare/v4.22.3...v4.22.4 )
##### Bug Fixes
- resolve CommonJS directory requires inside dependencies
([#​803](https://redirect.github.com/privatenumber/tsx/issues/803 ))
([1ce8463](https://redirect.github.com/privatenumber/tsx/commit/1ce846335b7c445a3328c7d27f06424949356d97 ))
***
This release is also available on:
- [npm package (@​latest
dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.4 )
</details>
<details>
<summary>sindresorhus/type-fest (type-fest)</summary>
###
[`v5.7.0`](https://redirect.github.com/sindresorhus/type-fest/releases/tag/v5.7.0 )
[Compare
Source](https://redirect.github.com/sindresorhus/type-fest/compare/v5.6.0...v5.7.0 )
##### New types
-
[`RemoveSuffix`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/remove-suffix.d.ts )
([#​1439](https://redirect.github.com/sindresorhus/type-fest/issues/1439 ))
[`d685b77`](https://redirect.github.com/sindresorhus/type-fest/commit/d685b77 )
-
[`UnwrapRequired`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/unwrap-required.d.ts )
([#​1410](https://redirect.github.com/sindresorhus/type-fest/issues/1410 ))
[`3bfee8e`](https://redirect.github.com/sindresorhus/type-fest/commit/3bfee8e )
##### Improvements
- `ExtendsStrict`: Add `distributiveUnions`, `strictNever` & `strictAny`
options
([#​1408](https://redirect.github.com/sindresorhus/type-fest/issues/1408 ))
[`9ea810b`](https://redirect.github.com/sindresorhus/type-fest/commit/9ea810b )
- `TupleOf`: Improve implementation
([#​1441](https://redirect.github.com/sindresorhus/type-fest/issues/1441 ))
[`391e1bb`](https://redirect.github.com/sindresorhus/type-fest/commit/391e1bb )
##### Fixes
- `RemovePrefix`: Fix: Remove incorrect optimization and always fallback
to `string` for non-literal prefixes
([#​1438](https://redirect.github.com/sindresorhus/type-fest/issues/1438 ))
[`9f35398`](https://redirect.github.com/sindresorhus/type-fest/commit/9f35398 )
- `DelimiterCase`: Fix behavior with non-single character delimiters
([#​1424](https://redirect.github.com/sindresorhus/type-fest/issues/1424 ))
[`9b36590`](https://redirect.github.com/sindresorhus/type-fest/commit/9b36590 )
- `RemovePrefix`: Fix `any` prefix behavior in non-strict mode
([#​1423](https://redirect.github.com/sindresorhus/type-fest/issues/1423 ))
[`c49cb75`](https://redirect.github.com/sindresorhus/type-fest/commit/c49cb75 )
- `DelimiterCase`: Fix behavior with union delimiters
([#​1422](https://redirect.github.com/sindresorhus/type-fest/issues/1422 ))
[`96172c0`](https://redirect.github.com/sindresorhus/type-fest/commit/96172c0 )
- `ApplyDefaultOptions`: Fix behavior with generic instantiations &
`any` values
([#​1411](https://redirect.github.com/sindresorhus/type-fest/issues/1411 ))
[`c46020d`](https://redirect.github.com/sindresorhus/type-fest/commit/c46020d )
- `ApplyDefaultOptions`: Fix behavior with explicit `undefined`
([#​1407](https://redirect.github.com/sindresorhus/type-fest/issues/1407 ))
[`60bfd3f`](https://redirect.github.com/sindresorhus/type-fest/commit/60bfd3f )
***
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron Clark <cameron.clark@hey.com >
2026-06-07 17:44:09 +01:00
oxc-guard[bot]
50baca037c
chore(submodules): update submodule SHAs to latest commits ( #22721 )
...
Updates submodule dependencies to their latest commits.
## Changes
- test262: `78fc3f8` → `7e115f4`
- babel: `3d34928` → `d9fe348`
- TypeScript: `f350b52` → `e5509e2`
- estree-conformance: `576e7d8` → `faf089d`
This PR is automatically generated by the [update_submodules
workflow](https://github.com/oxc-project/oxc/blob/main/.github/workflows/update_submodules.yml ).
Co-authored-by: oxc-guard[bot] <276638029+oxc-guard[bot]@users.noreply.github.com>
2026-05-25 22:16:39 +08:00
renovate
aa3de22643
chore(deps): update npm packages ( #22699 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Adoption](https://docs.renovatebot.com/merge-confidence/ ) | [Passing](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser )) | [`8.59.3` → `8.59.4`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.59.3/8.59.4 ) |  |  |  |  |
| [@typescript-eslint/scope-manager](https://typescript-eslint.io/packages/scope-manager ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/scope-manager )) | [`8.59.3` → `8.59.4`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fscope-manager/8.59.3/8.59.4 ) |  |  |  |  |
| [@typescript-eslint/visitor-keys](https://typescript-eslint.io ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/visitor-keys )) | [`8.59.3` → `8.59.4`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fvisitor-keys/8.59.3/8.59.4 ) |  |  |  |  |
| [@vitest/browser](https://vitest.dev/guide/browser/ ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser )) | [`4.1.6` → `4.1.7`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.1.6/4.1.7 ) |  |  |  |  |
| [@vitest/browser-playwright](https://vitest.dev/config/browser/playwright ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright )) | [`4.1.6` → `4.1.7`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.1.6/4.1.7 ) |  |  |  |  |
| [eslint](https://eslint.org ) ([source](https://redirect.github.com/eslint/eslint )) | [`10.3.0` → `10.4.0`](https://renovatebot.com/diffs/npm/eslint/10.3.0/10.4.0 ) |  |  |  |  |
| [svelte](https://svelte.dev ) ([source](https://redirect.github.com/sveltejs/svelte/tree/HEAD/packages/svelte )) | [`5.55.7` → `5.55.9`](https://renovatebot.com/diffs/npm/svelte/5.55.7/5.55.9 ) |  |  |  |  |
| [tsx](https://tsx.hirok.io ) ([source](https://redirect.github.com/privatenumber/tsx )) | [`4.22.0` → `4.22.3`](https://renovatebot.com/diffs/npm/tsx/4.22.0/4.22.3 ) |  |  |  |  |
| [vitest](https://vitest.dev ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest )) | [`4.1.6` → `4.1.7`](https://renovatebot.com/diffs/npm/vitest/4.1.6/4.1.7 ) |  |  |  |  |
---
### Release Notes
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary>
### [`v8.59.4`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8594-2026-05-18 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.59.3...v8.59.4 )
This was a version bump only for parser to align it with other projects, there were no code changes.
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/scope-manager)</summary>
### [`v8.59.4`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/scope-manager/CHANGELOG.md#8594-2026-05-18 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.59.3...v8.59.4 )
This was a version bump only for scope-manager to align it with other projects, there were no code changes.
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>typescript-eslint/typescript-eslint (@​typescript-eslint/visitor-keys)</summary>
### [`v8.59.4`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/visitor-keys/CHANGELOG.md#8594-2026-05-18 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.59.3...v8.59.4 )
This was a version bump only for visitor-keys to align it with other projects, there were no code changes.
See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4 ) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning ) and [releases](https://typescript-eslint.io/users/releases ) on our website.
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
### [`v4.1.7`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.7 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7 )
##### 🐞 Bug Fixes
- **runner**: Limit concurrency per task branch in addition to per leaf callbacks (backport) - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [#​10384](https://redirect.github.com/vitest-dev/vitest/issues/10384 ) [<samp>(4f0f2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4f0f2a1ee )
##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7 )
</details>
<details>
<summary>eslint/eslint (eslint)</summary>
### [`v10.4.0`](https://redirect.github.com/eslint/eslint/compare/v10.3.0...452c4010c07dc2e36fe6ec6a8c48298878e86887 )
[Compare Source](https://redirect.github.com/eslint/eslint/compare/v10.3.0...v10.4.0 )
</details>
<details>
<summary>sveltejs/svelte (svelte)</summary>
### [`v5.55.9`](https://redirect.github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5559 )
[Compare Source](https://redirect.github.com/sveltejs/svelte/compare/svelte@5.55.8...svelte@5.55.9 )
##### Patch Changes
- fix: don't unset batch when calling `{#await ...}` promise ([#​18243](https://redirect.github.com/sveltejs/svelte/pull/18243 ))
- fix: promise-ify `{#await await ...}` expressions on the server and correctly hydrate them on the client ([#​18243](https://redirect.github.com/sveltejs/svelte/pull/18243 ))
- fix: deduplicate dependencies that are added outside the init/update cycle ([#​18243](https://redirect.github.com/sveltejs/svelte/pull/18243 ))
- fix: avoid false-positive batch invariant error ([#​18246](https://redirect.github.com/sveltejs/svelte/pull/18246 ))
- fix: inline primitive constants in attribute values during SSR ([#​18232](https://redirect.github.com/sveltejs/svelte/pull/18232 ))
### [`v5.55.8`](https://redirect.github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5558 )
[Compare Source](https://redirect.github.com/sveltejs/svelte/compare/svelte@5.55.7...svelte@5.55.8 )
##### Patch Changes
- fix(print): handle `svelte:body` and fix keyframe percentage double-printing ([#​18234](https://redirect.github.com/sveltejs/svelte/pull/18234 ))
- fix: execute uninitialized derived even if it's destroyed ([#​18228](https://redirect.github.com/sveltejs/svelte/pull/18228 ))
- fix: use named symbols everywhere ([#​18238](https://redirect.github.com/sveltejs/svelte/pull/18238 ))
- fix: don't run teardown effects when deriveds are unfreezed ([#​18227](https://redirect.github.com/sveltejs/svelte/pull/18227 ))
- fix: unset context synchronously in `run` ([#​18236](https://redirect.github.com/sveltejs/svelte/pull/18236 ))
</details>
<details>
<summary>privatenumber/tsx (tsx)</summary>
### [`v4.22.3`](https://redirect.github.com/privatenumber/tsx/compare/v4.22.2...dce02fc3b8b64a58d24560714902b16f89332f1f )
[Compare Source](https://redirect.github.com/privatenumber/tsx/compare/v4.22.2...v4.22.3 )
### [`v4.22.2`](https://redirect.github.com/privatenumber/tsx/compare/v4.22.1...v4.22.2 )
[Compare Source](https://redirect.github.com/privatenumber/tsx/compare/v4.22.1...v4.22.2 )
### [`v4.22.1`](https://redirect.github.com/privatenumber/tsx/compare/v4.22.0...6979f28810829dc79ec9baf406e162a18b65ab4b )
[Compare Source](https://redirect.github.com/privatenumber/tsx/compare/v4.22.0...v4.22.1 )
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- "before 10am on monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
2026-05-25 10:22:30 +00:00
camc314
7baed9c4b7
fix(transformer/private-method): clear inherited strict flags ( #22508 )
...
Fixes private method transforms so scopes inherited from a transformed private method are converted back to sloppy mode when the surrounding scope is sloppy.
Previously we only cleared `StrictMode` on the private method function scope itself. That left child scopes, such as async/generator wrapper scopes, marked as strict even though the transformed output is no longer inside a class method. This caused semantic rebuild mismatches across Babel and Test262 coverage.
Nested classes are still left strict, since class bodies are always strict mode.
2026-05-25 09:39:48 +00:00