Commit Graph

811 Commits

Author SHA1 Message Date
Boshen c588bc59ac release(crates): oxc v0.98.0 (#15771)
### 💥 BREAKING CHANGES

- ea51b0b napi: [**BREAKING**] Standardize function naming with sync
suffixes (#15661) (Boshen)

### 🚀 Features

- 77efb76 parser: Improve error message for invalid switch clauses
(#15728) (sapphi-red)
- 5691727 parser: Improve `import source` `from` error message (#15727)
(sapphi-red)
- b7404bc parser: Improve error message for missing function body
(#15726) (sapphi-red)
- 71c2fb0 parser: Improve error message when JSX is found while not
enabled (#15725) (sapphi-red)
- 56e7e44 minifier: Disable removal of unnecessary `use strict`
directives for DCE (#15691) (sapphi-red)
- 8a61cfd allocator, ast: Introduce `UnstableAddress` trait (#15700)
(overlookmotel)
- f5ce55a napi: Export all options using wildcard exports (Boshen)
- 68703b9 minifier: Rotate binary expressions to remove parentheses
(#15473) (sapphi-red)

### 🐛 Bug Fixes

- c023ba6 semantic: Do not duplicate statements in temp `Vec` when
binding `TSModuleDeclaration`s (#15724) (overlookmotel)
- d60ca81 parser: Reject `import something 'source'` (#15746)
(sapphi-red)
- e0728fa ast: Exclude comment end position from `is_inside_comment`
check (#15753) (camc314)
- 9f54a36 semantic: Error on `\00` in strict mode (#15743) (sapphi-red)
- 440a977 ast: Include rest properties when using
`get_binding_identifiers` (#15710) (camc314)

### ⚡ Performance

- 1f09d3c parser: Faster checking for invalid modifiers (#15717)
(overlookmotel)
- d8d4e31 ast: Use loop instead of recursion in
`TSModuleDeclarationBody::as_module_block_mut` (#15713) (overlookmotel)

### 📚 Documentation

- e033d50 ast: Clarify behavior of
`TSModuleDeclaration::has_use_strict_directive` (#15730) (overlookmotel)
- 9eda70f allocator: Improve docs for `Address` methods (#15697)
(overlookmotel)
2025-11-17 12:38:34 +00:00
overlookmotel 5df7999791 test(napi/parser): use oxlint-disable comment over eslint-disable (#15671)
Tiny style change. Use `// oxlint-disable-next-line` comment instead of `// eslint-disable-next-line`. Either works, but obviously Oxlint is superior. :)
2025-11-13 12:46:44 +00:00
Boshen ea51b0b5c8 feat(napi)!: standardize function naming with sync suffixes (#15661)
closes #15576

## Summary

Standardizes function naming across all NAPI packages (parser, transform, minify) with a consistent pattern:
- Async functions: `verb` (no suffix)
- Sync functions: `verbSync` (with Sync suffix)

## Changes

### Breaking Changes

**napi/parser:**
- `parseAsync` → `parse` (async)
- `parseSync` remains unchanged (sync)

**napi/transform:**
- `transformAsync` → `transform` (async)
- `transform` → `transformSync` (sync)
- `isolatedDeclaration` → `isolatedDeclarationSync` (sync)
- Added new `isolatedDeclaration` function (async)
- `moduleRunnerTransform` → `moduleRunnerTransformSync` (sync)
- Added new `moduleRunnerTransform` function (async)

**napi/minify:**
- `minify` → `minifySync` (sync)
- Added new `minify` function (async)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-13 12:28:23 +00:00
Boshen f5ce55a40a feat(napi): export all options using wildcard exports
Closes #15618

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 15:38:52 +08:00
Boshen 98585f01a1 release(crates): oxc v0.97.0 (#15582) 2025-11-11 17:18:13 +08:00
renovate[bot] 1395c67b05 chore(deps): lock file maintenance npm packages (#15232) 2025-11-05 20:49:00 +08:00
overlookmotel c82fab0787 perf(ast/estree): remove pointless assignments from raw transfer deserializers (#15305)
Small perf optimization to raw transfer. Shorten deserializers by not assigning `null` to fields which were already initialized as `null`.
2025-11-05 11:22:52 +00:00
overlookmotel 7f079abf9d fix(ast/estree): fix raw transfer deserializer for AssignmentTargetPropertyIdentifier (#15304)
1. Tiny bug fix - make sure `range` arrays for `key` and `value` are independent objects, so mutating one doesn't mutate the other.
2. Perf optimization - remove usage of `...` spread, which is expensive.
2025-11-05 11:22:52 +00:00
overlookmotel a7cf8560ec refactor(ast/estree): shorten raw transfer deserializer for AssignmentTargetPropertyIdentifier (#15303)
There are no `deserialize` calls while constructing `value` here, so it's pointless to assign to `parent` and then set it back again. Remove this pointless code, and shorten the deserializer a little.
2025-11-05 11:22:51 +00:00
sapphi-red 682dca2ea7 feat(parser): add more helps to parser errors (#15186)
Added more helps to parser errors to make it easier to understand how the error can be resolved.
2025-10-31 07:10:45 +00:00
Boshen 14fe64a935 release(crates): v0.96.0 (#15115) 2025-10-30 15:43:06 +08:00
camc314 597340e4c1 fix(ast-tools): use oxfmt to format generated code (#15064)
https://github.com/oxc-project/oxc/commit/a8e5181ab73e3cee5904af3acc6c5927def9d500#diff-dc1a48ba0d3878494d547c7c5fb975720dddac4966c510f9babec50161110538 broke ast tools generation.

This PR uses oxfmt to format the generated ast files
2025-10-29 11:51:43 +00:00
leaysgur a8e5181ab7 chore(infra): dogfooding oxfmt (#14979)
Fixes #14803

- Added `oxfmt` and `oxfmtrc.jsonc`
- Remove `dprint` plugin and useless ignore paths
- Apply `dprint` again
- Apply `oxfmt`
2025-10-28 01:16:46 +00:00
renovate 2314a2714f chore(deps): lock file maintenance npm packages (#14957)
This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|---|---|
|  |  | lockFileMaintenance | All locks refreshed |  |  |  |  |
| [@babel/core](https://babel.dev/docs/en/next/babel-core) ([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-core)) | devDependencies | patch | [`7.28.4` -> `7.28.5`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.28.4/7.28.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fcore/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fcore/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fcore/7.28.4/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fcore/7.28.4/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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)) | devDependencies | minor | [`7.27.1` -> `7.28.5`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-exponentiation-operator/7.27.1/7.28.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-exponentiation-operator/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-exponentiation-operator/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-exponentiation-operator/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-exponentiation-operator/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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)) | devDependencies | minor | [`7.27.1` -> `7.28.5`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-logical-assignment-operators/7.27.1/7.28.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-logical-assignment-operators/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-logical-assignment-operators/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-logical-assignment-operators/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-logical-assignment-operators/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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)) | devDependencies | minor | [`7.27.1` -> `7.28.5`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-optional-chaining/7.27.1/7.28.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-optional-chaining/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-optional-chaining/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-optional-chaining/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-optional-chaining/7.27.1/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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)) | dependencies | patch | [`7.28.0` -> `7.28.5`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-typescript/7.28.0/7.28.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-typescript/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-typescript/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-typescript/7.28.0/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-typescript/7.28.0/7.28.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nestjs/common](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common)) | dependencies | patch | [`11.1.6` -> `11.1.7`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.1.6/11.1.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nestjs/core](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core)) | dependencies | patch | [`11.1.6` -> `11.1.7`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.1.6/11.1.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nestjs/platform-express](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-express)) | dependencies | patch | [`11.1.6` -> `11.1.7`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/11.1.6/11.1.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nestjs/testing](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing)) | dependencies | patch | [`11.1.6` -> `11.1.7`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.1.6/11.1.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/11.1.6/11.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | pnpm.catalog.default | patch | [`3.4.0` -> `3.4.1`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.4.0/3.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.4.0/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.4.0/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@typescript-eslint/visitor-keys](https://typescript-eslint.io) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/visitor-keys)) | devDependencies | patch | [`8.46.1` -> `8.46.2`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fvisitor-keys/8.46.1/8.46.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fvisitor-keys/8.46.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fvisitor-keys/8.46.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fvisitor-keys/8.46.1/8.46.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fvisitor-keys/8.46.1/8.46.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | devDependencies | patch | [`4.0.1` -> `4.0.3`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/4.0.1/4.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/browser-playwright](https://vitest.dev/guide/browser/playwright) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright)) | devDependencies | patch | [`4.0.1` -> `4.0.3`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser-playwright/4.0.1/4.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser-playwright/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser-playwright/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser-playwright/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser-playwright/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [alpinejs](https://alpinejs.dev) ([source](https://redirect.github.com/alpinejs/alpine/tree/HEAD/packages/alpinejs)) | devDependencies | patch | [`3.15.0` -> `3.15.1`](https://renovatebot.com/diffs/npm/alpinejs/3.15.0/3.15.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/alpinejs/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/alpinejs/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/alpinejs/3.15.0/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/alpinejs/3.15.0/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [antd](https://ant.design) ([source](https://redirect.github.com/ant-design/ant-design)) | devDependencies | patch | [`5.27.5` -> `5.27.6`](https://renovatebot.com/diffs/npm/antd/5.27.5/5.27.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/antd/5.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/antd/5.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/antd/5.27.5/5.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/antd/5.27.5/5.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [emnapi](https://redirect.github.com/toyobayashi/emnapi) | devDependencies | minor | [`1.5.0` -> `1.6.0`](https://renovatebot.com/diffs/npm/emnapi/1.5.0/1.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/emnapi/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/emnapi/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/emnapi/1.5.0/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/emnapi/1.5.0/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [es-toolkit](https://es-toolkit.dev) ([source](https://redirect.github.com/toss/es-toolkit)) | devDependencies | minor | [`1.40.0` -> `1.41.0`](https://renovatebot.com/diffs/npm/es-toolkit/1.40.0/1.41.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/es-toolkit/1.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/es-toolkit/1.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/es-toolkit/1.40.0/1.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/es-toolkit/1.40.0/1.41.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | devDependencies | patch | [`20.0.7` -> `20.0.8`](https://renovatebot.com/diffs/npm/happy-dom/20.0.7/20.0.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/20.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/20.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/20.0.7/20.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/20.0.7/20.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [immer](https://redirect.github.com/immerjs/immer) | devDependencies | minor | [`10.1.3` -> `10.2.0`](https://renovatebot.com/diffs/npm/immer/10.1.3/10.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/immer/10.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/immer/10.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/immer/10.1.3/10.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/immer/10.1.3/10.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | packageManager | minor | [`10.18.3` -> `10.19.0`](https://renovatebot.com/diffs/npm/pnpm/10.18.3/10.19.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.18.3/10.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.18.3/10.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [tsdown](https://redirect.github.com/rolldown/tsdown) | devDependencies | patch | [`0.15.8` -> `0.15.10`](https://renovatebot.com/diffs/npm/tsdown/0.15.8/0.15.10) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tsdown/0.15.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsdown/0.15.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsdown/0.15.8/0.15.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsdown/0.15.8/0.15.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://vitest.dev) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | patch | [`4.0.1` -> `4.0.3`](https://renovatebot.com/diffs/npm/vitest/4.0.1/4.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [publint](https://publint.dev) ([source](https://redirect.github.com/publint/publint/tree/HEAD/packages/publint)) | pnpm.catalog.default | patch | [`0.3.14` -> `0.3.15`](https://renovatebot.com/diffs/npm/publint/0.3.14/0.3.15) | [![age](https://developer.mend.io/api/mc/badges/age/npm/publint/0.3.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/publint/0.3.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/publint/0.3.14/0.3.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/publint/0.3.14/0.3.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://vitest.dev) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | pnpm.catalog.default | patch | [`4.0.1` -> `4.0.3`](https://renovatebot.com/diffs/npm/vitest/4.0.1/4.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/4.0.1/4.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [rolldown](https://rolldown.rs/) ([source](https://redirect.github.com/rolldown/rolldown/tree/HEAD/packages/rolldown)) | devDependencies | patch | [`1.0.0-beta.43` -> `1.0.0-beta.44`](https://renovatebot.com/diffs/npm/rolldown/1.0.0-beta.43/1.0.0-beta.44) | [![age](https://developer.mend.io/api/mc/badges/age/npm/rolldown/1.0.0-beta.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rolldown/1.0.0-beta.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rolldown/1.0.0-beta.43/1.0.0-beta.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rolldown/1.0.0-beta.43/1.0.0-beta.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Release Notes

<details>
<summary>babel/babel (@&#8203;babel/core)</summary>

### [`v7.28.5`](https://redirect.github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7285-2025-10-23)

[Compare Source](https://redirect.github.com/babel/babel/compare/v7.28.4...v7.28.5)

##### 👓 Spec Compliance

- `babel-parser`
  - [#&#8203;17446](https://redirect.github.com/babel/babel/pull/17446) Allow `Runtime Errors for Function Call Assignment Targets` ([@&#8203;liuxingbaoyu](https://redirect.github.com/liuxingbaoyu))
- `babel-helper-validator-identifier`
  - [#&#8203;17501](https://redirect.github.com/babel/babel/pull/17501) fix: update identifier to unicode 17 ([@&#8203;fisker](https://redirect.github.com/fisker))

##### 🐛 Bug Fix

- `babel-plugin-proposal-destructuring-private`
  - [#&#8203;17534](https://redirect.github.com/babel/babel/pull/17534) Allow mixing private destructuring and rest ([@&#8203;CO0Ki3](https://redirect.github.com/CO0Ki3))
- `babel-parser`
  - [#&#8203;17521](https://redirect.github.com/babel/babel/pull/17521) Improve `@babel/parser` error typing ([@&#8203;JLHwung](https://redirect.github.com/JLHwung))
  - [#&#8203;17491](https://redirect.github.com/babel/babel/pull/17491) fix: improve ts-only declaration parsing ([@&#8203;JLHwung](https://redirect.github.com/JLHwung))
- `babel-plugin-proposal-discard-binding`, `babel-plugin-transform-destructuring`
  - [#&#8203;17519](https://redirect.github.com/babel/babel/pull/17519) fix: `rest` correctly returns plain array ([@&#8203;liuxingbaoyu](https://redirect.github.com/liuxingbaoyu))
- `babel-helper-create-class-features-plugin`, `babel-helper-member-expression-to-functions`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-optional-chaining`, `babel-traverse`, `babel-types`
  - [#&#8203;17503](https://redirect.github.com/babel/babel/pull/17503) Fix `JSXIdentifier` handling in `isReferencedIdentifier` ([@&#8203;JLHwung](https://redirect.github.com/JLHwung))
- `babel-traverse`
  - [#&#8203;17504](https://redirect.github.com/babel/babel/pull/17504) fix: ensure scope.push register in anonymous fn ([@&#8203;JLHwung](https://redirect.github.com/JLHwung))

##### 🏠 Internal

- `babel-types`
  - [#&#8203;17494](https://redirect.github.com/babel/babel/pull/17494) Type checking babel-types scripts ([@&#8203;JLHwung](https://redirect.github.com/JLHwung))

##### :running\_woman: Performance

- `babel-core`
  - [#&#8203;17490](https://redirect.github.com/babel/babel/pull/17490) Faster finding of locations in `buildCodeFrameError` ([@&#8203;liuxingbaoyu](https://redirect.github.com/liuxingbaoyu))

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

### [`v11.1.7`](https://redirect.github.com/nestjs/nest/compare/v11.1.6...ee1b3475551e9173b51381211f058298be504a6a)

[Compare Source](https://redirect.github.com/nestjs/nest/compare/v11.1.6...v11.1.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

### [`v11.1.7`](https://redirect.github.com/nestjs/nest/compare/v11.1.6...ee1b3475551e9173b51381211f058298be504a6a)

[Compare Source](https://redirect.github.com/nestjs/nest/compare/v11.1.6...v11.1.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-express)</summary>

### [`v11.1.7`](https://redirect.github.com/nestjs/nest/compare/v11.1.6...ee1b3475551e9173b51381211f058298be504a6a)

[Compare Source](https://redirect.github.com/nestjs/nest/compare/v11.1.6...v11.1.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

### [`v11.1.7`](https://redirect.github.com/nestjs/nest/compare/v11.1.6...ee1b3475551e9173b51381211f058298be504a6a)

[Compare Source](https://redirect.github.com/nestjs/nest/compare/v11.1.6...v11.1.7)

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.4.1`](https://redirect.github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.4.1)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.4.0...@napi-rs/cli@3.4.1)

##### Bug Fixes

- **cli:** remove createRequire in cjs binding ([#&#8203;2976](https://redirect.github.com/napi-rs/napi-rs/issues/2976)) ([c388c12](https://redirect.github.com/napi-rs/napi-rs/commit/c388c120cfefbe40b16176615840203e3e1c6e75))

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/visitor-keys)</summary>

### [`v8.46.2`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/visitor-keys/CHANGELOG.md#8462-2025-10-20)

[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.46.1...v8.46.2)

This was a version bump only for visitor-keys to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v4.0.3`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.0.3)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3)

#####    🐞 Bug Fixes

- Preserve reporter options from config when CLI reporters override them  -  by [@&#8203;Copilot](https://redirect.github.com/Copilot) and **sheremet-va** in [#&#8203;8794](https://redirect.github.com/vitest-dev/vitest/issues/8794) [<samp>(15552)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/155521a85)
- **browser**: More stable in-source testing validation  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8793](https://redirect.github.com/vitest-dev/vitest/issues/8793) [<samp>(62297)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/622977e61)
- **happy-dom**: Support fetch globals  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8791](https://redirect.github.com/vitest-dev/vitest/issues/8791) [<samp>(0fb74)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb74bd3b)
- **init**: Use correct jsx/tsx extension  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8792](https://redirect.github.com/vitest-dev/vitest/issues/8792) [<samp>(abc04)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/abc046f95)

#####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3)

### [`v4.0.2`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.0.2)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2)

#####    🐞 Bug Fixes

- **browser**:
  - Don't print the deprecation notice in node\_modules  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8779](https://redirect.github.com/vitest-dev/vitest/issues/8779) [<samp>(588f7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/588f76858)
- **pool**:
  - Assign envs before running tests to keep in sync with process.env  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8769](https://redirect.github.com/vitest-dev/vitest/issues/8769) [<samp>(26ce8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/26ce88db6)
- **spy**:
  - Properly inherit implementation's `length`  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8778](https://redirect.github.com/vitest-dev/vitest/issues/8778) [<samp>(d4c2b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d4c2b280b)
  - Reset spies if both `restoreMocks` and `mockReset` are set in the config  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [#&#8203;8781](https://redirect.github.com/vitest-dev/vitest/issues/8781) [<samp>(2eedb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2eedbce76)

#####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2)

</details>

<details>
<summary>alpinejs/alpine (alpinejs)</summary>

### [`v3.15.1`](https://redirect.github.com/alpinejs/alpine/releases/tag/v3.15.1)

[Compare Source](https://redirect.github.com/alpinejs/alpine/compare/v3.15.0...v3.15.1)

#### Changed

- `x-sort` improvements
- CSP build `allowGlobals` now defaults to `false` instead of `true`

</details>

<details>
<summary>ant-design/ant-design (antd)</summary>

### [`v5.27.6`](https://redirect.github.com/ant-design/ant-design/releases/tag/5.27.6)

[Compare Source](https://redirect.github.com/ant-design/ant-design/compare/5.27.5...5.27.6)

- Table
  - 🐞 Fix Table `pagination.align` is not working. [#&#8203;55316](https://redirect.github.com/ant-design/ant-design/pull/55316)
  - 🛠 Add Table missing useMemo capability to spinProps.  [#&#8203;55344](https://redirect.github.com/ant-design/ant-design/pull/55344)
- 🛠 Refactor Modal useMemo of ConfirmDialog to resolve useMemo invalid where Object.values ​​generates a new array. [#&#8203;55376](https://redirect.github.com/ant-design/ant-design/pull/55376)
- TypeScript
  - 🤖 Add ConfigProvider the `Window` type definition in `getTargetContainer` of . [#&#8203;55313](https://redirect.github.com/ant-design/ant-design/pull/55313)
  - 🤖 Add ConfigProvider the `ShadowRoot` type definition in `getTargetContainer` and `getPopupContainer`. [#&#8203;55278](https://redirect.github.com/ant-design/ant-design/pull/55278) [@&#8203;leshalv](https://redirect.github.com/leshalv)
  - 🤖 Improve Modal type definition. [#&#8203;55371](https://redirect.github.com/ant-design/ant-design/pull/55371)

***

- Table
  - 🐞 修复 Table `pagination.align` 属性失效的问题。[#&#8203;55316](https://redirect.github.com/ant-design/ant-design/pull/55316)
  - 🛠 补充 Table 中 spinProps 的 useMemo 缺失能力。[#&#8203;55344](https://redirect.github.com/ant-design/ant-design/pull/55344)
- 🛠 重构 Modal 中 ConfirmDialog 的 useMemo,以解决 Object.values 生成新数组导致 useMemo 失效的问题。[#&#8203;55376](https://redirect.github.com/ant-design/ant-design/pull/55376)
- TypeScript
  - 🤖 补充 ConfigProvider `getTargetContainer` 中 `Window` 类型定义。[#&#8203;55313](https://redirect.github.com/ant-design/ant-design/pull/55313)
  - 🤖 补充 ConfigProvider 的 `getTargetContainer` 和 `getPopupContainer` 中 `ShadowRoot` 类型定义。[#&#8203;55278](https://redirect.github.com/ant-design/ant-design/pull/55278) [@&#8203;leshalv](https://redirect.github.com/leshalv)
  - 🤖 优化 Modal 中类型定义。[#&#8203;55371](https://redirect.github.com/ant-design/ant-design/pull/55371)

</details>

<details>
<summary>toyobayashi/emnapi (emnapi)</summary>

### [`v1.6.0`](https://redirect.github.com/toyobayashi/emnapi/releases/tag/v1.6.0)

[Compare Source](https://redirect.github.com/toyobayashi/emnapi/compare/v1.5.0...v1.6.0)

#### What's Changed

- feat: added SharedArrayBuffer api by [@&#8203;toyobayashi](https://redirect.github.com/toyobayashi) in [#&#8203;171](https://redirect.github.com/toyobayashi/emnapi/pull/171)
- feat: make napi\_delete\_reference use node\_api\_basic\_env by [@&#8203;toyobayashi](https://redirect.github.com/toyobayashi)  in [#&#8203;170](https://redirect.github.com/toyobayashi/emnapi/pull/170)
- ci: migrate to npm trusted publishing by [@&#8203;toyobayashi](https://redirect.github.com/toyobayashi)  in [#&#8203;168](https://redirect.github.com/toyobayashi/emnapi/pull/168)

**Full Changelog**: <https://github.com/toyobayashi/emnapi/compare/v1.5.0...v1.6.0>

</details>

<details>
<summary>toss/es-toolkit (es-toolkit)</summary>

### [`v1.41.0`](https://redirect.github.com/toss/es-toolkit/blob/HEAD/CHANGELOG.md#Version-v1410)

[Compare Source](https://redirect.github.com/toss/es-toolkit/compare/v1.40.0...v1.41.0)

Released on October 24th, 2025.

- Enhanced `throttle` to preserve `this` context when called as a method.
- Added type guard support for `partition` function.
- Fixed `omit` to support runtime-determined key arrays with proper overloads.
- Fixed `defaults` in compatibility layer to properly handle undefined and null sources.
- Fixed `toSnakeCaseKeys` and `toCamelCaseKeys` to correctly return types for non-plain objects.
- Fixed `toMerged` and `mergeWith` to properly handle shared objects in merge logic.
- Fixed `compat/union` to support array-like objects.
- Fixed `compat/updateWith` to use `get` for value retrieval in updater function.
- Fixed circular import between `isMatch` and `isMatchWith`.
- Fixed `find` and `findLast` by simplifying logic and removing unnecessary checks.
- Fixed `takeRight` by improving test coverage and removing redundant checks.
- Fixed `curry` and `curryRight` by removing unnecessary type assertions.
- Fixed `isEqualWith` and `mapKeys` by removing unnecessary type assertions.
- Improved performance for `meanBy` by removing intermediate array creation.
- Updated build system to use UMD format instead of IIFE for browser builds.
- Fixed numerous documentation examples across compat modules.
- Improved test coverage with additional test cases for edge cases and compatibility.

We sincerely thank [@&#8203;the5thbeatle](https://redirect.github.com/the5thbeatle), [@&#8203;wo-o29](https://redirect.github.com/wo-o29), [@&#8203;hwibaski](https://redirect.github.com/hwibaski), [@&#8203;manudeli](https://redirect.github.com/manudeli), [@&#8203;raon0211](https://redirect.github.com/raon0211), [@&#8203;dayongkr](https://redirect.github.com/dayongkr), [@&#8203;D-Sketon](https://redirect.github.com/D-Sketon), [@&#8203;yoouungyoung](https://redirect.github.com/yoouungyoung), [@&#8203;Dohun-choi](https://redirect.github.com/Dohun-choi), [@&#8203;sukvvon](https://redirect.github.com/sukvvon), [@&#8203;zoulou00](https://redirect.github.com/zoulou00), and [@&#8203;sen2y](https://redirect.github.com/sen2y) for their contributions. We appreciate your great efforts!

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v20.0.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v20.0.8)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v20.0.7...v20.0.8)

##### :construction\_worker\_man: Patch fixes

- Fixes issue where `previousSibling()` and `nextSibling()` didn't work in `HTMLSelectElement`  and `HTMLFormElement` - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1939](https://redirect.github.com/capricorn86/happy-dom/issues/1939)
- Fixes issue where parsing an item without a permitted parent (e.g. `<tr>`) should be valid inside a `<template>` element - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1939](https://redirect.github.com/capricorn86/happy-dom/issues/1939)

</details>

<details>
<summary>immerjs/immer (immer)</summary>

### [`v10.2.0`](https://redirect.github.com/immerjs/immer/releases/tag/v10.2.0)

[Compare Source](https://redirect.github.com/immerjs/immer/compare/v10.1.3...v10.2.0)

##### Features

- Optimize Immer performance where possible, introduce `setUseStrictIteration` ([#&#8203;1164](https://redirect.github.com/immerjs/immer/issues/1164)) ([e1996ce](https://redirect.github.com/immerjs/immer/commit/e1996ceb8a3a180c565b7304a4f3c4ce3b1a08ff))

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

### [`v10.19.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10190)

[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v10.18.3...v10.19.0)

##### Minor Changes

- You can now allow specific versions of dependencies to run postinstall scripts. `onlyBuiltDependencies` now accepts package names with lists of trusted versions. For example:

  ```yaml
  onlyBuiltDependencies:
    - nx@21.6.4 || 21.6.5
    - esbuild@0.25.1
  ```

  Related PR: [#&#8203;10104](https://redirect.github.com/pnpm/pnpm/pull/10104).

- Added support for exact versions in `minimumReleaseAgeExclude` [#&#8203;9985](https://redirect.github.com/pnpm/pnpm/issues/9985).

  You can now list one or more specific versions that pnpm should allow to install, even if those versions don’t satisfy the maturity requirement set by `minimumReleaseAge`. For example:

  ```yaml
  minimumReleaseAge: 1440
  minimumReleaseAgeExclude:
    - nx@21.6.5
    - webpack@4.47.0 || 5.102.1
  ```

</details>

<details>
<summary>rolldown/tsdown (tsdown)</summary>

### [`v0.15.10`](https://redirect.github.com/rolldown/tsdown/releases/tag/v0.15.10)

[Compare Source](https://redirect.github.com/rolldown/tsdown/compare/v0.15.9...v0.15.10)

#####    🚀 Features

- Upgrade rolldown-plugin-dts  -  by [@&#8203;sxzz](https://redirect.github.com/sxzz) [<samp>(e3951)</samp>](https://redirect.github.com/rolldown/tsdown/commit/e395162)
- Add `unrun` as a config loader  -  by [@&#8203;Gugustinette](https://redirect.github.com/Gugustinette) and [@&#8203;sxzz](https://redirect.github.com/sxzz) in [#&#8203;563](https://redirect.github.com/rolldown/tsdown/issues/563) [<samp>(57132)</samp>](https://redirect.github.com/rolldown/tsdown/commit/57132ea)

#####    🐞 Bug Fixes

- **exports**: Correctly generate export paths for nested index files  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [#&#8203;559](https://redirect.github.com/rolldown/tsdown/issues/559) [<samp>(ff946)</samp>](https://redirect.github.com/rolldown/tsdown/commit/ff946bc)

#####     [View changes on GitHub](https://redirect.github.com/rolldown/tsdown/compare/v0.15.9...v0.15.10)

### [`v0.15.9`](https://redirect.github.com/rolldown/tsdown/releases/tag/v0.15.9)

[Compare Source](https://redirect.github.com/rolldown/tsdown/compare/v0.15.8...v0.15.9)

#####    🐞 Bug Fixes

- Update rolldown and migrate from the deprecated API  -  by [@&#8203;ocavue](https://redirect.github.com/ocavue) in [#&#8203;552](https://redirect.github.com/rolldown/tsdown/issues/552) [<samp>(0aedb)</samp>](https://redirect.github.com/rolldown/tsdown/commit/0aedb13)
- Pin rolldown version  -  by [@&#8203;ocavue](https://redirect.github.com/ocavue) in [#&#8203;553](https://redirect.github.com/rolldown/tsdown/issues/553) [<samp>(7752e)</samp>](https://redirect.github.com/rolldown/tsdown/commit/7752efc)

#####     [View changes on GitHub](https://redirect.github.com/rolldown/tsdown/compare/v0.15.8...v0.15.9)

</details>

<details>
<summary>publint/publint (publint)</summary>

### [`v0.3.15`](https://redirect.github.com/publint/publint/blob/HEAD/packages/publint/CHANGELOG.md#0315)

[Compare Source](https://redirect.github.com/publint/publint/compare/publint@0.3.14...publint@0.3.15)

##### Patch Changes

- Skip file existence checks when crawling subpath imports as they may be dev-only and not used after bundling or publish. This check may be improved in the future when publint can scan for files to see if the subpath imports are used. ([`0d72997`](https://redirect.github.com/publint/publint/commit/0d729974120060eece8a93873e7e5a24f909338e))

- Handle `exports["default"]` and `exports['default']` for `CJS_WITH_ESMODULE_DEFAULT_EXPORT` rule ([`8285f77`](https://redirect.github.com/publint/publint/commit/8285f77c939e30698bf44659aee1c76d4e2918c5))

</details>

<details>
<summary>rolldown/rolldown (rolldown)</summary>

### [`v1.0.0-beta.44`](https://redirect.github.com/rolldown/rolldown/blob/HEAD/CHANGELOG.md#100-beta44---2025-10-20)

[Compare Source](https://redirect.github.com/rolldown/rolldown/compare/v1.0.0-beta.43...v1.0.0-beta.44)

##### 💥 BREAKING CHANGES

- enable `output.minifyInternalExports` for `format: 'es'` or `minify: true` ([#&#8203;6594](https://redirect.github.com/rolldown/rolldown/issues/6594)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- node/options: remove `InputOptions.jsx`, prefer `transform.jsx` always ([#&#8203;6548](https://redirect.github.com/rolldown/rolldown/issues/6548)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)

##### 🚀 Features

- support jsx preset for `transform.jsx` ([#&#8203;6630](https://redirect.github.com/rolldown/rolldown/issues/6630)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align `inject_to_body` function ([#&#8203;6622](https://redirect.github.com/rolldown/rolldown/issues/6622)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_vite\_css\_post\_plugin: tweak `is_legacy` field ([#&#8203;6620](https://redirect.github.com/rolldown/rolldown/issues/6620)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- native-plugin: expose `viteHtmlPlugin` ([#&#8203;6609](https://redirect.github.com/rolldown/rolldown/issues/6609)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- native-plugin: expose `viteCSSPostPlugin` ([#&#8203;6606](https://redirect.github.com/rolldown/rolldown/issues/6606)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- builtin-plugin: expose `viteCSSPlugin` ([#&#8203;6605](https://redirect.github.com/rolldown/rolldown/issues/6605)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: complete plugin binding ([#&#8203;6604](https://redirect.github.com/rolldown/rolldown/issues/6604)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_css: support plugin binding ([#&#8203;6598](https://redirect.github.com/rolldown/rolldown/issues/6598)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- add TypedArray constructors to side-effect free globals ([#&#8203;6592](https://redirect.github.com/rolldown/rolldown/issues/6592)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- rolldown\_plugin\_vite\_html: align process src attr logic ([#&#8203;6572](https://redirect.github.com/rolldown/rolldown/issues/6572)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown: support `output.clearDir` to clean up `dir` before build ([#&#8203;6486](https://redirect.github.com/rolldown/rolldown/issues/6486)) by [@&#8203;aprosail](https://redirect.github.com/aprosail)
- dev: return `RolldownOutput` instead of `BindingOutputs` from `onOutput` ([#&#8203;6563](https://redirect.github.com/rolldown/rolldown/issues/6563)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- rolldown\_plugin\_vite\_html: align process srcset logic ([#&#8203;6560](https://redirect.github.com/rolldown/rolldown/issues/6560)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align process src function ([#&#8203;6559](https://redirect.github.com/rolldown/rolldown/issues/6559)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align parse secset function ([#&#8203;6558](https://redirect.github.com/rolldown/rolldown/issues/6558)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- node/options: deprecate `dropLabels` and add `transform.dropLabels` ([#&#8203;6557](https://redirect.github.com/rolldown/rolldown/issues/6557)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- node/options: deprecate `keepNames` and add `output.keepNames` ([#&#8203;6556](https://redirect.github.com/rolldown/rolldown/issues/6556)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- node/options: deprecate `profilerNames` and add `output.generatedCode.profilerNames` ([#&#8203;6555](https://redirect.github.com/rolldown/rolldown/issues/6555)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- node/options: deprecate top level `inject` and `define` and add `transform.define`, `transform.inject` ([#&#8203;6544](https://redirect.github.com/rolldown/rolldown/issues/6544)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rolldown\_plugin\_vite\_html: initialize attributes handle logic ([#&#8203;6543](https://redirect.github.com/rolldown/rolldown/issues/6543)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown: oxc v0.95.0 ([#&#8203;6541](https://redirect.github.com/rolldown/rolldown/issues/6541)) by [@&#8203;Boshen](https://redirect.github.com/Boshen)
- rolldown\_plugin\_vite\_html: align inject css logic ([#&#8203;6528](https://redirect.github.com/rolldown/rolldown/issues/6528)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align modulepreload inject logic ([#&#8203;6526](https://redirect.github.com/rolldown/rolldown/issues/6526)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align css bundle output inject logic ([#&#8203;6524](https://redirect.github.com/rolldown/rolldown/issues/6524)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: support inject\_to\_head function ([#&#8203;6522](https://redirect.github.com/rolldown/rolldown/issues/6522)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_plugin\_vite\_html: align emit and delete logic ([#&#8203;6521](https://redirect.github.com/rolldown/rolldown/issues/6521)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_vite\_html: align handle html asset url logic ([#&#8203;6518](https://redirect.github.com/rolldown/rolldown/issues/6518)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- add an example how to transform code and generate sourcemap with `experimental.nativeMagicString` ([#&#8203;6514](https://redirect.github.com/rolldown/rolldown/issues/6514)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- rolldown\_plugin\_vite\_html: align handle inline css logic ([#&#8203;6517](https://redirect.github.com/rolldown/rolldown/issues/6517)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)

##### 🐛 Bug Fixes

- native-plugin: use correct config for assetPlugin ([#&#8203;6638](https://redirect.github.com/rolldown/rolldown/issues/6638)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- no\_color not being respected on reporter ([#&#8203;6615](https://redirect.github.com/rolldown/rolldown/issues/6615)) by [@&#8203;H4ad](https://redirect.github.com/H4ad)
- improve tree shaking for JSON default imports ([#&#8203;6626](https://redirect.github.com/rolldown/rolldown/issues/6626)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- cjs treeshaking removes used code ([#&#8203;6597](https://redirect.github.com/rolldown/rolldown/issues/6597)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- plugin/vite-resolve: return `package_json_path` from resolveId hook ([#&#8203;6434](https://redirect.github.com/rolldown/rolldown/issues/6434)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- dev: `should have idx` error happens with `deferSyncScanData` + incremental rebuild ([#&#8203;6568](https://redirect.github.com/rolldown/rolldown/issues/6568)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- rolldown: sync scoping properly in pre\_process\_ecma\_ast ([#&#8203;6537](https://redirect.github.com/rolldown/rolldown/issues/6537)) by [@&#8203;Boshen](https://redirect.github.com/Boshen)
- process CJS tree shaking bailout modules before eliminating unused dynamic entries ([#&#8203;6549](https://redirect.github.com/rolldown/rolldown/issues/6549)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- rust/dev: error of `bundler.scan`doesn't get handled ([#&#8203;6547](https://redirect.github.com/rolldown/rolldown/issues/6547)) by [@&#8203;Copilot](https://redirect.github.com/Copilot)
- inline only self referenced json module properties ([#&#8203;6519](https://redirect.github.com/rolldown/rolldown/issues/6519)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- avoid processing native MagicString sourcemap when `sourcemap` is disabled ([#&#8203;6510](https://redirect.github.com/rolldown/rolldown/issues/6510)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)

##### 🚜 Refactor

- rolldown\_binding: unify `BindingAssetInlineLimit` ([#&#8203;6625](https://redirect.github.com/rolldown/rolldown/issues/6625)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rolldown\_binding: tweak `BindingAssetPluginConfig` ([#&#8203;6624](https://redirect.github.com/rolldown/rolldown/issues/6624)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- tweak `viteCSSPlugin` config ([#&#8203;6610](https://redirect.github.com/rolldown/rolldown/issues/6610)) by [@&#8203;shulaoda](https://redirect.github.com/shulaoda)
- rust/dev: remove unnecessary bundler cache management of dev engine ([#&#8203;6576](https://redirect.github.com/rolldown/rolldown/issues/6576)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust/dev: refactor `TaskInput` into enum to reduce invalid states ([#&#8203;6575](https://redirect.github.com/rolldown/rolldown/issues/6575)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- improve the error message of `ScanStageCache#merge` ([#&#8203;6564](https://redirect.github.com/rolldown/rolldown/issues/6564)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- rust/dev: use `client_id` to check if module is executed for test environment ([#&#8203;6566](https://redirect.github.com/rolldown/rolldown/issues/6566)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust/binding: mark napi object that won't be received from js side ([#&#8203;6531](https://redirect.github.com/rolldown/rolldown/issues/6531)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust/binding: mark napi object struct that won't be passed to js explicitly ([#&#8203;6525](https://redirect.github.com/rolldown/rolldown/issues/6525)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust/binding: use `&str` or `JsString` to avoid unnecessary clone ([#&#8203;6523](https://redirect.github.com/rolldown/rolldown/issues/6523)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust/binding: use `&str` to avoid unnecessary clone ([#&#8203;6520](https://redirect.github.com/rolldown/rolldown/issues/6520)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rust: replace unwrap with expect for better error handling in message sending ([#&#8203;6509](https://redirect.github.com/rolldown/rolldown/issues/6509)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)

##### 📚 Documentation

- add redirect from `/guide/in-depth/` to `/in-depth/` ([#&#8203;6554](https://redirect.github.com/rolldown/rolldown/issues/6554)) by [@&#8203;Copilot](https://redirect.github.com/Copilot)
- guide: polish notable features page ([#&#8203;6535](https://redirect.github.com/rolldown/rolldown/issues/6535)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- builtin-plugins: add replace plugin docs ([#&#8203;6534](https://redirect.github.com/rolldown/rolldown/issues/6534)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
- add `Additional Thanks` in `acknowledgements` page ([#&#8203;6507](https://redirect.github.com/rolldown/rolldown/issues/6507)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- polish doc for `experimental.nativeMagicString` ([#&#8203;6504](https://redirect.github.com/rolldown/rolldown/issues/6504)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)

##### ⚡ Performance

- cli: advance `createTokioRuntime` ([#&#8203;6618](https://redirect.github.com/rolldown/rolldown/issues/6618)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- rolldown: reduce unnecessary Vec allocate ([#&#8203;6601](https://redirect.github.com/rolldown/rolldown/issues/6601)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- rolldown: make derived assets generation more parallel ([#&#8203;6600](https://redirect.github.com/rolldown/rolldown/issues/6600)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- rolldown: make chunks generation more parallel ([#&#8203;6599](https://redirect.github.com/rolldown/rolldown/issues/6599)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- rolldown\_utils: only allocate HASH\_PLACEHOLDER\_LEFT once ([#&#8203;6595](https://redirect.github.com/rolldown/rolldown/issues/6595)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- rolldown: use oxc-resolver with simd-json ([#&#8203;6591](https://redirect.github.com/rolldown/rolldown/issues/6591)) by [@&#8203;Boshen](https://redirect.github.com/Boshen)
- rolldown: avoid allocate the sourcemap sources on non Windows os ([#&#8203;6590](https://redirect.github.com/rolldown/rolldown/issues/6590)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- resolver: use optimized fs.read\_to\_string impl ([#&#8203;6589](https://redirect.github.com/rolldown/rolldown/issues/6589)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- deps: upgrade json-escape-simd and add simdutf8 dependency ([#&#8203;6579](https://redirect.github.com/rolldown/rolldown/issues/6579)) by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn)
- rust/dev: remove unncessary clone for `ClientInput` ([#&#8203;6565](https://redirect.github.com/rolldown/rolldown/issues/6565)) by [@&#8203;hyf0](https://redirect.github.com/hyf0)
- visit ast in `cross_module_optimization` stage parallel ([#&#8203;6552](https://redirect.github.com/rolldown/rolldown/issues/6552)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)

##### 🧪 Testing

- json module prop conflict with normal module declaration binding ([#&#8203;6540](https://redirect.github.com/rolldown/rolldown/issues/6540)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- vite-tests: fix rolldown overrides ([#&#8203;6532](https://redirect.github.com/rolldown/rolldown/issues/6532)) by [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)

##### ⚙️ Miscellaneous Tasks

- remove string conversion warning in `replacePlugin` to compatible with rollup ([#&#8203;6639](https://redirect.github.com/rolldown/rolldown/issues/6639)) by [@&#8203;IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY)
- deps: update dependency dprint-json to v0.21.0 ([#&#8203;6637](https://redirect.github.com/rolldown/rolldown/issues/6637)) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
- deps: lock file maintenance ([#&#8203;6635](https://redirect.github.com/rolldown/rolldown/issues/6635)) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
- deps: lock file maintenance npm packages ([#&#8203;6632](https://redirect.github.com/rolldown/rolldown/issues/6632)) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
- node: use built-in styleText ([#&#8203;6340](https://redirect.github.com/rolldown/rolldown/issues/6340)) by [@&#8203;dumbmatter](https://redirect.github.com/dumbmatter)
- deps: update actions/setup-node action to v6 ([#&#8203;6629](https://redirect.github.com/rolldown/rolldown/issues/6629)) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
- deps: update github-actions ([#&#8203;6628](https://redirect.github.com/rolldown/rolldown/issues/6628)) by

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTYuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Ni4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
2025-10-27 04:59:00 +00:00
camc314 ada9989c17 chore(deps): update vitest to v4 (#14919) 2025-10-24 14:09:11 +00:00
Brooooooklyn f472631b73 chore(napi): update cli and js bindings (#14917)
Ref: https://github.com/oxc-project/oxc/issues/14732#issuecomment-3431289160
2025-10-23 09:47:23 +00:00
overlookmotel 14de671856 refactor(linter/plugins): simplify comments getter (#14728)
Follow-on after #14727.

Since we now have to call into deserializer module to update `astId` at end of linting a file, we may as well reset the buffers at that point too. This allows simplifying the `comments` getter.
2025-10-17 16:09:44 +00:00
camc314 bec7a7da62 feat(semantic): add scope to TSConstructorType (#14676) 2025-10-17 01:59:44 +00:00
overlookmotel 85a2743fbb refactor(linter/plugins, napi/parser): remove extraneous code from raw transfer deserializers (#14683)
Use the feature flag comments introduced in #14681 to remove a bunch of unused code from the raw transfer deserializer used in Oxlint JS plugins. Also remove a little unused code from the parser's deserializers.
2025-10-16 20:51:34 +00:00
overlookmotel 84b2605640 fix(linter/plugins): remove parent property from comments (#14624)
Part of #14564.

#14589 added first part of support for comments-related APIs in Oxlint JS plugins, but `Comment` objects had an extraneous `parent` field. This PR removes that field, using the `#[estree(no_parent)]` attribute (added in #14622).
2025-10-15 12:21:49 +00:00
overlookmotel 2b14abc80c refactor(napi/parser): shorten raw transfer deserializer for Comment (#14623)
Pure refactor. Shorten the raw transfer code for `Comment`, removing an unnecessary temp var. This also prepares the way for #14624, working around a bug in the codegen where preamble can get inserted after code that uses vars defined in that preamble.
2025-10-15 12:21:48 +00:00
Boshen 454ee94ff3 release(crates): v0.95.0 (#14619) 2025-10-15 15:06:05 +08:00
camc314 1cc7ee92b0 chore(parser): enable oxlint (#14571) 2025-10-14 13:25:29 +00:00
overlookmotel 4f301de9ff refactor(napi/parser, linter/plugins): improve formatting of generated code (#14554)
Tiny improvement to generated code. Break up the code with line breaks in more places, to make it a little easier to read.
2025-10-13 12:24:24 +00:00
overlookmotel 68c0252ff0 refactor(napi/parser, linter/plugins): shorten generated raw transfer deserializer code (#14553)
Tiny improvement to generated code for raw transfer serializers. Make it shorter by grouping `let` statements together.
2025-10-13 12:24:24 +00:00
overlookmotel f6d890af12 refactor(napi/parser): re-run ast_tools codegen (#14547)
It look like the minifier has improved since we last ran `oxc_ast_tools` codegen, and it's now capable of generating tighter code for the raw transfer deserializers.

Re-run codegen and commit the result.
2025-10-13 08:46:20 +00:00
overlookmotel f293e3e320 test(napi/parser): disable raw transfer tests on antd.js fixture (#14446)
The raw transfer test on `antd.js` fixture is timing out sometimes on CI. We already disabled the "range & parent" test on this fixture. Disable the other test on it too. But only skip these tests in CI.

(alternative to #14438)
2025-10-08 17:43:27 +00:00
overlookmotel 994c099182 test(napi/parser): skip slow test (#14424)
The raw transfer range + parent test on `antd.js` fixture is still hitting 5 second timeout on CI. For some reason the `timeout` option isn't increasing the timeout. Just skip this test.
2025-10-07 18:55:02 +00:00
overlookmotel 0b076b413a test(napi/parser): fix and clarify exclude tests logic (#14409)
Fix a bug in Vitest config for `napi/parser` package. When providing `exclude` property, should extend the default to prevent Vitest searching `node_modules` for test files ([docs](https://vitest.dev/config/)).

Also refactor to clarify the logic of which tests are skipped depending on different `env` vars.
2025-10-07 15:54:08 +00:00
camc314 0ec084708d feat(ci): run napi tests on windows (#14383) 2025-10-07 13:56:24 +00:00
camc314 b3c5132692 feat(parser): use typescript for raw transfer tests (#14390) 2025-10-06 23:27:45 +00:00
overlookmotel 56274a54f1 test(napi/parser): increase timeout on slow test (#14391)
1 raw transfer test sometimes takes longer than 5 secs on CI. Increase the timeout.
2025-10-06 22:32:32 +00:00
overlookmotel 52f35c6dcd refactor(napi/parser, linter/plugins): rename types.js to type_ids.js (#14384)
Pure refactor. Just rename generated `types.js` files to `type_ids.js`. This name better describes what the files contain, and it avoids naming clash with `types.d.ts` in `apps/oxlint/src-js/generated`.
2025-10-06 18:55:15 +00:00
renovate[bot] 502a2f8df2 chore(deps): lock file maintenance npm packages (#14363) 2025-10-06 21:45:39 +08:00
Boshen f88f5f4593 release(crates): v0.94.0 (#14377) 2025-10-06 20:48:05 +08:00
overlookmotel 1489376743 refactor(napi/parser, linter/plugins): minify walker code (#14376)
Run minifier on generated AST walker code. Mainly the purpose is to prepare the way for generating a different variant of the walker for linter which tracks ancestors while walking (pre-requisite for supporting selectors DSL).
2025-10-06 12:08:07 +00:00
overlookmotel c8eeeb5d78 refactor(linter/plugins): remove build-time dependency on napi/parser (#14374)
Refactor. Previously build script for `oxlint` package copied files from `napi/parser`. Remove this dependency, by instead making `oxc_ast_tools` generate the files in `apps/oxlint/src-js/generated`, and then copy the files from there to `dist/generated` in the build script.

This ends up with the same result, but divorces `oxlint` package from `oxc-parser`, which is cleaner.
2025-10-06 12:08:07 +00:00
overlookmotel a2914fe8d8 feat(linter/plugins): add loc field getter to all AST nodes (#14355)
Add `loc` to all AST nodes.

`loc` is computed lazily, as it's quite an expensive operation - because it requires searching the source text for line breaks and building a translation table.

We can consider making `loc` a "real" property once we have a faster translation table built on Rust side.
2025-10-05 14:02:12 +00:00
overlookmotel c8de6fe9cf feat(linter/plugins): add parent field to AST nodes (#14345)
Use the new raw transfer deserializer added in #14344 to add `parent` field to all AST node in Oxlint JS plugins.
2025-10-05 00:32:09 +00:00
overlookmotel 7e4d04fadf feat(napi/parser): add option to add parent prop to AST nodes with raw transfer (#14344)
Add an option to `oxc-parser` to add `parent` to all AST nodes. This option is only available with raw transfer (not really feasible with JSON transfer, as JSON doesn't support circular references).

This is really for the purposes of JS plugins in Oxlint, so have not included the new deserializers which add `parent` in the `oxc-parser` NPM package, to avoid bloating download size. But it's ideal home is in `napi/parser` so can add it to the conformance tests.

`parent` is correct for all nodes in all Test262 and TypeScript test cases.
2025-10-05 00:32:09 +00:00
overlookmotel a11bc9fbe0 fix(napi/parser, linter/plugins): add range field to TemplateElement (#14339)
Fix missing `range` field in `TemplateElement` in raw transfer deserializers.
2025-10-04 17:03:34 +00:00
overlookmotel e75d42d509 perf(napi/parser, linter/plugins): remove runtime preserveParens option from raw transfer deserializers (#14338)
We had a runtime `preserveParens` option in deserializers to cater for linter, but it was not used in parser. Convert it to a compile-time option instead.
2025-10-04 17:03:33 +00:00
overlookmotel 6374065095 feat(napi/parser): raw transfer support range field (#14319)
Raw transfer support `range` option, adding `range` field to every AST node.
2025-10-04 15:47:47 +00:00
overlookmotel c65e782092 fix(napi/parser): fix JSDoc comments (#14318)
Small fix to JSDoc comments for raw transfer deserialization.

`options` must be an object at this point because raw transfer code can only be entered if `options` contains `experimentalRawTransfer: true`.
2025-10-04 15:47:47 +00:00
overlookmotel 073167adb1 refactor(napi/parser): simplify raw transfer deserializer codegen (#14313)
Pure refactor. Follow-on after #14312.

Simplify the raw transfer codegen. This change does not alter content of the generated functions, only the order in which they're output in generated code.
2025-10-04 15:47:47 +00:00
overlookmotel 34e1c0bca0 refactor(napi/parser): use minifier to generate JS/TS raw transfer deserializers from single source (#14312)
Pure refactor. Makes only minor cosmetic changes to the generated raw transfer deserializer code, mainly just alters *how* that code is generated.

Previously we generated the source for the 2 different deserializers (JS and TS) separately, with the JS deserializer leaving out some fields e.g. `typeAnnotation`.

Instead, generate only 1 base implementation, with TS-only fields gated by `IS_TS`. `IS_TS` is defined as a `const` at top of the file.

```js
const IS_TS = true;

function deserializeFunction(pos) {
  const params = deserializeBoxFormalParameters(pos + 56);
  if (IS_TS) {
    const thisParam = deserializeOptionBoxTSThisParameter(pos + 48);
    if (thisParam !== null) params.unshift(thisParam);
  }

  return {
    type: deserializeFunctionType(pos + 84),
    params,
    ...(IS_TS && {
      declare: deserializeBool(pos + 87),
      typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 40),
    }),
    // ... etc ...
  };
}
```

Then we generate both the JS and TS deserializers from this same file, by setting the `IS_TS` const to `true` or `false`, and using minifier to shake out the dead code.

This:

1. Simplifies custom deserializers.
2. Opens the door to add more `const` flags, e.g. `RANGES` to switch on/off including `range` field in AST nodes.
2025-10-04 14:11:38 +00:00
overlookmotel a98757a1df refactor(napi/parser): minify syntax in raw transfer deserializers (#14308)
Pure refactor. Minify syntax of raw transfer deserializers. Purpose is not to compress the size of the files per se, but to remove dead code.

This is first step towards adding support for `range` and `parent` to raw transfer.

`tasks/ast_tools` gains dependencies on `oxc_minify` etc. These have to be dependencies on copies of the published crates from crates.io, NOT local copies (not `workspace = true`).

This is because if changes are made to the AST, the local versions of many crates may not compile until after the codegen has run to update code to account for those changes - catch 22. Depending on published versions of the crates avoids this circularity.
2025-10-04 14:11:38 +00:00
renovate[bot] 6a9dbb5e05 chore(deps): update dependency @codspeed/vitest-plugin to v5 (#14215)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
from Renovate will soon appear from 'Mend'. Learn more
[here](https://redirect.github.com/renovatebot/renovate/discussions/37842).

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@codspeed/vitest-plugin](https://codspeed.io)
([source](https://redirect.github.com/CodSpeedHQ/codspeed-node)) |
[`^4.0.0` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@codspeed%2fvitest-plugin/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@codspeed%2fvitest-plugin/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>CodSpeedHQ/codspeed-node
(@&#8203;codspeed/vitest-plugin)</summary>

###
[`v5.0.0`](https://redirect.github.com/CodSpeedHQ/codspeed-node/releases/tag/v5.0.0)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-node/compare/v4.0.1...v5.0.0)

#### 🎉 What's Changed

This major release brings support for our [Walltime
instrument](https://codspeed.io/docs/instruments/walltime), allowing you
to benchmark larger pieces of code more reliably by making use of
CodSpeed's [Macro
Runners](https://codspeed.io/docs/features/macro-runners).

Support for newer versions of `tinybench` and `vitest` have been added.
Feel free to visit our [node.js
documentation](https://codspeed.io/docs/benchmarks/nodejs/overview) for
more details.

Lastly, we now use our common
[instrument-hooks](https://redirect.github.com/CodSpeedHQ/instrument-hooks)
implementation to interact with our instruments.

#### 💥 Breaking Changes

- **tinybench**: Support for versions below v4 has been dropped. You
must upgrade to tinybench v4 or above.
⚠️ Since tinybench v4 drops support for CJS, ES modules are now required
to use the library.

#### 🚀 Migration Path

This is a **breaking change** because we updated the compatible versions
of underlying benchmarking libraries.\
For example, support for tinybench v3 and below has been dropped. We
recommend upgrading to tinybench v4 or above.

We recommend creating a dedicated PR to update your dependencies, and
create a new performance baseline for your code.

#### 📚 Details

- Bump node, bump tinybench, and add support of walltime runs for
tinybench by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;48](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/48)
- Add walltime support for vitest plugin by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;49](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/49)
- chore: bump vitest and rollup dev dependencies by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;52](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/52)

**Full Changelog**:
<https://github.com/CodSpeedHQ/codspeed-node/compare/v4.0.1...v5.0.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 9am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 20:54:47 +00:00
Boshen aa0689fe38 release(crates): v0.93.0 (#14194) 2025-09-28 14:13:41 +08:00
Masanori Tani 06b16a9a18 chore(infra): add publint (#13937)
close #13768 

Setup [publint](https://publint.dev/) and fix warnings.
target directory: `napi/` and `editor/vscode`. (I couldn’t determine
whether I should include the `npm/` directory or not.)

Co-authored-by: Boshen <boshenc@gmail.com>
2025-09-27 17:47:15 +08:00