mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
codex/jsstr-core
812 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
60fa13878c |
release(crates): oxc v0.149.0 (#26397)
### 💥 BREAKING CHANGES - |
||
|
|
68e12abe2c |
feat(formatter_css): follow the oxc-css-parser's acceptance line (#26337)
Fixes #26290, #26291. Also, many changes to follow refined parser acceptance line. --- CI will fail until parser version bumped, needs oxc-project/oxc-css-parser/pull/166 |
||
|
|
6365db964b |
test(lexer): enable oxc_lexer conformance tests on all platforms (#26263)
`oxc_lexer` has 2 implementations: 1\. SIMD-based on x86_64 with AVX2. 2\. Scalar/SWAR fallback which works on all platforms. Both produce the same output. This PR enables running the lexer conformance on either implementation. Which implementation is tested depends on what build flags are passed to `cargo coverage`. It turns out that it's possible to test the SIMD implementation on Mac by compiling as x86_64, and running it under Rosetta 2. This PR also adds `just` recipes to run tests and conformance on either implementation: - `just test-lexer` - `just test-lexer-simd` - `just conformance-lexer` - `just conformance-lexer-simd` These commands should work correctly on any of Linux x86, Windows x86, Mac aarch64. |
||
|
|
ef0f33eb7d |
test(all): run conformance with panic = "unwind" (#26260)
Conformance tests for `oxc_lexer` crate rely on using `catch_unwind` to catch panics and report them, rather than crashing the whole process. Currently this doesn't work because conformance is compiled with `panic = "abort"` (inherited from `release` profile). This PR fixes that by adding `panic = "unwind"` to `coverage` profile. I've measured the time it takes to run conformance locally before/after this change, and the difference is within noise (+/- 2%), so this seems to have no adverse effects. `codegen-conformance` profile only existed to add `panic = "unwind"` too, so after this change it becomes identical to `coverage` profile. That makes it redundant, so this PR removes it in favour of just using `coverage` everywhere. |
||
|
|
894c8f9cd8 |
release(crates): oxc v0.148.0 (#26198)
### 💥 BREAKING CHANGES - |
||
|
|
1fb37b6e47 |
feat(formatter/css): format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194)
Fixes #26158 --- > Otherwise, [restore a mark](https://drafts.csswg.org/css-syntax-3/#token-stream-restore-a-mark) from input, then [consume a qualified rule](https://drafts.csswg.org/css-syntax-3/#consume-a-qualified-rule) from input, with nested set to true, and [<semicolon-token>](https://drafts.csswg.org/css-syntax-3/#typedef-semicolon-token) as the stop token. > https://drafts.csswg.org/css-syntax-3/#consume-block-contents When fallback happens: format block, keep prelude verbatim. |
||
|
|
286aa71962 |
chore(deps): bump fast_glob (#26192)
https://github.com/oxc-project/fast-glob/releases/tag/v1.1.1 |
||
|
|
ac817c6e50 |
chore(deps): update rust crate javascript-globals to v2 (#26185)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [javascript-globals](https://redirect.github.com/oxc-project/javascript-globals) | workspace.dependencies | major | `1.5.1` → `2.0.0` | --- ### Release Notes <details> <summary>oxc-project/javascript-globals (javascript-globals)</summary> ### [`v2.0.0`](https://redirect.github.com/oxc-project/javascript-globals/blob/HEAD/CHANGELOG.md#200---2026-08-27) [Compare Source](https://redirect.github.com/oxc-project/javascript-globals/compare/javascript-globals-v1.6.0...javascript-globals-v2.0.0) ##### Other - \[**breaking**] compact generated global tables ([#​280](https://redirect.github.com/oxc-project/javascript-globals/pull/280)) </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. 🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
f1831d59ea |
chore(deps): update rust crates (#26179)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [convert_case](https://redirect.github.com/rutrum/convert-case) | workspace.dependencies | minor | `0.11.0` → `0.12.0` | | [flate2](https://redirect.github.com/rust-lang/flate2-rs) | workspace.dependencies | patch | `1.1.9` → `1.1.10` | | [indexmap](https://redirect.github.com/indexmap-rs/indexmap) | workspace.dependencies | patch | `2.14.0` → `2.14.1` | | [mimalloc-safe](https://redirect.github.com/napi-rs/mimalloc-safe) | workspace.dependencies | patch | `0.1.64` → `0.1.65` | --- > [!WARNING] > Some dependencies could not be looked up. Check the warning logs for more information. --- ### Release Notes <details> <summary>rutrum/convert-case (convert_case)</summary> ### [`v0.12.0`](https://redirect.github.com/rutrum/convert-case/blob/HEAD/CHANGELOG.md#0120-Optimizations) [Compare Source](https://redirect.github.com/rutrum/convert-case/compare/0.11.0...0.12.0) This release improves speed and memory efficiency. A couple techniques were used: - Character case checks first check ascii before doing the more expensive grapheme checks (which require heap allocations). - Delimiter only splits get a dedicated path in the `split` method. - The case of characters is computed upfront in a bitmask before checking individual boundary conditions in `split`. Built-in boundaries get a custom implementation built on top of this bitmask. | Benchmark | Before | After | Improvement | | ----------------------------------------------- | --------- | -------- | ----------- | | `snake_short` (`"hello_world"`) | 412 ns | 21.3 ns | −95% | | `lower_upper` (`"lowerUpperUpper"`) | 1,631 ns | 475 ns | −71% | | `acronym` (`"XMLRequest"`) | 1,108 ns | 418 ns | −62% | | `camel_set` (`"getTotalLength3D"`) | 3,844 ns | 643 ns | −83% | | `defaults_mixed` (9 boundaries) | 8,083 ns | 1,500 ns | −81% | | `defaults_long_snake` (265 chars) | 52,281 ns | 4,730 ns | −91% | | `unicode_cyrillic` (`"ПЕРСПЕКТИВА24"`) | 8,334 ns | 741 ns | −91% | | Full pipeline `from_to_all` (4 words x 14 x 14) | 1,230 µs | 263 µs | −79% | </details> <details> <summary>rust-lang/flate2-rs (flate2)</summary> ### [`v1.1.10`](https://redirect.github.com/rust-lang/flate2-rs/releases/tag/1.1.10) [Compare Source](https://redirect.github.com/rust-lang/flate2-rs/compare/1.1.9...1.1.10) #### What's Changed - feat: reuse zlib's decoder buffer by [@​Vaiz](https://redirect.github.com/Vaiz) in [#​532](https://redirect.github.com/rust-lang/flate2-rs/pull/532) - feat: add reset method for read::GzDecoder and buffered::GzDecoder by [@​Vaiz](https://redirect.github.com/Vaiz) in [#​534](https://redirect.github.com/rust-lang/flate2-rs/pull/534) - Drop cloudflare-zlib by [@​kornelski](https://redirect.github.com/kornelski) in [#​539](https://redirect.github.com/rust-lang/flate2-rs/pull/539) - Add a wrapper for the `Crc` struct by [@​MikkelPaulson](https://redirect.github.com/MikkelPaulson) in [#​540](https://redirect.github.com/rust-lang/flate2-rs/pull/540) - Bump miniz\_oxide to 0.9 by [@​oscargus](https://redirect.github.com/oscargus) in [#​543](https://redirect.github.com/rust-lang/flate2-rs/pull/543) - Upgrade miniz\_oxide and add unit tests of the different flush kinds by [@​fintelia](https://redirect.github.com/fintelia) in [#​498](https://redirect.github.com/rust-lang/flate2-rs/pull/498) - Fix infinite loop in writing gzip header/footer by [@​Shnatsel](https://redirect.github.com/Shnatsel) in [#​547](https://redirect.github.com/rust-lang/flate2-rs/pull/547) - test: generate corrupt gzip fixture at runtime by [@​nanookclaw](https://redirect.github.com/nanookclaw) in [#​550](https://redirect.github.com/rust-lang/flate2-rs/pull/550) - Reject oversized gzip extra fields by [@​Byron](https://redirect.github.com/Byron) in [#​553](https://redirect.github.com/rust-lang/flate2-rs/pull/553) - Reject incomplete deflate streams at EOF by [@​Guflly](https://redirect.github.com/Guflly) in [#​556](https://redirect.github.com/rust-lang/flate2-rs/pull/556) - Include `README.md` in a private module by [@​bushrat011899](https://redirect.github.com/bushrat011899) in [#​562](https://redirect.github.com/rust-lang/flate2-rs/pull/562) - Add `no_std` support using nightly `alloc_io` by [@​bushrat011899](https://redirect.github.com/bushrat011899) in [#​559](https://redirect.github.com/rust-lang/flate2-rs/pull/559) - Update `get_mut()` documentation to make clear how 'inner\` can be used by [@​Byron](https://redirect.github.com/Byron) in [#​558](https://redirect.github.com/rust-lang/flate2-rs/pull/558) #### New Contributors - [@​Vaiz](https://redirect.github.com/Vaiz) made their first contribution in [#​532](https://redirect.github.com/rust-lang/flate2-rs/pull/532) - [@​MikkelPaulson](https://redirect.github.com/MikkelPaulson) made their first contribution in [#​540](https://redirect.github.com/rust-lang/flate2-rs/pull/540) - [@​oscargus](https://redirect.github.com/oscargus) made their first contribution in [#​543](https://redirect.github.com/rust-lang/flate2-rs/pull/543) - [@​nanookclaw](https://redirect.github.com/nanookclaw) made their first contribution in [#​550](https://redirect.github.com/rust-lang/flate2-rs/pull/550) - [@​Guflly](https://redirect.github.com/Guflly) made their first contribution in [#​556](https://redirect.github.com/rust-lang/flate2-rs/pull/556) - [@​bushrat011899](https://redirect.github.com/bushrat011899) made their first contribution in [#​562](https://redirect.github.com/rust-lang/flate2-rs/pull/562) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.1.9...1.1.10> </details> <details> <summary>indexmap-rs/indexmap (indexmap)</summary> ### [`v2.14.1`](https://redirect.github.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#2141-2026-08-28) [Compare Source](https://redirect.github.com/indexmap-rs/indexmap/compare/2.14.0...2.14.1) - Simplify comparisons where `Equivalent` isn't needed (`Q = K`). - Unify index assertions for bounds checks. - Fix (or `expect`) clippy lints. </details> <details> <summary>napi-rs/mimalloc-safe (mimalloc-safe)</summary> ### [`v0.1.65`](https://redirect.github.com/napi-rs/mimalloc-safe/blob/HEAD/CHANGELOG.md#0165---2026-08-24) [Compare Source](https://redirect.github.com/napi-rs/mimalloc-safe/compare/mimalloc-safe-v0.1.64...mimalloc-safe-v0.1.65) ##### Chore - *(deps)* Update actions/setup-node action to v7 ([#​89](https://redirect.github.com/napi-rs/mimalloc-safe/pull/89)) - *(deps)* Update yarn to v4.18.0 ([#​87](https://redirect.github.com/napi-rs/mimalloc-safe/pull/87)) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
0e734cc7ae |
test(formatter_css): pin signed-value parser fixes from oxc-css-parser 0.0.12 (#26132)
Bump parser and pin fixed by https://github.com/oxc-project/oxc-css-parser/pull/158 |
||
|
|
ac4785a139 |
perf(diagnostics): use fixed ANSI styles (#26130)
Replace dynamic diagnostic styles with fixed ANSI prefixes, reducing `oxfmt` and `oxlint` release text size. AI assistance: Codex was used. The contributor remains responsible for this change. |
||
|
|
4e258430cd |
release(crates): oxc v0.147.0 (#26046)
### 🚀 Features - |
||
|
|
8b0cbed459 |
chore(deps): bump oxc-resolver to 11.24.3 (#26049)
Bumps `oxc-resolver` to 11.24.3. The arm64 macOS oxlint release binary remains 12,542,400 bytes (0-byte change). AI assistance was used to update the dependency, measure binary size, and prepare this PR. I reviewed and take responsibility for the changes. |
||
|
|
32c2675084 |
chore(deps): update rust crates (#26024)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [javascript-globals](https://redirect.github.com/oxc-project/javascript-globals) | workspace.dependencies | minor | `1.5.2` → `1.6.0` | | [papaya](https://redirect.github.com/ibraheemdev/papaya) | workspace.dependencies | patch | `0.2.4` → `0.2.5` | | [saphyr](https://redirect.github.com/saphyr-rs/saphyr) | workspace.dependencies | patch | `0.0.11` → `0.0.12` | | [similar](https://redirect.github.com/mitsuhiko/similar) | workspace.dependencies | minor | `3.1.2` → `3.2.0` | --- ### Release Notes <details> <summary>oxc-project/javascript-globals (javascript-globals)</summary> ### [`v1.6.0`](https://redirect.github.com/oxc-project/javascript-globals/blob/HEAD/CHANGELOG.md#160---2026-08-18) [Compare Source](https://redirect.github.com/oxc-project/javascript-globals/compare/javascript-globals-v1.5.2...javascript-globals-v1.6.0) ##### Added - add Bun globals ([#​275](https://redirect.github.com/oxc-project/javascript-globals/pull/275)) ##### Other - reduce Rust dev debug info ([#​271](https://redirect.github.com/oxc-project/javascript-globals/pull/271)) </details> <details> <summary>ibraheemdev/papaya (papaya)</summary> ### [`v0.2.5`](https://redirect.github.com/ibraheemdev/papaya/releases/tag/v0.2.5): 0.2.5 [Compare Source](https://redirect.github.com/ibraheemdev/papaya/compare/v0.2.4...v0.2.5) - Added the `fast-barrier` feature to allow opting out of process wide memory barriers, which can be expensive to initialize ([#​100](https://redirect.github.com/ibraheemdev/papaya/pull/100)). - Fixed a bug where blocking resizes could lead to deadlocks ([#​92](https://redirect.github.com/ibraheemdev/papaya/pull/92)). - `HashSet::retain` no longer takes a mutable reference ([#​101](https://redirect.github.com/ibraheemdev/papaya/pull/101)). </details> <details> <summary>saphyr-rs/saphyr (saphyr)</summary> ### [`v0.0.12`](https://redirect.github.com/saphyr-rs/saphyr/compare/v0.0.11...v0.0.12) [Compare Source](https://redirect.github.com/saphyr-rs/saphyr/compare/v0.0.11...v0.0.12) </details> <details> <summary>mitsuhiko/similar (similar)</summary> ### [`v3.2.0`](https://redirect.github.com/mitsuhiko/similar/blob/HEAD/CHANGELOG.md#320) [Compare Source](https://redirect.github.com/mitsuhiko/similar/compare/3.1.2...3.2.0) - Added structured, line-oriented three-way merging through `TextMerge`, with merge and diff3 conflict output, configurable labels and marker sizes, owned and borrowed inputs, byte output, and whitespace-insensitive comparison. - Added `WhitespaceMode` and `TextDiffConfig::whitespace_mode` for Git-style line comparisons that ignore changes in whitespace (`-b`) or all whitespace (`-w`). - Changed `Algorithm::Myers` to reduce unmatched/confusing records and use Git-style bounded, non-minimal splits on expensive searches, and added `Algorithm::RawMyers` for the previous shortest-edit-script behavior without output-changing heuristics. - Improved heuristics and performance for most algorithms other than LCS. - Improved large-input performance by avoiding quadratic Histogram scans. </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
2cde1f6671 |
fix(rust): address nightly deprecations (#25998)
Addresses deprecations reported by the latest Rust nightly while preserving Rust 1.98 compatibility. - Rename `unit-bindings` to `unit_bindings`: hyphenated lint names are deprecated in favor of their canonical underscore spelling. - Replace `isize::max_value()` and `usize::max_value()` with `isize::MAX` and `usize::MAX`: the legacy numeric methods are deprecated in favor of associated constants. - Set explicit `MAX_INDEX` values on `define_index_type!`: `oxc_index` otherwise generates `<raw>::max_value() as usize`; the explicit modern constants avoid that deprecated expansion without changing the index limits. - Remove obsolete `clippy::legacy_numeric_constants` expectations: the corrected code no longer triggers that lint, so the expectations would be unfulfilled. - Allow the AST scanner to consume optional `define_index_type!` configuration: it previously parsed only the struct declaration and rejected the added `MAX_INDEX` option. AI-assisted. |
||
|
|
c0f71564c3 |
chore(deps): bump MSRV to 1.96.0 (#25946)
## Summary - bump the workspace MSRV from 1.95.0 to 1.96.0 under the N-2 policy after #25945 - retain an MSRV-compatible layout calculation while suppressing the Rust 1.98 Clippy suggestion |
||
|
|
0389c4010e |
release(crates): oxc v0.146.0 (#25912)
### 🚀 Features - |
||
|
|
4a4a1fb2e7 |
release(crates): oxc v0.145.0 (#25865)
### 💥 BREAKING CHANGES - |
||
|
|
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> |
||
|
|
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. |
||
|
|
cd25e4f56e |
fix(codegen): surface conformance reference panics (#25552)
## Summary Make Codegen conformance failures visible when the Rust reference panics. - Preserve `null` for source text with parser diagnostics. - Return a N-API error for a caught reference panic. - Let Vitest fail the affected fixture instead of silently skipping it. |
||
|
|
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 |
||
|
|
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> |
||
|
|
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. |
||
|
|
b6f1458dec |
release(crates): oxc v0.144.0 (#25474)
### 💥 BREAKING CHANGES - |
||
|
|
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. |
||
|
|
e23dccf338 |
fix(formatter_css): bump oxc-css-parser to accept unknown at-rule with interpolated (#25277)
Fixes #25272 |
||
|
|
45a17c25d1 |
release(crates): oxc v0.143.0 (#25250)
### 💥 BREAKING CHANGES - |
||
|
|
20f68e74a3 |
fix(oxlint,oxfmt): respect .gitignore for walk targets and explicit paths (#25133)
Fixes #25107. The `ignore` crate walker enforces gitignore's "everything under an ignored directory is ignored" rule only by pruning ignored directories during traversal. And it never filters its walk roots. So when a walk target (based on cwd or an explicit CLI target path) is already inside a gitignored tree, pruning never happens and a bare directory pattern like `generated` matches nothing file-level. (even though `git check-ignore` says they are ignored) See also BurntSushi/ripgrep#2595 ### Changes - oxc_config: added `GitignoreChecker` - a pre-walk check that replays git's resolution order over the ancestor chain - Matchers and `.git`/`.jj` probes are cached per directory - oxlint / oxfmt: filter all CLI targets through this check before walking ### Behavior changes - Explicitly passed gitignored files are now skipped (previously always linted/formatted) - `oxlint --no-ignore` no longer force-lints gitignored targets - The same behavior as `--no-ignore` does not disable during walk `.gitignore` <details> <summary>FYI: Current our ignore model overview</summary> Two independent families, AND-ed (a path excluded by any layer is skipped): | Layer | Source | oxlint | oxfmt | | -------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | git-derived (always on, not user-disablable) | nested `.gitignore`, `.git/info/exclude` (during walk) | walker via shared `configure_walk_builder` | same (shared) | | | walk roots / explicit CLI targets | `GitignoreChecker` (this PR) | `GitignoreChecker` (this PR) | | tool-owned | ignore file | `.eslintignore` / `--ignore-path`; disabled by `--no-ignore` | `.prettierignore` / `--ignore-path`; no disable flag | | | CLI patterns | `--ignore-pattern`; disabled by `--no-ignore` | `!pattern` path args | | | config `ignorePatterns` | `LintIgnoreMatcher` (already containment-correct via `matched_path_or_any_parents`); always on | scope-local `is_path_ignored` (same); always on | NOTE: `ignorePatterns` never had this bug, only the walker-backed gitignore layer did; this PR brings it to the same level. A `!` negation in `ignorePatterns` cannot re-include gitignored paths (unchanged; the layers are independent). </details> |
||
|
|
dd28596d0a |
fix(formatter_css): bump oxc-css-parser for substituted at-rule preludes (#25104)
Fixes #25075 |
||
|
|
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. |
||
|
|
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. |
||
|
|
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> |
||
|
|
4b6a87847c | chore(deps): sort and annotate workspace dependencies (#24822) | ||
|
|
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`. |
||
|
|
fdcdb10d0f |
chore(cargo-shear): remove redundant ignore (#24767)
<img width="730" height="185" alt="Screenshot 2026-07-21 at 16 20 23" src="https://github.com/user-attachments/assets/f0d41a1f-fa49-4d7c-83d0-7f5f07ac04e7" /> |
||
|
|
14533a3dc1 |
release(crates): oxc v0.141.0 (#24714)
### 💥 BREAKING CHANGES - |
||
|
|
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 |
||
|
|
75ce81de95 |
chore(deps): update rust crate syn to v3 (#24684)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | major | `2` → `3` | --- ### Release Notes <details> <summary>dtolnay/syn (syn)</summary> ### [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0) This release contains adjustments to the syntax tree to account for ongoing Rust language development from the 3 years since syn 2.0.0 and to anticipate some in-flight Rust language RFCs. These include: default values in fields, pinned type sugar, raw lifetimes, generator blocks and functions, unnamed enum variants, attributes in tuple types and tuple patterns, named arguments in parenthesized generic argument lists, lightweight clones, const traits, const function pointers, mutability restricted fields, supertrait auto implementation, final associated functions, trait implementability restrictions, const blocks in path arguments, item-level const blocks, return type notation, never patterns, function delegation, mutable by-reference bindings, in-place initialization, field projections, explicitly dyn-compatible traits, view types, file-level frontmatter, generic const arguments, guard patterns, lazy type aliases, explicitly safe foreign items, super let, unsafe fields, pattern types, heterogeneous try-blocks, function contracts, async function trait bounds, static closure coroutine syntax, unsafe binder types, move expressions, for-await loops, and postfix keywords. <br> <p align="center"><a href="https://docs.rs/syn/3/syn">[API documentation for 3.0]</a></p> ### Breaking changes #### Modifiers To reserve more room for language evolution, there are 10 new non-exhaustive structs in the syntax tree having the following commonality: - Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`, `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`, `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`} - Each implements `Default`. The default value is guaranteed to comprise no tokens. - Non-exhaustive. Can only be instantiated by Syn's parser or by creating and then mutating `▁▁Modifiers::default()`. - Does not implement `Parse`. When parsing, they are parsed by the enclosing syntax tree node. - Does not implement `ToTokens`. In some cases the syntax that these nodes might hold in the future is not necessarily contiguous tokens. - Provides `.require_empty() -> Result<()>` which returns a meaningfully spanned error if the modifiers are different from the empty default. This enables a caller to reject syntax it does not recognize without knowing what that syntax may be. #### Types - `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`. - The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr` have been unified into an enum of type `PointerMutability`, which was already previously used by `Expr::RawAddr`. - Every `Type` variant now holds attributes, which can represent the attributes of element types inside a tuple type, or attributes for a function return type. - `BareFnArg` is renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in addition to the existing use in `Type::FnPtr`. #### Expressions - In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed to `inputs_begin` and `inputs_end` to indicate the beginning and ending `|` token of the closure inputs. #### Statements - Attributes are now preserved on all expression kinds in statement position. Previously, parsing would silently lose attributes on some expression statements without a dedicated Expr variant, such as tail-call expressions. #### Patterns - The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held in the arm's `pat`. #### Items - The `unsafety` field of `Signature`, which represented the presence or absence of `unsafe`, is replaced by a 3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static` also gets a `Safety`. - Some of the fields of `Receiver` have been split to a non-exhaustive `ReceiverKind` enum to create room for proposed new kinds of method receivers, such as pinned. - Type aliases now hold a `WhereClausePlacement` to distinguish between early placement (which is the default for item-level type aliases and is *deprecated* in associated type aliases) and late placement (which is the default for associated type aliases and is *unstable* in item-level type aliases). Parsing and printing a syntax tree will now preserve the where-clause placement rather than rewriting it to the default placement for the item kind. #### Generics - `WherePredicate::Lifetime` and `WherePredicate::Type` have a new field holding the attributes on the where-predicates. - `GenericParam::Type` and `GenericParam::Const` now match the rest of the syntax tree in holding their optional default using a single Option of tuple, rather than a pair of Option. #### Literals - The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes, matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any` may be used to parse lifetimes permissive of keywords. - `LitInt` and `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)` and then match `Lit::Int` or `Lit::Float`. - The `StrStyle` enum was unused and has been deleted. #### More - `File` contains a new `Option<Frontmatter>`, but does not yet parse frontmatter in `syn::parse_file` until that language feature progresses closer to stabilization. - Some enums no longer provide `From` impls. Construct the variant by name instead, such as `Expr::Array(e)` in place of `e.into()`. - The `pop` method of `Punctuated<T, P>` now returns `Option<T>` discarding the trailing punctuation if any, rather than `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior. - Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides a method for processing `Span`. This was already incompletely supported and never walked most of the spans in a syntax tree. - The `Speculative` and `AnyDelimiter` traits have been sealed and cannot be implemented for types outside of Syn's `ParseStream`. </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. 🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
da927afaa5 |
chore(deps): update rust crates (#24681)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://redirect.github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.103` → `1.0.104` | | [bitflags](https://redirect.github.com/bitflags/bitflags) | workspace.dependencies | patch | `2.13.0` → `2.13.1` | | [compact_str](https://redirect.github.com/ParkMyCar/compact_str) | workspace.dependencies | minor | `0.9.1` → `0.10.0` | | [futures](https://rust-lang.github.io/futures-rs) ([source](https://redirect.github.com/rust-lang/futures-rs)) | workspace.dependencies | patch | `0.3.32` → `0.3.33` | | [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.28` → `0.4.30` | | [prettyplease](https://redirect.github.com/dtolnay/prettyplease) | workspace.dependencies | minor | `0.2.37` → `0.3.0` | | [proc-macro2](https://redirect.github.com/dtolnay/proc-macro2) | workspace.dependencies | patch | `1.0.106` → `1.0.107` | | [quote](https://redirect.github.com/dtolnay/quote) | workspace.dependencies | patch | `1.0.46` → `1.0.47` | | [self_cell](https://redirect.github.com/Voultapher/self_cell) | workspace.dependencies | minor | `1.2.2` → `1.3.0` | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.228` → `1.0.229` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.118` → `2.0.119` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.52.3` → `1.53.0` | | [toml](https://redirect.github.com/toml-rs/toml) | workspace.dependencies | patch | `1.1.2+spec-1.1.0` → `1.1.3` | --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.104`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.104) [Compare Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.103...1.0.104) - Update `syn` dev-dependency to version 3 </details> <details> <summary>bitflags/bitflags (bitflags)</summary> ### [`v2.13.1`](https://redirect.github.com/bitflags/bitflags/blob/HEAD/CHANGELOG.md#2131) [Compare Source](https://redirect.github.com/bitflags/bitflags/compare/2.13.0...2.13.1) #### What's Changed - Lower the LLVM IR output of the generated output by [@​bolshoytoster](https://redirect.github.com/bolshoytoster) in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) #### New Contributors - [@​bolshoytoster](https://redirect.github.com/bolshoytoster) made their first contribution in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) **Full Changelog**: <https://github.com/bitflags/bitflags/compare/2.13.0...2.13.1> </details> <details> <summary>ParkMyCar/compact_str (compact_str)</summary> ### [`v0.10.0`](https://redirect.github.com/ParkMyCar/compact_str/blob/HEAD/CHANGELOG.md#0100) [Compare Source](https://redirect.github.com/ParkMyCar/compact_str/compare/v0.9.1...v0.10.0) ##### July 12, 2026 #### Changes - Minimum supported Rust version (MSRV) was bumped to `v1.71`. - The `Error` trait impls once again require the `std` feature. This reverts the (unreleased) no-std `core::error::Error` support from [#​443](https://redirect.github.com/ParkMyCar/compact_str/pull/443), which required Rust `v1.81`, it can return once the MSRV reaches `v1.81`. - Added support for the [`garde`](https://crates.io/crates/garde) validation crate under an optional feature, implementing its string rule traits for `CompactString`. - Implemented in [`feat: add garde validation support`](https://redirect.github.com/ParkMyCar/compact_str/pull/471). - Added support for the [`schemars`](https://crates.io/crates/schemars) crate under an optional feature, implementing `JsonSchema` for `CompactString`. Every method delegates to `String`'s impl, so the generated schema is identical to a `String`'s. - Implemented in [`feat: support schemars`](https://redirect.github.com/ParkMyCar/compact_str/pull/454). - Added support for the [`valuable`](https://crates.io/crates/valuable) crate under an optional feature, implementing the `Valuable` trait for `CompactString` so it presents as a `Value::String`. - Implemented in [`Add impl Valuable`](https://redirect.github.com/ParkMyCar/compact_str/pull/451). - Added a `pyo3` feature which implements [`FromPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.FromPyObject.html) and [`IntoPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.IntoPyObject.html) for `CompactString`, so it can be used seamlessly with [`pyo3`](https://crates.io/crates/pyo3) v0.29. - Implemented in [`feat: add pyo3 feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/446). - Added support for the [`defmt`](https://crates.io/crates/defmt) crate under an optional feature, implementing `defmt::Format` for `CompactString`. - Implemented in [`feat: Add support for defmt`](https://redirect.github.com/ParkMyCar/compact_str/pull/438). - Added a `bevy-reflect` feature which implements [`bevy_reflect`](https://crates.io/crates/bevy_reflect)'s reflection traits for `CompactString` (as an opaque type). - Implemented in [`feat: Add bevy-reflect feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/439). - Added a `utoipa` feature which implements [`utoipa`](https://crates.io/crates/utoipa)'s `PartialSchema` and `ToSchema` traits for `CompactString`. - Implemented in [`fix sqlx type impl, add utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/442) and [`feat: fixup the utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/445). - Removed `#[must_use]` from the `Drain` iterator. - Implemented in [`fix: remove #[must_use] from Drain`](https://redirect.github.com/ParkMyCar/compact_str/pull/486). - Added [Kani](https://redirect.github.com/model-checking/kani) proof harnesses to formally verify the crate's unsafe code. - Implemented in [`feat: add kani proof harnesses to verify unsafe code`](https://redirect.github.com/ParkMyCar/compact_str/pull/480). - Bump the [`sqlx`](https://crates.io/crates/sqlx) dependency to `v0.9`. Enabling the `sqlx` feature now requires Rust `v1.94`. - Implemented in [`deps: bump sqlx to 0.9`](https://redirect.github.com/ParkMyCar/compact_str/pull/474). - Bump the [`bevy_reflect`](https://crates.io/crates/bevy_reflect) dependency to `v0.19`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). - Bump the [`markup`](https://crates.io/crates/markup) dependency to `v0.16`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). #### Bug Fixes - Fixed possible undefined behavior when reallocating a heap-allocated `CompactString`. - Implemented in [`fix: possible undefined behavior with realloc in a HeapString`](https://redirect.github.com/ParkMyCar/compact_str/pull/459). - Fixed `CompactString::retain` to avoid briefly creating references to invalid UTF-8. - Implemented in [`Avoid invalid UTF-8 references in retain`](https://redirect.github.com/ParkMyCar/compact_str/pull/469). - Fixed `CompactString::as_mut_bytes` exposing uninitialized spare capacity through a `&mut [u8]`; heap spare capacity is now zero-initialized before it's returned. - Implemented in [`fix: avoid exposing uninitialized spare capacity`](https://redirect.github.com/ParkMyCar/compact_str/pull/468). #### Performance - Reuse an owned `String`'s existing allocation in `CompactString::new`. - Implemented in [`perf: reuse owned String in CompactString::new`](https://redirect.github.com/ParkMyCar/compact_str/pull/460). - Specialize `ToCompactString` for `str`. - Implemented in [`perf: specialize ToCompactString for str`](https://redirect.github.com/ParkMyCar/compact_str/pull/461). - Pass heap fields by value when dropping a `CompactString` instead of `&mut Repr`. - Implemented in [`perf: Drop passes heap fields by-value instead of &mut Repr`](https://redirect.github.com/ParkMyCar/compact_str/pull/462). - Skip the `Result` on the hot inline construction path with `Repr::new_panic`. - Implemented in [`perf: add Repr::new_panic to skip Result on the hot inline path`](https://redirect.github.com/ParkMyCar/compact_str/pull/463). - Assert internal `Repr` invariants so the compiler can fold dead error-handling branches on construction. - Implemented in [`perf: assert Repr invariants to fold dead Err arms on construction`](https://redirect.github.com/ParkMyCar/compact_str/pull/467). - Speed up append, integer formatting, and inline creation. - Implemented in [`perf: speed up append, integer formatting, and inline creation`](https://redirect.github.com/ParkMyCar/compact_str/pull/479). - Bulk-copy valid runs in `from_utf8_lossy` instead of copying byte-by-byte. - Implemented in [`perf: bulk-copy valid runs in from_utf8_lossy`](https://redirect.github.com/ParkMyCar/compact_str/pull/484). - Specialize memory copies for small/medium strings to avoid calling `memcpy`. Keep heap construction out-of-line, and move the OOM panic off the hot construction path to keep generated assembly lean. - Implemented in [`perf: several small improvements`](https://redirect.github.com/ParkMyCar/compact_str/pull/488). - Replaced the `ryu` dependency with [`zmij`](https://crates.io/crates/zmij) for float formatting. - Implemented in [`deps: replace ryu with zmij for float formatting`](https://redirect.github.com/ParkMyCar/compact_str/pull/485). </details> <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.33`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://redirect.github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://redirect.github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://redirect.github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://redirect.github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://redirect.github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://redirect.github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://redirect.github.com/rust-lang/futures-rs/issues/3014)) </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.30`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) ### [`v0.4.29`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) </details> <details> <summary>dtolnay/prettyplease (prettyplease)</summary> ### [`v0.3.0`](https://redirect.github.com/dtolnay/prettyplease/releases/tag/0.3.0) [Compare Source](https://redirect.github.com/dtolnay/prettyplease/compare/0.2.37...0.3.0) - Update to syn 3 (release notes: <https://github.com/dtolnay/syn/releases/tag/3.0.0>) </details> <details> <summary>dtolnay/proc-macro2 (proc-macro2)</summary> ### [`v1.0.107`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.107) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.106...1.0.107) - Documentation improvements </details> <details> <summary>dtolnay/quote (quote)</summary> ### [`v1.0.47`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.47) [Compare Source](https://redirect.github.com/dtolnay/quote/compare/1.0.46...1.0.47) - Documentation improvements </details> <details> <summary>Voultapher/self_cell (self_cell)</summary> ### [`v1.3.0`](https://redirect.github.com/Voultapher/self_cell/releases/tag/v1.3.0): Version 1.3.0 [Compare Source](https://redirect.github.com/Voultapher/self_cell/compare/v1.2.2...v1.3.0) - Async `self_cell` construction is now `Send`, this makes using it with tokio easier. This comes at no additional performance cost. See [#​74](https://redirect.github.com/Voultapher/self_cell/issues/74) for more details. - Fixed some typos in the docs. </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.229`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.229) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.228...v1.0.229) - Update to syn 3 </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119) - Preserve attributes on tail-call expressions in statement position ([#​1994](https://redirect.github.com/dtolnay/syn/issues/1994)) - Parse field-representing types builtin in type position ([#​1996](https://redirect.github.com/dtolnay/syn/issues/1996)) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.0): Tokio v1.53.0 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.4...tokio-1.53.0) ### 1.53.0 (July 17th, 2026) ##### Added - fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#​8266]) - metrics: add task schedule latency metric ([#​7986]) - net: add `SocketAddr` methods to Unix sockets ([#​8144]) ##### Changed - io: add `#[inline]` to IO trait impls for in-memory types ([#​8242]) - net: implement UCred::pid on FreeBSD ([#​8086]) - net: support Nuttx target os ([#​8259]) - signal: refactor global variables on Windows ([#​8231]) - sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#​8095]) - taskdump: support taskdumps on s390x ([#​8192]) - time: add `#[track_caller]` to `timeout_at()` ([#​8077]) - time: consolidate mutex locks on spurious poll ([#​8124]) - time: defer waker clone on spurious poll ([#​8107]) - time: move lazy-registration state into `Sleep` ([#​8132]) - tracing: remove unnecessary span clone ([#​8126]) ##### Fixed - io: do not treat zero-length reads as EOF in `Chain` ([#​8251]) - net: use getpeereid for QNX peer credentials ([#​8270]) - runtime: avoid illegal state in `FastRand` ([#​8078]) - sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#​8260]) - taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#​8043]) - time: avoid stack overflow in runtime constructor ([#​8093]) - time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#​8169]) ##### IO uring (unstable) - fs: use io-uring for `fs::try_exists` ([#​8080]) - fs: use io-uring for renaming files ([#​7800]) - rt: flush io-uring CQE in case of CQE overflow ([#​8277]) ##### Documented - docs: clarify cancel safety wording ([#​8181]) - fs: clarify `create_dir_all` succeeds if path exists ([#​8149]) - io: add warning about stdout reordering with multiple handles ([#​8276]) - net: document pipe `try_read*`/`try_write*` readiness behavior ([#​8032]) - runtime: document interaction with fork() ([#​8202]) - sync: clarify broadcast lagging semantics ([#​8239]) - sync: document memory ordering guarantees for Semaphore ([#​8119]) - task: explain why `yield_now` defers its waker ([#​8254]) - time: add panic docs to `timeout_at()` ([#​8077]) - time: fix reversed poll order in timeout doc ([#​8214]) [#​7800]: https://redirect.github.com/tokio-rs/tokio/pull/7800 [#​7986]: https://redirect.github.com/tokio-rs/tokio/pull/7986 [#​8032]: https://redirect.github.com/tokio-rs/tokio/pull/8032 [#​8043]: https://redirect.github.com/tokio-rs/tokio/pull/8043 [#​8077]: https://redirect.github.com/tokio-rs/tokio/pull/8077 [#​8078]: https://redirect.github.com/tokio-rs/tokio/pull/8078 [#​8080]: https://redirect.github.com/tokio-rs/tokio/pull/8080 [#​8086]: https://redirect.github.com/tokio-rs/tokio/pull/8086 [#​8093]: https://redirect.github.com/tokio-rs/tokio/pull/8093 [#​8095]: https://redirect.github.com/tokio-rs/tokio/pull/8095 [#​8107]: https://redirect.github.com/tokio-rs/tokio/pull/8107 [#​8119]: https://redirect.github.com/tokio-rs/tokio/pull/8119 [#​8124]: https://redirect.github.com/tokio-rs/tokio/pull/8124 [#​8126]: https://redirect.github.com/tokio-rs/tokio/pull/8126 [#​8132]: https://redirect.github.com/tokio-rs/tokio/pull/8132 [#​8144]: https://redirect.github.com/tokio-rs/tokio/pull/8144 [#​8149]: https://redirect.github.com/tokio-rs/tokio/pull/8149 [#​8169]: https://redirect.github.com/tokio-rs/tokio/pull/8169 [#​8181]: https://redirect.github.com/tokio-rs/tokio/pull/8181 [#​8192]: https://redirect.github.com/tokio-rs/tokio/pull/8192 [#​8193]: https://redirect.github.com/tokio-rs/tokio/pull/8193 [#​8202]: https://redirect.github.com/tokio-rs/tokio/pull/8202 [#​8214]: https://redirect.github.com/tokio-rs/tokio/pull/8214 [#​8231]: https://redirect.github.com/tokio-rs/tokio/pull/8231 [#​8239]: https://redirect.github.com/tokio-rs/tokio/pull/8239 [#​8242]: https://redirect.github.com/tokio-rs/tokio/pull/8242 [#​8251]: https://redirect.github.com/tokio-rs/tokio/pull/8251 [#​8254]: https://redirect.github.com/tokio-rs/tokio/pull/8254 [#​8259]: https://redirect.github.com/tokio-rs/tokio/pull/8259 [#​8260]: https://redirect.github.com/tokio-rs/tokio/pull/8260 [#​8266]: https://redirect.github.com/tokio-rs/tokio/pull/8266 [#​8270]: https://redirect.github.com/tokio-rs/tokio/pull/8270 [#​8276]: https://redirect.github.com/tokio-rs/tokio/pull/8276 [#​8277]: https://redirect.github.com/tokio-rs/tokio/pull/8277 ### [`v1.52.4`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.4): Tokio v1.52.4 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.52.4) ### 1.52.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#​8222]) ##### Fixed (unstable) - taskdump: remove crate disambiguators from output ([#​8264]) [#​8264]: https://redirect.github.com/tokio-rs/tokio/pull/8264 [#​8222]: https://redirect.github.com/tokio-rs/tokio/pull/8222 </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v1.1.3`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
582ea7547f |
refactor(napi): don't force tokio_rt on the napi binding crates (#24475)
## What
Stop forcing `tokio_rt` on oxc's napi binding crates.
`tokio_rt` was enabled as a blanket default on the workspace `napi` dependency, so **every** napi crate pulled in tokio. But the napi binding crates don't use a tokio runtime:
- no `#[napi] async fn` exports and no `tokio::` usage anywhere in the napi crates
- the only async surface is `oxc_parser_napi`'s `parse_async`, which is a libuv-backed `AsyncTask` / `Task` (napi4), **not** a tokio future
## Change (2 lines)
- workspace `Cargo.toml`: `napi = { version = "3", features = ["tokio_rt"] }` → `napi = { version = "3" }` — napi's own `default` already provides `napi4` + `dyn-symbols`, which covers `AsyncTask`
- `napi/parser/Cargo.toml`: drop the now-redundant `features = ["async"]`
## Effect
- oxc's napi crates (`oxc_napi`, `oxc_parser_napi`, `oxc_transform_napi`, `oxc_minify_napi`) no longer link tokio → smaller npm binaries
- downstream consumers that share the same `napi` (e.g. a bundler wiring napi's pluggable async-runtime SPI) are no longer forced to pull tokio in via Cargo feature unification
- crates that genuinely want napi's tokio async (`oxlint`, `oxfmt`) keep opting in explicitly via `features = ["async"]`
## Verification
- `cargo check --workspace` — green
- `cargo tree -i tokio` shows tokio gone from all four napi crates' normal dependency trees; `napi` now resolves to just `default` (`napi4` + `dyn-symbols`)
- CI validates the JS-side async parse (`parse_async`) tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01T34fMrYCf2V13Mg8BKmnda
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Dependency-feature-only change with explicit opt-in preserved for crates that need napi async; async parse paths use `Task`/`AsyncTask`, not Tokio futures.
>
> **Overview**
> Removes **`tokio_rt`** from the workspace **`napi`** dependency so NAPI binding crates no longer inherit Tokio through Cargo feature unification. **`napi/parser`** also drops the redundant **`features = ["async"]`** on its **`napi`** line.
>
> Published NAPI crates (`oxc_parser_napi`, `oxc_transform_napi`, etc.) should link a smaller native addon while **`parse`** / **`parse_raw`** keep using **`AsyncTask`** / **`Task`** (napi4), not napi’s Tokio async runtime. Crates that need napi async (**`oxlint`**, **`oxfmt`**, playground) still enable **`features = ["async"]`** locally.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 48c63d442bcc2ffa8b88f5aa6f777137bebe8651. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
|
||
|
|
8e0ed2ebb9 |
release(crates): oxc v0.140.0 (#24453)
### 🚀 Features - |