mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
agent/react-compiler-dynamic-import
1581 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2d2b3be43d |
chore(deps): update rust crate sort-package-json to v1 (#25741)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sort-package-json](https://redirect.github.com/oxc-project/sort-package-json) | workspace.dependencies | major | `0.0.15` → `1.0.0` | --- ### Release Notes <details> <summary>oxc-project/sort-package-json (sort-package-json)</summary> ### [`v1.0.0`](https://redirect.github.com/oxc-project/sort-package-json/blob/HEAD/CHANGELOG.md#100---2026-08-16) [Compare Source](https://redirect.github.com/oxc-project/sort-package-json/compare/v0.0.15...v1.0.0) ##### Changed - **Breaking:** Stabilize the public `SortOptions` API and refresh crate metadata and documentation ([#​158](https://redirect.github.com/oxc-project/sort-package-json/pull/158)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Boshen <boshenc@gmail.com> |
||
|
|
f62ed0e2b9 |
perf(diagnostics): optimize graphical number rendering (#25715)
Use direct integer formatting for plain graphical snippet coordinates and line numbers. Criterion shows 4-14% faster graphical rendering across the covered cases. Created with AI assistance. <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> |
||
|
|
f004852aac |
chore(deps): update rust crate sort-package-json to 0.0.15 (#25736)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sort-package-json](https://redirect.github.com/oxc-project/sort-package-json) | workspace.dependencies | patch | `0.0.14` → `0.0.15` | --- ### Release Notes <details> <summary>oxc-project/sort-package-json (sort-package-json)</summary> ### [`v0.0.15`](https://redirect.github.com/oxc-project/sort-package-json/blob/HEAD/CHANGELOG.md#0015---2026-08-16) [Compare Source](https://redirect.github.com/oxc-project/sort-package-json/compare/v0.0.14...v0.0.15) ##### Fixed - sort devEngines descriptor fields ([#​155](https://redirect.github.com/oxc-project/sort-package-json/pull/155)) ##### Other - *(deps)* update Rust dependencies ([#​157](https://redirect.github.com/oxc-project/sort-package-json/pull/157)) - borrow JSON strings during sorting ([#​156](https://redirect.github.com/oxc-project/sort-package-json/pull/156)) - reduce Rust dev debug info ([#​153](https://redirect.github.com/oxc-project/sort-package-json/pull/153)) - *(deps)* update rust crate ignore to v0.4.33 ([#​151](https://redirect.github.com/oxc-project/sort-package-json/pull/151)) - *(deps)* update rust crates ([#​144](https://redirect.github.com/oxc-project/sort-package-json/pull/144)) - *(deps)* update rust crate ignore to v0.4.30 ([#​142](https://redirect.github.com/oxc-project/sort-package-json/pull/142)) - update sponsor section </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
1c4f519e36 |
feat(napi): add Relay transform plugin (#25503)
## What Ports the Relay `graphql` tagged template transform (babel-plugin-relay / swc_relay) as an individual napi transform, per #24914: - **`crates/oxc_relay`** — the core transform as its own crate (modeled on `oxc_react_compiler`): replaces `graphql` tagged templates with references to relay-compiler artifacts. Definition names are extracted textually like `swc_relay` (equivalent to `\b(fragment|mutation|query|subscription)\s+(\w+)` with `#` comments stripped; hand-rolled scanner, no regex dependency). - **`napi/transform-relay`** (`oxc-transform-relay`) — standalone napi package copied from the `napi/transform-react` template: parse → semantic → relay traverse → codegen. Only `graphql` tags are rewritten; TypeScript/JSX syntax is preserved untouched, so the output composes with any downstream toolchain. ## Options | option | default | behavior | |---|---|---| | `artifactDirectory` | unset | when set, the import path is computed lexically relative to the transformed file (babel-plugin-relay `getRelativeImportPath` semantics — swc emits absolute paths instead); unset → `./__generated__/` next to the file | | `language` | `javascript` | `typescript` imports `Name.graphql.ts`, otherwise `Name.graphql.js` | | `eagerEsModules` | `true` | hoisted default imports (babel-plugin-relay ≥ v17 parity); `false` emits inline `require()` (`@swc/plugin-relay` / Next.js behavior) | A `graphql` tag with no extractable definition name produces an error diagnostic (babel throws; swc silently skips). Not supported, documented in both READMEs: dev-mode artifact hash validation, `jsModuleFormat: "haste"`, `isDevVariableName`, swc's Next.js-specific `projects`/`pagesDir`, and GraphQL document validation. closes #24914 --- Implemented with Claude Code. |
||
|
|
b2f8fdf230 |
chore(deps): update rust crate oxc-browserslist to v5.0.1 (#25554)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | patch | `5.0.0` → `5.0.1` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v5.0.1`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#501---2026-08-12) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v5.0.0...oxc-browserslist-v5.0.1) ##### Fixed - use mktime64 on Windows ([#​835](https://redirect.github.com/oxc-project/oxc-browserslist/pull/835)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
a4478e960a |
feat(codegen): add oxc-codegen package (#25488)
Add `oxc-codegen` package - a printer written in TS. ### Features - Prints JS, JSX, TS, TSX. - Matches `oxc_codegen` exactly on all Test262, TypeScript, Acorn-JSX fixtures. - Very fast. ### Deficiencies - Pretty-printing only (no compact/minified output). - No support for printing comments. - Source map support is semi-there, but largely untested, and poor API (design doc has some ideas on how to improve it). ### This PR adds - The printer code. - Conformance testing infra. - Further tests for edge cases. - README. - Design doc - how it differs from `oxc_codegen` and why, what produces the perf. ### This PR doesn't add - Not integrated into CI or release pipeline. ### Notes This started as a slop port of `oxc_codegen`. I've iterated on that base, cleaned it up a lot, and at least skimmed through all of it. I think it's in fairly decent shape. The design doc is I think worth a read. It explains the rationale for the choices, in particular the "1 codebase, 4 builds" approach. I've put it in a new top-level directory called `packages`. It's not an app, so didn't seem to me to fit alongside `apps/oxlint` and `apps/oxfmt`. It's pure JS, so not like e.g. `napi/parser`. And it felt too heavyweight to put into `npm` dir. But maybe there's a better place for it. Co-authored-by: Cameron <cameron.clark@hey.com> |
||
|
|
2c61dfb7d6 |
chore(deps): update rust crate oxc-browserslist to v5 (#25529)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | major | `4.0.0` → `5.0.0` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v5.0.0`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#500---2026-08-12) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v4.0.0...oxc-browserslist-v5.0.0) ##### Other - clean up code for idiomatic Rust ([#​833](https://redirect.github.com/oxc-project/oxc-browserslist/pull/833)) - rework bundled data around a canonical version table ([#​830](https://redirect.github.com/oxc-project/oxc-browserslist/pull/830)) - cache current node query ([#​831](https://redirect.github.com/oxc-project/oxc-browserslist/pull/831)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
a2433117d2 |
fix(formatter_yaml): bump oxc-yaml-parser for contentless block scalar (#25519)
Fixes #25484 |
||
|
|
0fa91283fd |
refactor(formatter,formatter_tests): move out prettier JS,TS,JSDoc conformance from tasks/ (#25477)
Migration from tasks/prettier_conformance to each crate test using oxc_formatter_tests, for JS/TS and JSDoc. |
||
|
|
e4437275de |
refactor(formatter_css,formatter_json,formatter_graphql,formatter_tests): move out prettier CSS,JSON,GraphQL conformance from tasks/ (#25472)
Migration from tasks/prettier_conformance to each crate test using oxc_formatter_tests, for CSS, JSON, and GraphQL. |
||
|
|
72c00f32ea |
refactor(formatter_yaml,formatter_tests): move out prettier YAML conformance from tasks/ (#25469)
Migration from `tasks/prettier_conformance` to each crate test using `oxc_formatter_tests`, for YAML. |
||
|
|
79dd965e6b |
chore(deps): update rust crate oxc-browserslist to v4 (#25511)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | major | `3.0.9` → `4.0.0` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v4.0.0`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#400---2026-08-11) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v3.0.13...oxc-browserslist-v4.0.0) ##### Added - add Baseline query support ([#​826](https://redirect.github.com/oxc-project/oxc-browserslist/pull/826)) ##### Other - update dependencies ([#​828](https://redirect.github.com/oxc-project/oxc-browserslist/pull/828)) - Update rust crates ([#​825](https://redirect.github.com/oxc-project/oxc-browserslist/pull/825)) - Update browserslist ([#​820](https://redirect.github.com/oxc-project/oxc-browserslist/pull/820)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6ef3984410 |
refactor(ci): self-provision prettier suite in oxc_formatter_tests (#25467)
Remove the Prettier related stuff from the conformance, which is purely aimed at JS/TS. Instead, `oxc_formatter_tests` manage Prettier's test fixtures along with Oxfmt. |
||
|
|
6e1b4ddceb |
refactor(formatter_core,formatter_tests): extract oxc_formatter_tests crate from oxc_formatter_core (#25465)
- Extract `test_harness` feature as crate `oxc_formatter_tests` - This crate will also provide infra for `tasks/prettier_conformance` later |
||
|
|
00e1b762e0 |
refactor(diagnostics): vendor oxc-miette (#25499)
We no longer need to maintain the `oxc-miette` repo as most of the code is now removed, the remaining code is minimal and can be vendored. |
||
|
|
c42d6397ea |
release(apps): oxlint v1.78.0 && oxfmt v0.63.0 (#25473)
# Oxlint ### 💥 BREAKING CHANGES - |
||
|
|
b6f1458dec |
release(crates): oxc v0.144.0 (#25474)
### 💥 BREAKING CHANGES - |
||
|
|
b91dc3a1f1 |
chore(deps): update napi (#25457)
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/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.8.3` → `3.8.5`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.8.3/3.8.5) |  |  |  |  | pnpm.catalog.default | patch | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.12.0` → `3.12.1` |  |  |  |  | workspace.dependencies | patch | | [napi-build](https://redirect.github.com/napi-rs/napi-rs) | `2.4.0` → `2.4.1` |  |  |  |  | workspace.dependencies | patch | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.6.2` → `3.6.3` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.8.5`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...a5b5f277ab56e7e7e903b392b15c79da7a6520ce) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...@napi-rs/cli@3.8.5) ### [`v3.8.4`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cclark@cloudflare.com> |
||
|
|
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. |
||
|
|
2123b9caf6 |
chore(deps): update rust crates (#25449)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [base64](https://redirect.github.com/marshallpierce/rust-base64) | workspace.dependencies | patch | `0.23.0` → `0.23.1` | | [encoding_rs_io](https://redirect.github.com/BurntSushi/encoding_rs_io) | workspace.dependencies | patch | `0.1.7` → `0.1.8` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.31` → `0.4.33` | | [similar](https://redirect.github.com/mitsuhiko/similar) | workspace.dependencies | patch | `3.1.1` → `3.1.2` | | [ureq](https://redirect.github.com/algesten/ureq) | workspace.dependencies | minor | `3.3.0` → `3.4.0` | --- ### Release Notes <details> <summary>marshallpierce/rust-base64 (base64)</summary> ### [`v0.23.1`](https://redirect.github.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0231) [Compare Source](https://redirect.github.com/marshallpierce/rust-base64/compare/v0.23.0...v0.23.1) - Make the tests build again on non-SIMD architectures </details> <details> <summary>BurntSushi/encoding_rs_io (encoding_rs_io)</summary> ### [`v0.1.8`](https://redirect.github.com/BurntSushi/encoding_rs_io/compare/0.1.7...0.1.8) [Compare Source](https://redirect.github.com/BurntSushi/encoding_rs_io/compare/0.1.7...0.1.8) </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.33`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.32...ignore-0.4.33) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.32...ignore-0.4.33) ### [`v0.4.32`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.31...ignore-0.4.32) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.31...ignore-0.4.32) </details> <details> <summary>mitsuhiko/similar (similar)</summary> ### [`v3.1.2`](https://redirect.github.com/mitsuhiko/similar/blob/HEAD/CHANGELOG.md#312) [Compare Source](https://redirect.github.com/mitsuhiko/similar/compare/3.1.1...3.1.2) - Fixed `Algorithm::Lcs` deadline fallback emitting edits twice, which produced out-of-bounds `DiffOp` ranges and panics when consuming timed-out diffs. [#​97](https://redirect.github.com/mitsuhiko/similar/issues/97) - Fixed `Algorithm::Lcs` reporting identical subranges with zero-based indices instead of preserving the supplied range offsets. [#​98](https://redirect.github.com/mitsuhiko/similar/issues/98) - Fixed `Algorithm::Lcs` and `Algorithm::Hunt` emitting zero-length delete operations when both inputs are empty. [#​99](https://redirect.github.com/mitsuhiko/similar/issues/99) </details> <details> <summary>algesten/ureq (ureq)</summary> ### [`v3.4.0`](https://redirect.github.com/algesten/ureq/blob/HEAD/CHANGELOG.md#340) [Compare Source](https://redirect.github.com/algesten/ureq/compare/3.3.0...3.4.0) - Seal RequestExt (technically breaking) [#​1189](https://redirect.github.com/algesten/ureq/issues/1189) - Send canonical Basic authentication scheme to CONNECT proxies [#​1185](https://redirect.github.com/algesten/ureq/issues/1185) - Establish target TLS through HTTPS CONNECT proxies [#​1183](https://redirect.github.com/algesten/ureq/issues/1183) - Update rustls-platform-verifier to 0.7.0 [#​1174](https://redirect.github.com/algesten/ureq/issues/1174) - Fix pooled connections never aging out according to max\_idle\_age [#​1172](https://redirect.github.com/algesten/ureq/issues/1172) - Strip brackets from IPv6-literal hosts before TLS SNI/ServerName [#​1171](https://redirect.github.com/algesten/ureq/issues/1171) - RequestExt::middleware\_config for conf inside middleware [#​1169](https://redirect.github.com/algesten/ureq/issues/1169) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
e23dccf338 |
fix(formatter_css): bump oxc-css-parser to accept unknown at-rule with interpolated (#25277)
Fixes #25272 |
||
|
|
9a423f2f48 |
release(apps): oxlint v1.77.0 && oxfmt v0.62.0 (#25251)
# Oxlint ### 💥 BREAKING CHANGES - |
||
|
|
45a17c25d1 |
release(crates): oxc v0.143.0 (#25250)
### 💥 BREAKING CHANGES - |
||
|
|
b937e3e2f1 |
chore(deps): update napi (#25019)
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/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.7.4` → `3.8.2`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.7.4/3.8.2) |  |  |  |  | pnpm.catalog.default | minor | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.11.0` → `3.12.0` |  |  |  |  | workspace.dependencies | minor | | [napi-build](https://redirect.github.com/napi-rs/napi-rs) | `2.3.2` → `2.4.0` |  |  |  |  | workspace.dependencies | minor | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.6.0` → `3.6.2` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.8.2`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2) ### [`v3.8.1`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1) ### [`v3.8.0`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cameron.clark@hey.com> |
||
|
|
ea1e88a696 |
chore(deps): update rust crate oxc-browserslist to v3.0.13 (#25244)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | patch | `3.0.12` → `3.0.13` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v3.0.13`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#3013---2026-08-03) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v3.0.12...oxc-browserslist-v3.0.13) ##### Other - Update browserslist ([#​809](https://redirect.github.com/oxc-project/oxc-browserslist/pull/809)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
e2b76f5b56 |
chore(deps): update rust crates (#25217)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [bpaf](https://redirect.github.com/pacak/bpaf) | workspace.dependencies | patch | `0.9.26` → `0.9.27` | | [json-strip-comments](https://redirect.github.com/oxc-project/json-strip-comments) | workspace.dependencies | patch | `3.1.1` → `3.1.2` | | [lazy-regex](https://redirect.github.com/Canop/lazy-regex) | workspace.dependencies | patch | `3.6.0` → `3.6.1` | | [oxc-toml](https://redirect.github.com/oxc-project/oxc-toml) | workspace.dependencies | patch | `0.14.5` → `0.14.6` | | [toml](https://redirect.github.com/toml-rs/toml) | workspace.dependencies | patch | `1.1.3+spec-1.1.0` → `1.1.4` | --- ### Release Notes <details> <summary>pacak/bpaf (bpaf)</summary> ### [`v0.9.27`](https://redirect.github.com/pacak/bpaf/blob/HEAD/Changelog.md#bpaf-0927--bpafderive-0526---2026-07-29) - improve error message if user passes an empty value to argument or positional </details> <details> <summary>oxc-project/json-strip-comments (json-strip-comments)</summary> ### [`v3.1.2`](https://redirect.github.com/oxc-project/json-strip-comments/blob/HEAD/CHANGELOG.md#312---2026-07-27) [Compare Source](https://redirect.github.com/oxc-project/json-strip-comments/compare/json-strip-comments-v3.1.1...json-strip-comments-v3.1.2) ##### Other - *(json-strip-comments)* exclude extraneous files from published package ([#​209](https://redirect.github.com/oxc-project/json-strip-comments/pull/209)) - *(deps)* update rust crates ([#​210](https://redirect.github.com/oxc-project/json-strip-comments/pull/210)) - *(deps)* update semgrep/semgrep docker tag to v1.171.0 ([#​211](https://redirect.github.com/oxc-project/json-strip-comments/pull/211)) - *(semgrep)* add scan workflow ([#​208](https://redirect.github.com/oxc-project/json-strip-comments/pull/208)) - *(deps)* update actions/setup-node action to v7 ([#​207](https://redirect.github.com/oxc-project/json-strip-comments/pull/207)) - *(deps)* update actions/setup-node action to v6.5.0 ([#​206](https://redirect.github.com/oxc-project/json-strip-comments/pull/206)) - *(deps)* update dependency rust to v1.97.1 ([#​205](https://redirect.github.com/oxc-project/json-strip-comments/pull/205)) - update sponsor section - *(deps)* update rust crates ([#​203](https://redirect.github.com/oxc-project/json-strip-comments/pull/203)) - *(deps)* update codspeedhq/action action to v4.18.5 ([#​202](https://redirect.github.com/oxc-project/json-strip-comments/pull/202)) - *(deps)* update dependency rust to v1.97.0 ([#​201](https://redirect.github.com/oxc-project/json-strip-comments/pull/201)) - restore original Apache-2.0 license ([#​200](https://redirect.github.com/oxc-project/json-strip-comments/pull/200)) - *(deps)* update rust to v1.96.1 ([#​199](https://redirect.github.com/oxc-project/json-strip-comments/pull/199)) - standardize rustfmt config - normalize README sponsor section - configure clippy exported api lint ([#​196](https://redirect.github.com/oxc-project/json-strip-comments/pull/196)) - add crates environment to release workflow - *(deps)* update github actions ([#​193](https://redirect.github.com/oxc-project/json-strip-comments/pull/193)) - use codspeed simulation mode ([#​192](https://redirect.github.com/oxc-project/json-strip-comments/pull/192)) - use codspeed mode input ([#​191](https://redirect.github.com/oxc-project/json-strip-comments/pull/191)) - enable codspeed simulation ([#​190](https://redirect.github.com/oxc-project/json-strip-comments/pull/190)) - *(deps)* update rust crates ([#​189](https://redirect.github.com/oxc-project/json-strip-comments/pull/189)) - *(deps)* update github actions ([#​188](https://redirect.github.com/oxc-project/json-strip-comments/pull/188)) - *(deps)* update rust crates ([#​187](https://redirect.github.com/oxc-project/json-strip-comments/pull/187)) - *(deps)* update github actions to v4.17.5 ([#​186](https://redirect.github.com/oxc-project/json-strip-comments/pull/186)) - *(deps)* update github actions to v4.17.0 ([#​185](https://redirect.github.com/oxc-project/json-strip-comments/pull/185)) - *(deps)* update rust crates ([#​183](https://redirect.github.com/oxc-project/json-strip-comments/pull/183)) - *(deps)* update github actions ([#​182](https://redirect.github.com/oxc-project/json-strip-comments/pull/182)) - *(deps)* update dependency rust to v1.96.0 ([#​181](https://redirect.github.com/oxc-project/json-strip-comments/pull/181)) - *(deps)* update rust crates ([#​180](https://redirect.github.com/oxc-project/json-strip-comments/pull/180)) - *(deps)* update github actions ([#​179](https://redirect.github.com/oxc-project/json-strip-comments/pull/179)) - switch security workflow to ubuntu-latest ([#​178](https://redirect.github.com/oxc-project/json-strip-comments/pull/178)) - update packageManager to pnpm 11.0.4 ([#​177](https://redirect.github.com/oxc-project/json-strip-comments/pull/177)) - *(deps)* update github actions ([#​176](https://redirect.github.com/oxc-project/json-strip-comments/pull/176)) - *(deps)* update pnpm/action-setup action to v6.0.4 ([#​175](https://redirect.github.com/oxc-project/json-strip-comments/pull/175)) - *(deps)* update github actions ([#​174](https://redirect.github.com/oxc-project/json-strip-comments/pull/174)) - *(deps)* update github-actions ([#​172](https://redirect.github.com/oxc-project/json-strip-comments/pull/172)) </details> <details> <summary>Canop/lazy-regex (lazy-regex)</summary> ### [`v3.6.1`](https://redirect.github.com/Canop/lazy-regex/blob/HEAD/CHANGELOG.md#v361---2026-02-11) - fix non relevant "unreachable\_code" warning in regex\_switch - Fix [#​40](https://redirect.github.com/Canop/lazy-regex/issues/40) - Thanks [@​Guflly](https://redirect.github.com/Guflly) </details> <details> <summary>oxc-project/oxc-toml (oxc-toml)</summary> ### [`v0.14.6`](https://redirect.github.com/oxc-project/oxc-toml/blob/HEAD/CHANGELOG.md#0146---2026-07-27) [Compare Source](https://redirect.github.com/oxc-project/oxc-toml/compare/v0.14.5...v0.14.6) ##### Other - *(oxc-toml)* exclude extraneous files from published package ([#​119](https://redirect.github.com/oxc-project/oxc-toml/pull/119)) - *(deps)* update semgrep/semgrep docker tag to v1.171.0 ([#​121](https://redirect.github.com/oxc-project/oxc-toml/pull/121)) - *(deps)* update rust crate ignore to v0.4.31 ([#​120](https://redirect.github.com/oxc-project/oxc-toml/pull/120)) - *(semgrep)* add scan workflow ([#​118](https://redirect.github.com/oxc-project/oxc-toml/pull/118)) - *(deps)* update dependency dprint-json to v0.23.0 ([#​113](https://redirect.github.com/oxc-project/oxc-toml/pull/113)) - *(deps)* update rust crates ([#​117](https://redirect.github.com/oxc-project/oxc-toml/pull/117)) - *(deps)* update dependency rust to v1.97.1 ([#​116](https://redirect.github.com/oxc-project/oxc-toml/pull/116)) - update sponsor section </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v1.1.4`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.3...toml-v1.1.4) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.3...toml-v1.1.4) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
dd28596d0a |
fix(formatter_css): bump oxc-css-parser for substituted at-rule preludes (#25104)
Fixes #25075 |
||
|
|
8b7420a7e8 |
refactor(transformer): decouple React Compiler (#25065)
Moves React Compiler integration out of `oxc` and `oxc_transformer` into the dedicated binding. AI-assisted. |
||
|
|
85d0f4dd1f |
feat(napi): add React Compiler transform binding (#24934)
Adds the `oxc-transform-react` N-API binding and its public CI and publish workflows. AI-assisted. |
||
|
|
0c16cb5aba |
feat(oxfmt)!: Format parser:yaml files by oxc_formatter_yaml (#24890)
Format `.yaml`, `.yml` and others by `oxc_formatter_yaml`. Also handle maybe-json-or-yaml files like `.prettierrc`. |
||
|
|
46fe15e0cb |
refactor(formatter_yaml): read comment.own_line_columns (#25011)
Also bump `oxc-yaml-parser` for it. Now, `is_own_line` comment check has been gone. |
||
|
|
fbe8d318ff |
fix(minifier): respect targets when folding RegExp source (#24790)
RegExp literal `.source` folding used a hard-coded approximation of ES2015 support. It rejected syntax that configured targets support, such as the `u` flag for ES2015, while allowing newer syntax without checking the configured engines. The same target compatibility mapping already exists in `oxc_ecmascript` for RegExp constructor analysis. Expose one parsed-syntax predicate from that layer and reuse it for `.source` folding. This removes the duplicate policy and the minifier's direct `oxc_regular_expression` dependency. An unspecified target remains conservative, while an explicit supporting target unlocks the fold. Covered by `test_fold_regex_source` with adjacent unsupported and supported targets for `y`, `u`, `s`, `d`, `v`, named groups, Unicode property escapes, lookbehind, duplicate named groups, and pattern modifiers. Verified with `cargo test -p oxc_ecmascript --features side_effects`, `cargo test -p oxc_minifier` (631 passed, 42 ignored), `just minsize` (no minsize or allocation snapshot changes), affected-crate clippy with warnings denied, and `just fmt`. Follow-up to #24712 and [its non-blocking review](https://github.com/oxc-project/oxc/pull/24712#discussion_r3619967432). Implemented with AI assistance (OpenAI Codex and Claude). The contributor remains responsible for reviewing, understanding, and submitting these changes under the repository AI usage policy. |
||
|
|
65fe65d842 |
release(apps): oxlint v1.76.0 && oxfmt v0.61.0 (#24976)
# Oxlint ### 🚀 Features - |
||
|
|
fc702c1fa9 |
release(crates): oxc v0.142.0 (#24977)
### 💥 BREAKING CHANGES - |
||
|
|
dbf85def42 |
refactor(formatter_graphql): rework comment printing (#24970)
Also fixes #24927 - rework comment printing to follow the rules and align with other formatters - bump `oxc-graphql-parser` - to track comments inside a node's span more accurately |
||
|
|
9d65862a8b |
chore(deps): update rust crates (#24949)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [base64](https://redirect.github.com/marshallpierce/rust-base64) | workspace.dependencies | minor | `0.22.1` → `0.23.0` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.30` → `0.4.31` | | [serde_json](https://redirect.github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.150` → `1.0.151` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `3.0.1` → `3.0.3` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | patch | `1.53.0` → `1.53.1` | --- ### Release Notes <details> <summary>marshallpierce/rust-base64 (base64)</summary> ### [`v0.23.0`](https://redirect.github.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0230) [Compare Source](https://redirect.github.com/marshallpierce/rust-base64/compare/v0.22.1...v0.23.0) - Added more consts for preconfigured configs and engines - Make DecodeError::InvalidLastSymbol more clear by including the decoded value - Added SIMD-accelerated engines behind the default-on `simd-unsafe` feature: `Simd` picks the best instruction set at runtime (AVX2 on `x86_64`, NEON on `aarch64`) and falls back to the scalar `GeneralPurpose` engine, while `Avx2` and `Neon` target one instruction set with no runtime detection and work in `no_std`. The engines support the standard and URL-safe alphabets. - Update MSRV to 1.71.0 - Add support for custom padding symbols </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.31`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.151`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.151) [Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.150...v1.0.151) - Add RawValue::from\_string\_unchecked ([#​1331](https://redirect.github.com/serde-rs/json/issues/1331), thanks [@​WonderLawrence](https://redirect.github.com/WonderLawrence)) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v3.0.3`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.3) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/3.0.2...3.0.3) - Documentation improvements ### [`v3.0.2`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.2) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/3.0.1...3.0.2) - Add [`Error::new_range(start..end, "msg")`](https://docs.rs/syn/3/syn/struct.Error.html#method.new_range) ([#​2068](https://redirect.github.com/dtolnay/syn/issues/2068), [#​2070](https://redirect.github.com/dtolnay/syn/issues/2070)) - Add [`Cursor::prev_span`](https://docs.rs/syn/3/syn/buffer/struct.Cursor.html#method.prev_span) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.1`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.1): Tokio v1.53.1 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.53.0...tokio-1.53.1) ### 1.53.1 (July 20th, 2026) ##### Fixed - signal: restore MSRV by removing `OnceLock::wait` from the Windows handler ([#​8300]) ##### Fixed (unstable) - time: fix alt timer cancellation and insertion race ([#​8252]) ##### Documented - runtime: remove dead link definition in Runtime::block\_on ([#​8301]) [#​8252]: https://redirect.github.com/tokio-rs/tokio/pull/8252 [#​8300]: https://redirect.github.com/tokio-rs/tokio/pull/8300 [#​8301]: https://redirect.github.com/tokio-rs/tokio/pull/8301 </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
a086d91c83 |
perf(ecmascript): avoid number literal allocations (#24889)
The shared number-literal serializer can be called repeatedly by consumers that only need the emitted length. Its existing `Cow<str>` implementation allocates candidate strings for some hexadecimal and exponent forms, which would add avoidable allocation traffic to those callers. Build candidates in an inline stack string while preserving the callback API and generated output. In allocation tracking, the unoptimized consumer added 56 system allocations for `antd.js` and 129 for `kitchen-sink.tsx`; this version removes those increases. This PR depends on #24876. #24875 adds the minifier consumer. Verified with `cargo test -p oxc_ecmascript -p oxc_codegen`, Clippy, formatting, and `just allocs` with no standalone snapshot changes. AI assistance: Codex was used to implement and verify this change. |
||
|
|
dba374912a |
refactor(ecmascript): share number literal serialization (#24876)
Codegen is not the only consumer that needs the exact emitted form of a number, but the serializer currently lives in the codegen crate. Other consumers would otherwise need to duplicate its formatting policy or depend on codegen. Move the callback helper extracted in #24888 from `oxc_codegen` to `oxc_ecmascript`, then reuse it from codegen. The serialization algorithm is unchanged; this PR only makes the helper public and relocates its dependencies. This PR depends on #24888. #24889 handles allocation-free candidate construction, and #24875 adds the minifier consumer. Verified independently with `cargo test -p oxc_ecmascript -p oxc_codegen`, Clippy, and formatting. AI assistance: Codex was used to implement and verify this change. |
||
|
|
b86efbc489 |
chore(deps): update rust crate oxc-browserslist to v3.0.12 (#24918)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | patch | `3.0.11` → `3.0.12` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v3.0.12`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#3012---2026-07-25) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v3.0.11...oxc-browserslist-v3.0.12) ##### Other - Update browserslist ([#​799](https://redirect.github.com/oxc-project/oxc-browserslist/pull/799)) - *(deps)* update rust crate syn to v3 ([#​795](https://redirect.github.com/oxc-project/oxc-browserslist/pull/795)) - *(deps)* update rust crates ([#​794](https://redirect.github.com/oxc-project/oxc-browserslist/pull/794)) - Update browserslist ([#​793](https://redirect.github.com/oxc-project/oxc-browserslist/pull/793)) - Update browserslist ([#​792](https://redirect.github.com/oxc-project/oxc-browserslist/pull/792)) - Update browserslist ([#​791](https://redirect.github.com/oxc-project/oxc-browserslist/pull/791)) - update sponsor section ([#​788](https://redirect.github.com/oxc-project/oxc-browserslist/pull/788)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
73cfdfa402 |
feat(oxc): re-export oxc_str types from oxc crate (#24860)
`oxc_str` contains some of our core types - notably `Ident` and `Str`. Re-export it from `oxc` crate. |
||
|
|
fe3d170074 |
test(prettier_conformance): add YAML formatter (#24535)
> yaml compatibility: 346/354 (97.74%), 0 files skipped This is currently the limit, as we have fixed several bugs in Prettier, ensuring consistent behavior. |
||
|
|
2357a10dfa |
feat(formatter_yaml): implement YAML formatter (#24534)
Add `oxc_formatter_yaml` crate using `oxc_yaml_parser`. |
||
|
|
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. |
||
|
|
83abe3b49c |
release(apps): oxlint v1.75.0 && oxfmt v0.60.0 (#24713)
# Oxlint ### 💥 BREAKING CHANGES - |
||
|
|
14533a3dc1 |
release(crates): oxc v0.141.0 (#24714)
### 💥 BREAKING CHANGES - |
||
|
|
01c3611d9b |
refactor(ecmascript): expose engine targets to side effects (#24742)
> **PR stack (2 of 3)** > 1. #24739 > 2. **#24742 (this PR)** > 3. #24712 > > Review #24739 first. This PR is based on its branch, so GitHub shows only the engine-target plumbing. Stacked on #24739, which introduces the `side_effects` and `constant_evaluation` feature boundary for `oxc_ecmascript`. Side-effect analysis sometimes needs to know whether runtime syntax is supported by every configured engine. `MayHaveSideEffectsContext` currently has no access to target information, while `EngineTargets::has_feature` is intentionally permissive about missing compatibility data because it answers whether a transformation is needed. `MayHaveSideEffectsContext::engine_targets()` exposes the configured targets through a general-purpose accessor. Its default is `None`, so consumers without target information remain conservative, while the minifier supplies its existing `CompressOptions::target`. `EngineTargets::supports_es_feature` provides the corresponding strict capability query. Every configured engine must have compatibility data and meet the required version; empty targets and missing rows are not treated as proof of support. The existing transformation-oriented `has_feature` behavior remains unchanged. Because `oxc_linter` enables `side_effects`, this also adds `oxc_compat` to the oxlint and language-server build graphs. It does not change side-effect decisions by itself; #24712 consumes the new capability for target-aware RegExp validation. Verified with all `oxc_compat` tests, the no-feature/`side_effects`/`constant_evaluation` `oxc_ecmascript` matrix, a minifier check, formatting, and Clippy. Implemented with AI assistance (OpenAI Codex and Claude). The contributor remains responsible for reviewing, understanding, and maintaining these changes. |
||
|
|
d3ce2e6520 |
chore(deps): update napi (#24752)
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/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.7.3` → `3.7.4`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.7.3/3.7.4) |  |  |  |  | pnpm.catalog.default | patch | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.10.5` → `3.11.0` |  |  |  |  | workspace.dependencies | minor | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.5.10` → `3.6.0` |  |  |  |  | workspace.dependencies | minor | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.7.4`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.3...762a0e389a0196d7446666ee5ef8468994dcac4f) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.3...@napi-rs/cli@3.7.4) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
fd7cf5b500 |
fix(formatter_css): update oxc-css-parser to 0.0.9 (#24745)
Fixes #24726 |
||
|
|
e81b2ff6c5 |
fix(oxlint,oxfmt): report error for invalid glob patterns (#24744)
Fixes #24612 - Update `fast-glob` to `1.1.0` which exposes `validate()` api - Use it in `oxc_config`, apps will be validated through `deserialize` - Oxfmt supports globs for CLI paths, also validated |
||
|
|
c399367877 |
fix(formatter_css): update oxc-css-parser to 0.0.8 (#24725)
This also fixes #24723 |