-
-
Notifications
You must be signed in to change notification settings - Fork 5
feat: merge from upstream oxc-project/oxc-resolver - 7th
#174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github/codeql-action](https://github.com/github/codeql-action) | action | minor | `v3.28.19` -> `v3.29.0` | | [taiki-e/install-action](https://github.com/taiki-e/install-action) | action | patch | `v2.52.7` -> `v2.52.8` | --- ### Release Notes <details> <summary>github/codeql-action (github/codeql-action)</summary> ### [`v3.29.0`](https://github.com/github/codeql-action/releases/tag/v3.29.0) [Compare Source](https://github.com/github/codeql-action/compare/v3.28.19...v3.29.0) ### CodeQL Action Changelog See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs. #### 3.29.0 - 11 Jun 2025 - Update default CodeQL bundle version to 2.22.0. [#​2925](https://github.com/github/codeql-action/pull/2925) - Bump minimum CodeQL bundle version to 2.16.6. [#​2912](https://github.com/github/codeql-action/pull/2912) See the full [CHANGELOG.md](https://github.com/github/codeql-action/blob/v3.29.0/CHANGELOG.md) for more information. </details> <details> <summary>taiki-e/install-action (taiki-e/install-action)</summary> ### [`v2.52.8`](https://github.com/taiki-e/install-action/releases/tag/v2.52.8): 2.52.8 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.52.7...v2.52.8) - Update `cargo-careful@latest` to 0.4.7. - Update `syft@latest` to 1.27.1. - Update `cargo-deny@latest` to 0.18.3. - Update `cargo-binstall@latest` to 1.13.0. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`22.15.30` -> `22.15.31`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.30/22.15.31) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://github.com/vitest-dev/vitest) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | patch | [`3.2.2` -> `3.2.3`](https://renovatebot.com/diffs/npm/vitest/3.2.2/3.2.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v3.2.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) ##### 🚀 Features - **browser**: Use base url instead of **vitest** - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8126](https://github.com/vitest-dev/vitest/issues/8126) [<samp>(1d8eb)</samp>](https://github.com/vitest-dev/vitest/commit/1d8ebf9ae) - **ui**: Show test annotations and metadata in the test report tab - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8093](https://github.com/vitest-dev/vitest/issues/8093) [<samp>(c69be)</samp>](https://github.com/vitest-dev/vitest/commit/c69be1fc1) ##### 🐞 Bug Fixes - Rerun tests when project's setup file is changed - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8097](https://github.com/vitest-dev/vitest/issues/8097) [<samp>(0f335)</samp>](https://github.com/vitest-dev/vitest/commit/0f3350667) - Revert `expect.any` return type - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8129](https://github.com/vitest-dev/vitest/issues/8129) [<samp>(47514)</samp>](https://github.com/vitest-dev/vitest/commit/4751436d5) - Run only the name plugin last, not all config plugins - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8130](https://github.com/vitest-dev/vitest/issues/8130) [<samp>(83862)</samp>](https://github.com/vitest-dev/vitest/commit/83862d46e) - **pool**: - Throw if user's tests use `process.send()` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8125](https://github.com/vitest-dev/vitest/issues/8125) [<samp>(dfe81)</samp>](https://github.com/vitest-dev/vitest/commit/dfe81a67a) - **runner**: - Fast sequential task updates missing - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8121](https://github.com/vitest-dev/vitest/issues/8121) [<samp>(7bd11)</samp>](https://github.com/vitest-dev/vitest/commit/7bd11a9b3) - Comments between fixture destructures - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8127](https://github.com/vitest-dev/vitest/issues/8127) [<samp>(dc469)</samp>](https://github.com/vitest-dev/vitest/commit/dc469f260) - **vite-node**: - Unable to handle errors where sourcemap mapping empty - by [@​blake-newman](https://github.com/blake-newman) and [@​hi-ogawa](https://github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/8071](https://github.com/vitest-dev/vitest/issues/8071) [<samp>(8aa25)</samp>](https://github.com/vitest-dev/vitest/commit/8aa252121) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`^22.13.9` -> `^24.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.31/24.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Update | Change | |---|---| | lockFileMaintenance | All locks refreshed | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | [cfg-if](https://github.com/rust-lang/cfg-if) | dependencies | patch | `1.0.0` -> `1.0.1` | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>rust-lang/cfg-if (cfg-if)</summary> ### [`v1.0.1`](https://github.com/rust-lang/cfg-if/blob/HEAD/CHANGELOG.md#101---2025-06-09) [Compare Source](https://github.com/rust-lang/cfg-if/compare/1.0.0...v1.0.1) ##### Other - Remove `compiler-builtins` from `rustc-dep-of-std` dependencies - Remove redundant configuration from Cargo.toml - More readable formatting and identifier names. ([#​39](https://github.com/rust-lang/cfg-if/pull/39)) - Add expanded example to readme ([#​38](https://github.com/rust-lang/cfg-if/pull/38)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [MarcoIeni/release-plz-action](https://github.com/MarcoIeni/release-plz-action) | action | patch | `v0.5.107` -> `v0.5.108` | | [taiki-e/install-action](https://github.com/taiki-e/install-action) | action | minor | `v2.52.8` -> `v2.54.0` | --- ### Release Notes <details> <summary>MarcoIeni/release-plz-action (MarcoIeni/release-plz-action)</summary> ### [`v0.5.108`](https://github.com/release-plz/action/releases/tag/v0.5.108) [Compare Source](https://github.com/MarcoIeni/release-plz-action/compare/v0.5.107...v0.5.108) #### What's Changed - Update to 0.3.136 by [@​marcoieni](https://github.com/marcoieni) in [https://github.com/release-plz/action/pull/209](https://github.com/release-plz/action/pull/209) **Full Changelog**: release-plz/action@v0.5...v0.5.108 </details> <details> <summary>taiki-e/install-action (taiki-e/install-action)</summary> ### [`v2.54.0`](https://github.com/taiki-e/install-action/compare/v2.53.2...v2.54.0) [Compare Source](https://github.com/taiki-e/install-action/compare/v2.53.2...v2.54.0) ### [`v2.53.2`](https://github.com/taiki-e/install-action/releases/tag/v2.53.2): 2.53.2 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.53.1...v2.53.2) - Fix `cargo-nextest` installation failure on Ubuntu 24.04 due to HTTP 403 error on requests to crates.io. ([#​1007](https://github.com/taiki-e/install-action/pull/1007)) - Update `rclone@latest` to 1.70.0. ### [`v2.53.1`](https://github.com/taiki-e/install-action/releases/tag/v2.53.1): 2.53.1 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.53.0...v2.53.1) - Support `typos` on AArch64 Linux. ([#​1004](https://github.com/taiki-e/install-action/pull/1004), thanks [@​vivienm](https://github.com/vivienm)) - Update `cargo-nextest@latest` to 0.9.99. ### [`v2.53.0`](https://github.com/taiki-e/install-action/releases/tag/v2.53.0): 2.53.0 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.52.8...v2.53.0) - Support `zizmor`. ([#​1002](https://github.com/taiki-e/install-action/pull/1002), thanks [@​jayvdb](https://github.com/jayvdb)) - Update `osv-scanner@latest` to 2.0.3. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`24.0.1` -> `24.0.3`](https://renovatebot.com/diffs/npm/@types%2fnode/24.0.1/24.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://github.com/vitest-dev/vitest) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | patch | [`3.2.3` -> `3.2.4`](https://renovatebot.com/diffs/npm/vitest/3.2.3/3.2.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v3.2.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) ##### 🐞 Bug Fixes - Use correct path for optimisation of strip-literal - by [@​mrginglymus](https://github.com/mrginglymus) in [https://github.com/vitest-dev/vitest/issues/8139](https://github.com/vitest-dev/vitest/issues/8139) [<samp>(44940)</samp>](https://github.com/vitest-dev/vitest/commit/44940d9dd) - Print uint and buffer as a simple string - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8141](https://github.com/vitest-dev/vitest/issues/8141) [<samp>(b86bf)</samp>](https://github.com/vitest-dev/vitest/commit/b86bf0d99) - **browser**: - Show a helpful error when spying on an export - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8178](https://github.com/vitest-dev/vitest/issues/8178) [<samp>(56007)</samp>](https://github.com/vitest-dev/vitest/commit/5600772c2) - **cli**: - `vitest run --watch` should be watch-mode - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8128](https://github.com/vitest-dev/vitest/issues/8128) [<samp>(657e8)</samp>](https://github.com/vitest-dev/vitest/commit/657e83f9f) - Use absolute path environment on Windows - by [@​colinaaa](https://github.com/colinaaa) in [https://github.com/vitest-dev/vitest/issues/8105](https://github.com/vitest-dev/vitest/issues/8105) [<samp>(85dc0)</samp>](https://github.com/vitest-dev/vitest/commit/85dc0195f) - Throw error when `--shard x/<count>` exceeds count of test files - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8112](https://github.com/vitest-dev/vitest/issues/8112) [<samp>(8a18c)</samp>](https://github.com/vitest-dev/vitest/commit/8a18c8e20) - **coverage**: - Ignore SCSS in browser mode - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/8161](https://github.com/vitest-dev/vitest/issues/8161) [<samp>(0c3be)</samp>](https://github.com/vitest-dev/vitest/commit/0c3be6f63) - **deps**: - Update all non-major dependencies - in [https://github.com/vitest-dev/vitest/issues/8123](https://github.com/vitest-dev/vitest/issues/8123) [<samp>(93f32)</samp>](https://github.com/vitest-dev/vitest/commit/93f3200e4) - **expect**: - Handle async errors in expect.soft - by [@​lzl0304](https://github.com/lzl0304) in [https://github.com/vitest-dev/vitest/issues/8145](https://github.com/vitest-dev/vitest/issues/8145) [<samp>(68699)</samp>](https://github.com/vitest-dev/vitest/commit/686996912) - **pool**: - Auto-adjust `minWorkers` when only `maxWorkers` specified - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8110](https://github.com/vitest-dev/vitest/issues/8110) [<samp>(14dc0)</samp>](https://github.com/vitest-dev/vitest/commit/14dc0724f) - **reporter**: - `task.meta` should be available in custom reporter's errors - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/8115](https://github.com/vitest-dev/vitest/issues/8115) [<samp>(27df6)</samp>](https://github.com/vitest-dev/vitest/commit/27df68a0e) - **runner**: - Preserve handler wrapping on extend - by [@​pengooseDev](https://github.com/pengooseDev) in [https://github.com/vitest-dev/vitest/issues/8153](https://github.com/vitest-dev/vitest/issues/8153) [<samp>(a9281)</samp>](https://github.com/vitest-dev/vitest/commit/a92812b70) - **ui**: - Ensure ui config option works correctly - by [@​lzl0304](https://github.com/lzl0304) in [https://github.com/vitest-dev/vitest/issues/8147](https://github.com/vitest-dev/vitest/issues/8147) [<samp>(42eeb)</samp>](https://github.com/vitest-dev/vitest/commit/42eeb2ee6) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | [mimalloc-safe](https://github.com/napi-rs/mimalloc-safe) | dependencies | patch | `0.1.52` -> `0.1.53` | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>napi-rs/mimalloc-safe (mimalloc-safe)</summary> ### [`v0.1.53`](https://github.com/napi-rs/mimalloc-safe/blob/HEAD/CHANGELOG.md#0153---2025-06-16) [Compare Source](https://github.com/napi-rs/mimalloc-safe/compare/v0.1.52...mimalloc-safe-v0.1.53) ##### <!-- 1 -->Bug Fixes - add MI\_NO\_OPT\_ARCH OFF when no\_opt\_arch is on ([#​22](https://github.com/napi-rs/mimalloc-safe/pull/22)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
When there's a circular `tsconfig` extends, oxc-resolver crashed with `Segmentation fault (core dumped)`. This PR fixes that. In this case, TypeScript outputs errors like: ``` $ pnpm tsc --noEmit -p tsconfig_self_reference.json error TS18000: Circularity detected while resolving configuration: /home/green/workspace/oxc-resolver/tests/tsconfig_self_reference.json -> /home/green/workspace/oxc-resolver/tests/tsconfig_self_reference.json $ pnpm tsc --noEmit -p tsconfig_circular_reference_a.json error TS18000: Circularity detected while resolving configuration: /home/green/workspace/oxc-resolver/tests/tsconfig_circular_reference_a.json -> /home/green/workspace/oxc-resolver/tests/tsconfig_circular_reference_b.json -> /home/green/workspace/oxc-resolver/tests/tsconfig_circular_reference_a.json ```
…572) closes #571 This is not part of the spec but some vite projects rely on this behavior. Opt-in by `allowPackageExportsInDirectoryResolve: true`. See * vitejs/vite#20252 * nodejs/node#58827
We want to see whether it's a system specific problem.
Co-authored-by: Boshen <[email protected]>
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [rust](https://github.com/rust-lang/rust) | minor | `1.87.0` -> `1.88.0` | --- ### Release Notes <details> <summary>rust-lang/rust (rust)</summary> ### [`v1.88.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1880-2025-06-26) [Compare Source](https://github.com/rust-lang/rust/compare/1.87.0...1.88.0) \========================== <a id="1.88.0-Language"></a> ## Language - [Stabilize `#![feature(let_chains)]` in the 2024 edition.](https://github.com/rust-lang/rust/pull/132833) This feature allows `&&`-chaining `let` statements inside `if` and `while`, allowing intermixture with boolean expressions. The patterns inside the `let` sub-expressions can be irrefutable or refutable. - [Stabilize `#![feature(naked_functions)]`.](https://github.com/rust-lang/rust/pull/134213) Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function. - [Stabilize `#![feature(cfg_boolean_literals)]`.](https://github.com/rust-lang/rust/pull/138632) This allows using boolean literals as `cfg` predicates, e.g. `#[cfg(true)]` and `#[cfg(false)]`. - [Fully de-stabilize the `#[bench]` attribute](https://github.com/rust-lang/rust/pull/134273). Usage of `#[bench]` without `#![feature(custom_test_frameworks)]` already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error. - [Add warn-by-default `dangerous_implicit_autorefs` lint against implicit autoref of raw pointer dereference.](https://github.com/rust-lang/rust/pull/123239) The lint [will be bumped to deny-by-default](https://github.com/rust-lang/rust/pull/141661) in the next version of Rust. - [Add `invalid_null_arguments` lint to prevent invalid usage of null pointers.](https://github.com/rust-lang/rust/pull/119220) This lint is uplifted from `clippy::invalid_null_ptr_usage`. - [Change trait impl candidate preference for builtin impls and trivial where-clauses.](https://github.com/rust-lang/rust/pull/138176) - [Check types of generic const parameter defaults](https://github.com/rust-lang/rust/pull/139646) <a id="1.88.0-Compiler"></a> ## Compiler - [Stabilize `-Cdwarf-version` for selecting the version of DWARF debug information to generate.](https://github.com/rust-lang/rust/pull/136926) <a id="1.88.0-Platform-Support"></a> ## Platform Support - [Demote `i686-pc-windows-gnu` to Tier 2.](https://blog.rust-lang.org/2025/05/26/demoting-i686-pc-windows-gnu/) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. [platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html <a id="1.88.0-Libraries"></a> ## Libraries - [Remove backticks from `#[should_panic]` test failure message.](https://github.com/rust-lang/rust/pull/136160) - [Guarantee that `[T; N]::from_fn` is generated in order of increasing indices.](https://github.com/rust-lang/rust/pull/139099), for those passing it a stateful closure. - [The libtest flag `--nocapture` is deprecated in favor of the more consistent `--no-capture` flag.](https://github.com/rust-lang/rust/pull/139224) - [Guarantee that `{float}::NAN` is a quiet NaN.](https://github.com/rust-lang/rust/pull/139483) <a id="1.88.0-Stabilized-APIs"></a> ## Stabilized APIs - [`Cell::update`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.update) - [`impl Default for *const T`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*const+T) - [`impl Default for *mut T`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*mut+T) - [`HashMap::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_if) - [`HashSet::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_if) - [`proc_macro::Span::line`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.line) - [`proc_macro::Span::column`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.column) - [`proc_macro::Span::start`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.start) - [`proc_macro::Span::end`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.end) - [`proc_macro::Span::file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.file) - [`proc_macro::Span::local_file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file) These previously stable APIs are now stable in const contexts: - [`NonNull<T>::replace`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace) - [`<*mut T>::replace`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replace) - [`std::ptr::swap_nonoverlapping`](https://github.com/rust-lang/rust/pull/137280) - [`Cell::{replace, get, get_mut, from_mut, as_slice_of_cells}`](https://github.com/rust-lang/rust/pull/137928) <a id="1.88.0-Cargo"></a> ## Cargo - [Stabilize automatic garbage collection.](https://github.com/rust-lang/cargo/pull/14287/) - [use `zlib-rs` for gzip compression in rust code](https://github.com/rust-lang/cargo/pull/15417/) <a id="1.88.0-Rustdoc"></a> ## Rustdoc - [Doctests can be ignored based on target names using `ignore-*` attributes.](https://github.com/rust-lang/rust/pull/137096) - [Stabilize the `--test-runtool` and `--test-runtool-arg` CLI options to specify a program (like qemu) and its arguments to run a doctest.](https://github.com/rust-lang/rust/pull/137096) <a id="1.88.0-Compatibility-Notes"></a> ## Compatibility Notes - [Finish changing the internal representation of pasted tokens](https://github.com/rust-lang/rust/pull/124141). Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a `tt` fragment specifier can often fix these macros. - [Fully de-stabilize the `#[bench]` attribute](https://github.com/rust-lang/rust/pull/134273). Usage of `#[bench]` without `#![feature(custom_test_frameworks)]` already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error. - [Fix borrow checking some always-true patterns.](https://github.com/rust-lang/rust/pull/139042) The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled. - [Update the minimum external LLVM to 19.](https://github.com/rust-lang/rust/pull/139275) - [Make it a hard error to use a vector type with a non-Rust ABI without enabling the required target feature.](https://github.com/rust-lang/rust/pull/139309) </details> --- ### Configuration 📅 **Schedule**: 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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github/codeql-action](https://github.com/github/codeql-action) | action | patch | `v3.29.0` -> `v3.29.1` | | [taiki-e/install-action](https://github.com/taiki-e/install-action) | action | patch | `v2.54.0` -> `v2.54.3` | --- ### Release Notes <details> <summary>github/codeql-action (github/codeql-action)</summary> ### [`v3.29.1`](https://github.com/github/codeql-action/compare/v3.29.0...v3.29.1) [Compare Source](https://github.com/github/codeql-action/compare/v3.29.0...v3.29.1) </details> <details> <summary>taiki-e/install-action (taiki-e/install-action)</summary> ### [`v2.54.3`](https://github.com/taiki-e/install-action/releases/tag/v2.54.3): 2.54.3 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.54.2...v2.54.3) - Update `cargo-careful@latest` to 0.4.8. ### [`v2.54.2`](https://github.com/taiki-e/install-action/releases/tag/v2.54.2): 2.54.2 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.54.1...v2.54.2) - Update `rclone@latest` to 1.70.2. - Update `zizmor@latest` to 1.10.0. ### [`v2.54.1`](https://github.com/taiki-e/install-action/releases/tag/v2.54.1): 2.54.1 [Compare Source](https://github.com/taiki-e/install-action/compare/v2.54.0...v2.54.1) - Update `wasmtime@latest` to 34.0.1. - Update `cargo-tarpaulin@latest` to 0.32.8. - Update `knope@latest` to 0.21.0. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`24.0.3` -> `24.0.7`](https://renovatebot.com/diffs/npm/@types%2fnode/24.0.3/24.0.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm)) | packageManager | patch | [`10.12.1` -> `10.12.4`](https://renovatebot.com/diffs/npm/pnpm/10.12.1/10.12.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v10.12.4`](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10124) [Compare Source](https://github.com/pnpm/pnpm/compare/v10.12.3...v10.12.4) ##### Patch Changes - Fix `pnpm licenses` command for local dependencies [#​9583](https://github.com/pnpm/pnpm/pull/9583). - Fix a bug in which `pnpm ls --filter=not-exist --json` prints nothing instead of an empty array [#​9672](https://github.com/pnpm/pnpm/issues/9672). - Fix a deadlock that sometimes happens during peer dependency resolution [#​9673](https://github.com/pnpm/pnpm/issues/9673). - Running `pnpm install` after `pnpm fetch` should hoist all dependencies that need to be hoisted. Fixes a regression introduced in \[v10.12.2] by \[[#​9648](https://github.com/pnpm/pnpm/issues/9648)]; resolves \[[#​9689](https://github.com/pnpm/pnpm/issues/9689)]. \[v10.12.2]: https://github.com/pnpm/pnpm/releases/tag/v10.12.2Add commentMore actions \[[#​9648](https://github.com/pnpm/pnpm/issues/9648)]: [https://github.com/pnpm/pnpm/pull/9648](https://github.com/pnpm/pnpm/pull/9648) \[[#​9689](https://github.com/pnpm/pnpm/issues/9689)]: [https://github.com/pnpm/pnpm/issues/9689](https://github.com/pnpm/pnpm/issues/9689) ### [`v10.12.3`](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10123) [Compare Source](https://github.com/pnpm/pnpm/compare/v10.12.2...v10.12.3) ##### Patch Changes - Restore hoisting of optional peer dependencies when installing with an outdated lockfile. Regression introduced in [v10.12.2] by [#​9648]; resolves [#​9685]. [v10.12.2]: https://github.com/pnpm/pnpm/releases/tag/v10.12.2 [#​9648]: https://github.com/pnpm/pnpm/pull/9648 [#​9685]: https://github.com/pnpm/pnpm/issues/9685 ### [`v10.12.2`](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10122) [Compare Source](https://github.com/pnpm/pnpm/compare/v10.12.1...v10.12.2) ##### Patch Changes - Fixed hoisting with `enableGlobalVirtualStore` set to `true` [#​9648](https://github.com/pnpm/pnpm/pull/9648). - Fix the `--help` and `-h` flags not working as expected for the `pnpm create` command. - The dependency package path output by the `pnpm licenses list --json` command is incorrect. - Fix a bug in which `pnpm deploy` fails due to overridden dependencies having peer dependencies causing `ERR_PNPM_OUTDATED_LOCKFILE` [#​9595](https://github.com/pnpm/pnpm/issues/9595). </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Update | Change | |---|---| | lockFileMaintenance | All locks refreshed | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | [criterion2](https://bheisler.github.io/criterion.rs/book/index.html) ([source](https://github.com/Boshen/criterion2.rs)) | dev-dependencies | patch | `3.0.0` -> `3.0.1` | | [indexmap](https://github.com/indexmap-rs/indexmap) | dependencies | minor | `2.9.0` -> `2.10.0` | | [papaya](https://github.com/ibraheemdev/papaya) | dependencies | patch | `0.2.1` -> `0.2.3` | | [pnp](https://yarnpkg.com) ([source](https://github.com/yarnpkg/pnp-rs)) | dependencies | minor | `0.9.4` -> `0.10.0` | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>Boshen/criterion2.rs (criterion2)</summary> ### [`v3.0.1`](https://github.com/Boshen/criterion2.rs/blob/HEAD/CHANGELOG.md#301---2025-03-23) [Compare Source](https://github.com/Boshen/criterion2.rs/compare/v3.0.0...v3.0.1) ##### Other - *(deps)* lock file maintenance rust crates ([#​94](https://github.com/Boshen/criterion2.rs/pull/94)) - *(deps)* update dependency rust to v1.85.1 ([#​92](https://github.com/Boshen/criterion2.rs/pull/92)) </details> <details> <summary>indexmap-rs/indexmap (indexmap)</summary> ### [`v2.10.0`](https://github.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#2100-2025-06-26) [Compare Source](https://github.com/indexmap-rs/indexmap/compare/2.9.0...2.10.0) - Added `extract_if` methods to `IndexMap` and `IndexSet`, similar to the methods for `HashMap` and `HashSet` with ranges like `Vec::extract_if`. - Added more `#[track_caller]` annotations to functions that may panic. </details> <details> <summary>ibraheemdev/papaya (papaya)</summary> ### [`v0.2.3`](https://github.com/ibraheemdev/papaya/releases/tag/v0.2.3): 0.2.3 [Compare Source](https://github.com/ibraheemdev/papaya/compare/v0.2.2...v0.2.3) - Remove use of 64-bit atomics ([https://github.com/ibraheemdev/papaya/pull/75](https://github.com/ibraheemdev/papaya/pull/75)). ### [`v0.2.2`](https://github.com/ibraheemdev/papaya/releases/tag/v0.2.2): 0.2.2 [Compare Source](https://github.com/ibraheemdev/papaya/compare/v0.2.1...v0.2.2) - Fix a soundness issue when using `HashMap` with key/value types that are aligned to less than 8 bytes. This is likely only relevant on 32-bit platforms ([https://github.com/ibraheemdev/papaya/pull/74](https://github.com/ibraheemdev/papaya/pull/74)). - Improve performance when creating a large number of maps ([https://github.com/ibraheemdev/papaya/pull/69](https://github.com/ibraheemdev/papaya/pull/69)). </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Boshen <[email protected]>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [crate-ci/typos](https://github.com/crate-ci/typos) | action | minor | `v1.33.1` -> `v1.34.0` | --- ### Release Notes <details> <summary>crate-ci/typos (crate-ci/typos)</summary> ### [`v1.34.0`](https://github.com/crate-ci/typos/compare/v1.33.1...v1.34.0) [Compare Source](https://github.com/crate-ci/typos/compare/v1.33.1...v1.34.0) </details> --- ### Configuration 📅 **Schedule**: 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-resolver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
Warning Rate limit exceeded@JounQin has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 18 minutes and 17 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (25)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR merges upstream changes from oxc-project/oxc-resolver, primarily adding circular-extend detection for tsconfig files, renaming and reworking the Yarn PnP support, and introducing a new option to allow package exports when resolving directories.
- Detect and error on self-referencing or circular tsconfig
extends, with new context tracking and tests. - Rename
enable_pnptoyarn_pnp, replaceDashMapwithpapaya::HashMapfor PnP caching, and update related tests. - Add
allow_package_exports_in_directory_resolveoption to support certain Vite behaviors, with API, implementation, and documentation updates.
Reviewed Changes
Copilot reviewed 22 out of 26 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tsconfig_*.json | Add self-reference and circular-reference tsconfig test fixtures |
| src/tsconfig_context.rs | Introduce TsconfigResolveContext for tracking extended configs |
| src/lib.rs | Integrate context in load_tsconfig, implement circular error |
| src/options.rs | Rename enable_pnp → yarn_pnp, add allow_package_exports_in_directory_resolve |
| README.md | Document new options and update tables |
Comments suppressed due to low confidence (2)
src/tests/pnp.rs:91
- The test name still mentions
disable_pnp_modebut the option has been renamed toyarn_pnp. Consider renaming the test to reflect the newyarn_pnpflag for clarity.
fn resolve_pnp_pkg_should_failed_while_disable_pnp_mode() {
README.md:213
- The table row for
allowPackageExportsInDirectoryResolveplaces the description under the Default column and leaves the Description column empty. Swap or split these entries so that the Default column showsfalseand the Description column contains the explanatory text.
| allowPackageExportsInDirectoryResolve | Allow `exports` field in `require('../directory')`. Not part of `enhanced-resolve`. | |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #174 +/- ##
==========================================
+ Coverage 92.30% 92.54% +0.24%
==========================================
Files 13 14 +1
Lines 3106 2953 -153
==========================================
- Hits 2867 2733 -134
+ Misses 239 220 -19 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Changes requested ❌
Reviewed everything up to f9a40b5 in 2 minutes and 24 seconds. Click for details.
- Reviewed
1245lines of code in25files - Skipped
1files when reviewing. - Skipped posting
7draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tests/integration_test.rs:50
- Draft comment:
Comparing relative paths (e.g. using PathBuf::from("./tests/tsconfig.json")) might lead to cross‐platform inconsistencies. Consider canonicalizing paths or using absolute paths for robust, deterministic comparisons. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. src/options.rs:400
- Draft comment:
The sanitize() method automatically sets enforce_extension based on the presence of an empty extension. Adding an inline comment explaining that an empty string in the extensions array triggers EnforceExtension::Enabled would improve clarity. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. tests/memory_fs.rs:52
- Draft comment:
The test uses file.read_to_string(...).unwrap(). Although acceptable in tests, consider using the '?' operator for consistency with standard error handling practices. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. tests/pnp.rs:94
- Draft comment:
This test disables PnP mode (yarn_pnp: false) and checks for a NotFound error when resolving a module. Adding a brief comment summarizing the purpose of this test would clarify its intent. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
5. tests/exports_field.rs:28
- Draft comment:
This test file contains extensive test cases for various exports field scenarios. Consider organizing or splitting these tests into separate files or modules to improve maintainability and readability. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. tests/integration_test.rs:56
- Draft comment:
The tests for tsconfig circular references compare expected vectors of paths. Ensure that the ordering of paths in TsconfigCircularExtend errors is deterministic to avoid flaky tests. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is asking the author to ensure that the ordering of paths is deterministic to avoid flaky tests. It is not a specific suggestion or a request for a test to be written, but rather a general request to ensure something, which violates the rules.
7. src/tests/pnp.rs:91
- Draft comment:
Typo: The function name 'resolve_pnp_pkg_should_failed_while_disable_pnp_mode' contains a grammatical error. Consider renaming it to 'resolve_pnp_pkg_should_fail_while_disable_pnp_mode' to correct the phrasing. - Reason this comment was not posted:
Comment was on unchanged code.
Workflow ID: wflow_yoHBw4ooovNboke8
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
CodSpeed Performance ReportMerging #174 will not alter performanceComparing Summary
|
f9a40b5 to
39e7145
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 39e7145 in 56 seconds. Click for details.
- Reviewed
1362lines of code in26files - Skipped
1files when reviewing. - Skipped posting
7draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tests/tsconfig_circular_reference_a.json:1
- Draft comment:
Consider adding a trailing newline at the end of the file for POSIX compliance and consistency with other JSON config files. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
2. tests/tsconfig_circular_reference_b.json:1
- Draft comment:
Consider adding a trailing newline at the end of the file for consistency with similar config files. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
3. tests/tsconfig_self_reference.json:1
- Draft comment:
Consider adding a trailing newline at the end of the file to follow common formatting conventions. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
4. tests/exports_field.rs:29
- Draft comment:
This test file contains many detailed test cases for exports field resolution. Consider refactoring common patterns into helper functions to improve readability and maintainability. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
5. tests/memory_fs.rs:39
- Draft comment:
Test setup code uses unwrap() for file creation and writing. While acceptable in test code, consider using expect() with descriptive messages to improve debugging in case of failure. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
6. tests/pnp.rs:163
- Draft comment:
PnP tests are comprehensive. Since these tests use conditional compilation to exclude Windows (as indicated later), consider adding an explicit annotation or comment to document that Windows is not supported. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
7. tests/integration_test.rs:55
- Draft comment:
Integration tests effectively cover public API usages. As error comparisons (e.g. for tsconfig circular references) are sensitive to exact error formatting, consider ensuring these remain stable, or use pattern matching in assertions to reduce brittleness over future changes. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
Workflow ID: wflow_EBYJ6KjEYvthqodq
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
src/tsconfig_context.rs (1)
9-14: Consider using a scope guard for panic safety.The
with_extended_filemethod pushes to the stack and then pops after the callback, but if the callback panics, the path won't be popped, potentially leaving the context in an inconsistent state.This issue was previously identified and the concern about using RAII/scope guards remains valid to ensure the stack is always properly cleaned up.
🧹 Nitpick comments (3)
src/file_system.rs (1)
176-190: Consider adding test coverage for yarn_pnp code path.The implementation correctly handles different VPath variants when yarn_pnp is enabled. However, static analysis indicates line 183 lacks test coverage.
Would you like me to help generate tests for the yarn_pnp-specific code paths to improve coverage?
README.md (1)
192-213: Improve table formatting and fix grammar issue.The table reformatting improves readability, and the new
allowPackageExportsInDirectoryResolveoption is well-documented. However, there's a grammar error on line 198:-| enforceExtension | false | Enforce that a extension from extensions must be used | +| enforceExtension | false | Enforce that an extension from extensions must be used |src/options.rs (1)
589-595: Add test coverage for the new display formatting.The static analysis correctly identifies that the display formatting for
allow_package_exports_in_directory_resolveis not covered by tests.Consider adding a test case that sets
allow_package_exports_in_directory_resolve: trueto ensure the display output includes this field in the formatting.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (26)
.github/actions/pnpm/action.yml(1 hunks).gitignore(1 hunks)Cargo.toml(1 hunks)README.md(1 hunks)fixtures/pnp/shared/lib.js(1 hunks)justfile(2 hunks)napi/index.d.ts(3 hunks)napi/index.js(0 hunks)napi/src/lib.rs(4 hunks)napi/src/options.rs(2 hunks)napi/tests/simple.test.mjs(1 hunks)release-plz.toml(1 hunks)rust-toolchain.toml(1 hunks)src/cache.rs(1 hunks)src/error.rs(3 hunks)src/file_system.rs(4 hunks)src/lib.rs(14 hunks)src/options.rs(8 hunks)src/tests/exports_field.rs(1 hunks)src/tests/memory_fs.rs(0 hunks)src/tests/pnp.rs(1 hunks)src/tsconfig_context.rs(1 hunks)tests/integration_test.rs(2 hunks)tests/tsconfig_circular_reference_a.json(1 hunks)tests/tsconfig_circular_reference_b.json(1 hunks)tests/tsconfig_self_reference.json(1 hunks)
💤 Files with no reviewable changes (2)
- napi/index.js
- src/tests/memory_fs.rs
🧰 Additional context used
🧠 Learnings (19)
📓 Common learnings
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
napi/tests/simple.test.mjs (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#129
File: src/tests/pnp.rs:6-6
Timestamp: 2025-06-02T15:57:50.888Z
Learning: In the unrs-resolver project, std::env is acceptable for test cases even when deprecated, as the user prefers simpler approaches in test code compared to production code standards.
.gitignore (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
src/tests/exports_field.rs (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#129
File: src/tests/pnp.rs:6-6
Timestamp: 2025-06-02T15:57:50.888Z
Learning: In the unrs-resolver project, std::env is acceptable for test cases even when deprecated, as the user prefers simpler approaches in test code compared to production code standards.
tests/tsconfig_circular_reference_a.json (4)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
src/tests/pnp.rs (9)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
Learnt from: JounQin
PR: unrs/unrs-resolver#129
File: src/tests/pnp.rs:6-6
Timestamp: 2025-06-02T15:57:50.888Z
Learning: In the unrs-resolver project, std::env is acceptable for test cases even when deprecated, as the user prefers simpler approaches in test code compared to production code standards.
tests/tsconfig_circular_reference_b.json (4)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
tests/tsconfig_self_reference.json (4)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
justfile (5)
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
.github/actions/pnpm/action.yml (6)
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
napi/src/options.rs (6)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
napi/index.d.ts (6)
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
README.md (4)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
tests/integration_test.rs (9)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#129
File: src/tests/pnp.rs:6-6
Timestamp: 2025-06-02T15:57:50.888Z
Learning: In the unrs-resolver project, std::env is acceptable for test cases even when deprecated, as the user prefers simpler approaches in test code compared to production code standards.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
napi/src/lib.rs (5)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
src/error.rs (5)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
src/tsconfig_context.rs (6)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
src/options.rs (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
src/lib.rs (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
🧬 Code Graph Analysis (2)
src/tests/exports_field.rs (4)
src/tests/mod.rs (1)
fixture(38-40)src/lib.rs (2)
new(156-163)default(149-151)src/options.rs (1)
default(491-520)src/resolution.rs (1)
path(75-77)
napi/src/lib.rs (4)
napi/index.d.ts (2)
Builtin(17-30)ResolveResult(232-248)src/tests/resolve.rs (1)
resolve(8-77)src/lib.rs (2)
resolve(209-216)default(149-151)src/options.rs (2)
from(453-455)default(491-520)
🪛 LanguageTool
README.md
[misspelling] ~198-~198: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... | Enforce that a extension from extensions must be used ...
(EN_A_VS_AN)
🪛 GitHub Check: codecov/patch
src/error.rs
[warning] 179-184: src/error.rs#L179-L184
Added lines #L179 - L184 were not covered by tests
[warning] 186-187: src/error.rs#L186-L187
Added lines #L186 - L187 were not covered by tests
src/file_system.rs
[warning] 183-183: src/file_system.rs#L183
Added line #L183 was not covered by tests
src/options.rs
[warning] 594-594: src/options.rs#L594
Added line #L594 was not covered by tests
src/lib.rs
[warning] 728-728: src/lib.rs#L728
Added line #L728 was not covered by tests
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Benchmark
🔇 Additional comments (48)
rust-toolchain.toml (1)
2-2: LGTM! Standard toolchain update.The Rust toolchain update from 1.87.0 to 1.88.0 aligns well with the broader dependency and feature updates in this PR.
fixtures/pnp/shared/lib.js (1)
3-4: LGTM! Formatting improvement.Adding the trailing newline improves file formatting consistency without affecting functionality.
.gitignore (1)
4-4: LGTM! Proper dependency exclusion.Adding
/napi/node_modulesto gitignore is appropriate given the napi directory enhancements and follows the existing pattern of excluding node_modules directories.Cargo.toml (1)
94-94: LGTM — Windows-sys Patch Update Only
- The
windows-sysbump from 0.60 to 0.60.2 is a safe, backward-compatible patch.- No remaining code references to
dashmaporduncewere found (only commented mentions ofdunceintests/resolve_test.rs).You can optionally clean up those outdated test comments, but there are no functional dependencies on them.
.github/actions/pnpm/action.yml (1)
42-46: Installation order swap is safeI checked both fixtures and found no cross-dependencies or references between them. Each directory has independent dependencies, so swapping their install order won’t affect the PnP setup.
- fixtures/yarn/package.json – devDependencies on TypeScript only
- fixtures/global-pnp/package.json – dependencies on source-map-support only
src/cache.rs (1)
11-11: LGTM! Necessary trait bounds for hash map usage.The addition of
Eqandstd::hash::Hashtrait bounds toCpis appropriate and necessary for using it as a key in hash-based collections.justfile (2)
24-24: Good addition to ensure dependencies are installed.Adding
just installto thereadyrecipe ensures all fixture dependencies are properly installed before running tests, which is essential based on the project's test requirements.
57-59: Node.js command changes validatedBoth
buildandtestscripts are present in package.json:
- scripts.build:
pnpm build:debug --features allocator --release- scripts.test:
vitest run -r ./napiUsing
node --run buildandnode --run testin the Justfile will work as intended.release-plz.toml (1)
45-56: Nice improvements to changelog organization!The addition of emoji icons improves visual distinction, and the new groups for security and revert commits provide better categorization. The consolidation of skip rules is also cleaner.
src/file_system.rs (3)
105-123: Clean implementation of conditional compilation for yarn_pnp support.The conditional inclusion of
pnp_lrufield and the corresponding Default implementation usingcfg_if!is well structured.
126-141: Good performance optimization with simdutf8.Using
simdutf8for UTF-8 validation is a good performance optimization compared to the standard library's implementation. The error handling correctly mimicsfs::read_to_stringbehavior.
214-226: Simplified read_link implementation looks good.The removal of the canonicalize fallback simplifies the code while maintaining the necessary functionality.
tests/tsconfig_circular_reference_b.json (1)
1-3: Test fixture for circular reference detection.This file correctly sets up part of a circular reference test scenario by extending
tsconfig_circular_reference_a.json.src/tests/pnp.rs (1)
94-94: LGTM! Option rename correctly updated.The change from
enable_pnptoyarn_pnpaligns with the refactoring mentioned in the summary where the PnP control option was renamed throughout the codebase.tests/tsconfig_circular_reference_a.json (1)
1-3: LGTM! Well-formed test fixture for circular reference detection.This test fixture correctly creates a circular reference scenario to verify the resolver's ability to detect and handle circular TypeScript configuration extensions.
tests/tsconfig_self_reference.json (1)
1-3: LGTM! Appropriate test fixture for self-reference detection.This test fixture correctly demonstrates a self-referential tsconfig scenario, helping verify the resolver can detect when a configuration file extends itself.
src/tests/exports_field.rs (1)
290-300: LGTM! Well-structured test for new directory resolution functionality.The test correctly verifies the
allow_package_exports_in_directory_resolveoption by testing relative path resolution using the exports field. The test structure is clear and follows established patterns in the file.napi/tests/simple.test.mjs (1)
52-64: LGTM! Well-structured test for builtin module resolution.The test correctly validates the new builtin module resolution feature by:
- Testing both bare (
'fs') and prefixed ('node:fs') specifiers- Verifying the correct
resolvedvalue in both cases- Properly distinguishing
isRuntimeModulebased on whether the original specifier was prefixednapi/src/options.rs (2)
19-20: LGTM! Clear field name improvement.The
yarn_pnpfield provides a more descriptive name than the previousenable_pnp, improving API clarity.
162-170: LGTM! Well-documented non-standard feature.The documentation clearly explains:
- The purpose of the feature
- That it's not part of the official spec
- The specific use case (Vite projects)
- Relevant issue references
This transparency helps users understand when and why to use this option.
tests/integration_test.rs (2)
55-69: LGTM! Comprehensive test for self-referencing tsconfig.The test correctly validates that when a tsconfig extends itself, the resolver detects the circular reference and returns the appropriate error with the expected file chain.
71-86: LGTM! Thorough test for circular tsconfig references.The test properly validates circular references between multiple tsconfig files, ensuring the error includes the complete chain of files involved in the cycle.
README.md (1)
215-221: LGTM! Comprehensive TypeScript configuration documentation.The new section clearly documents the TypeScript configuration options with:
- Clear field descriptions
- Default values
- Explanation of the
referencesfield optionssrc/error.rs (1)
46-48: LGTM! Appropriate error variant for circular references.The new
TsconfigCircularExtendvariant correctly represents circular tsconfig extension errors and integrates well with the existing error handling pattern.napi/index.d.ts (4)
16-30: Well-designed interface for Node.js builtin module support.The
Builtininterface is clearly documented with appropriate ESM compliance notes and examples. The separation ofresolved(always node: prefixed) andisRuntimeModule(original request format) provides good flexibility for different use cases.
60-61: Clean option naming for Yarn PnP support.The
yarnPnpnaming is more descriptive than the previousenablePnpand aligns well with the feature being enabled.
219-229: Well-documented non-standard behavior option.The documentation clearly explains that this behavior is outside the official spec and provides relevant GitHub issue links for context. This helps users understand when and why they might need this option.
235-235: Consistent integration of builtin support.The optional
builtinproperty integrates well with the existingResolveResultinterface structure.src/tsconfig_context.rs (2)
16-18: Efficient circular reference detection.The
is_already_extendedmethod provides a clean way to detect cycles in the tsconfig extension chain.
20-25: Well-optimized vector construction for error reporting.Using
Vec::with_capacityandextend_from_sliceis efficient for building the extended configs list with the additional path.napi/src/lib.rs (3)
41-53: Consistent Rust implementation of the Builtin interface.The
Builtinstruct matches the TypeScript interface exactly, with clear documentation explaining the ESM compliance and runtime module detection.
67-81: Proper error handling for builtin modules.The match on
ResolveError::Builtincorrectly populates thebuiltinfield while maintaining the error state. This allows callers to receive both the error information and the builtin module details.
279-282: Complete option normalization for new fields.Both new options (
allow_package_exports_in_directory_resolveandyarn_pnp) are properly handled in the normalization function with appropriate default fallbacks.src/options.rs (4)
121-125: Improved naming consistency for Yarn PnP support.Renaming
enable_pnptoyarn_pnpprovides clearer indication of the specific package manager feature being enabled.
186-194: Well-documented non-standard resolver option.The documentation clearly explains this is a spec deviation used by some Vite projects, with appropriate GitHub issue references for context.
508-509: Consistent default value for yarn_pnp.Setting
yarn_pnptotrueby default when the feature is enabled maintains backward compatibility while providing the expected behavior.
646-646: Test updates properly reflect the option changes.The test cases are correctly updated to include the new
allow_package_exports_in_directory_resolvefield and the renamedyarn_pnpfield.Also applies to: 679-679
src/lib.rs (11)
66-66: LGTM!The addition of the
tsconfig_contextmodule is appropriate for implementing circular reference detection.
113-116: LGTM!The import of
TsconfigResolveContextis correctly added for tracking circular references during tsconfig resolution.
139-140: LGTM!The migration from
DashMaptopapaya::HashMapis a good performance optimization for the PnP cache. Thepapaya::HashMapprovides better concurrent access patterns while maintaining thread safety through theArcwrapper.
161-161: LGTM!The initialization of
pnp_cachewithpapaya::HashMap::default()is consistent with the field type change.Also applies to: 172-172
230-237: LGTM!Properly initializes the
TsconfigResolveContextfor tracking circular references during tsconfig resolution.
880-880: LGTM!The rename from
enable_pnptoyarn_pnpis a good improvement that makes the feature flag's purpose clearer.
973-979: LGTM!The refactoring to use
get_or_insert_withdirectly on the pinned cache is cleaner and more idiomatic. The logic correctly handles finding PnP manifests from either the current path or configured roots.
1424-1448: LGTM!Excellent implementation of circular reference detection for tsconfig extensions. The code properly:
- Checks for cycles before processing extensions
- Returns a descriptive error with the full extension chain
- Uses the context pattern to maintain state across recursive calls
1479-1499: LGTM!The
extend_tsconfigmethod signature correctly includes theTsconfigResolveContextparameter and properly threads it through recursive calls.
1514-1514: LGTM!Correctly passes a fresh
TsconfigResolveContext::default()for tsconfig path resolution, which is appropriate as this is a separate resolution context.
716-730: Ignore missing test coverage suggestionThe
directorytest insrc/tests/exports_field.rsalready exercises the newallow_package_exports_in_directory_resolvebranch:
- src/tests/exports_field.rs (fn directory) covers the call to
package_exports_resolveLikely an incorrect or invalid review comment.
39e7145 to
eb48755
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Changes requested ❌
Reviewed eb48755 in 1 minute and 47 seconds. Click for details.
- Reviewed
1356lines of code in26files - Skipped
1files when reviewing. - Skipped posting
6draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. src/tests/memory_fs.rs:31
- Draft comment:
In MemoryFS::add_file, you iterate over all ancestors to create parent directories. Although this works for test code, consider using a more efficient method (or a helper that creates missing parent directories) to avoid multiple filesystem checks. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. src/tests/pnp.rs:91
- Draft comment:
Tests in this file rely on exact yarn cache paths (e.g. assertions comparing fixed .yarn/cache paths). This approach may be brittle if Yarn changes its cache structure. Consider using pattern matching or constants to make these tests more robust. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. src/tests/exports_field.rs:28
- Draft comment:
This exports_field test module contains a large number of detailed test cases. For long‐term maintainability, consider splitting these tests into smaller sub-modules or grouping related cases. Also, ensure that error expectations (e.g. PackagePathNotExported) remain stable if internal error message details change. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. tests/integration_test.rs:48
- Draft comment:
The tsconfig test in integration_test.rs compares the resolved tsconfig path using a relative path (./tests/tsconfig.json). Ensure that path normalization is consistent across operating systems, or consider using canonicalized absolute paths in tests. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
5. src/options.rs:392
- Draft comment:
In the sanitize() method, the logic to set enforce_extension based on whether any extension is an empty string is subtle. Consider adding inline comments explaining why an empty string among extensions triggers switching enforce_extension from Auto to Enabled. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. src/error.rs:53
- Draft comment:
Typo in comment: "won't be able consumable by NodeJSimportorrequire." Consider rephrasing to "won't be consumable by NodeJSimportorrequire." - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
Workflow ID: wflow_8e3tYekyFuLlwtuT
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
README.md (1)
201-201: Fix the incomplete description for the fallback option.The description still appears incomplete as noted in the previous review. It should end with "fails" to be grammatically correct and clear.
-| fallback | {} | Same as `alias`, but only used if default resolving | +| fallback | {} | Same as `alias`, but only used if default resolving fails |
🧹 Nitpick comments (1)
src/lib.rs (1)
139-139: Verify thread safety and performance of papaya::HashMapThe cache type was switched from
DashMaptopapaya::HashMap. Before merging, please:
- Confirm that
papaya::HashMapimplementsSend + Sync(or otherwise guarantees safe concurrent access) by reviewing its documentation or source.- Validate its concurrency strategy (e.g., sharding, lock-free) to ensure it matches our PnP workload.
- Benchmark typical operations (
get,insert,remove) under expected concurrent loads and compare them to the previousDashMapperformance.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (26)
.github/actions/pnpm/action.yml(1 hunks).gitignore(1 hunks)Cargo.toml(1 hunks)README.md(1 hunks)fixtures/pnp/shared/lib.js(1 hunks)justfile(2 hunks)napi/index.d.ts(3 hunks)napi/src/lib.rs(4 hunks)napi/src/options.rs(2 hunks)napi/tests/simple.test.mjs(1 hunks)package.json(1 hunks)release-plz.toml(1 hunks)rust-toolchain.toml(1 hunks)src/cache.rs(1 hunks)src/error.rs(3 hunks)src/file_system.rs(4 hunks)src/lib.rs(14 hunks)src/options.rs(8 hunks)src/tests/exports_field.rs(1 hunks)src/tests/memory_fs.rs(0 hunks)src/tests/pnp.rs(1 hunks)src/tsconfig_context.rs(1 hunks)tests/integration_test.rs(2 hunks)tests/tsconfig_circular_reference_a.json(1 hunks)tests/tsconfig_circular_reference_b.json(1 hunks)tests/tsconfig_self_reference.json(1 hunks)
💤 Files with no reviewable changes (1)
- src/tests/memory_fs.rs
🚧 Files skipped from review as they are similar to previous changes (21)
- tests/tsconfig_circular_reference_a.json
- fixtures/pnp/shared/lib.js
- rust-toolchain.toml
- .gitignore
- tests/tsconfig_circular_reference_b.json
- tests/tsconfig_self_reference.json
- .github/actions/pnpm/action.yml
- napi/tests/simple.test.mjs
- src/tests/pnp.rs
- Cargo.toml
- release-plz.toml
- napi/index.d.ts
- src/error.rs
- src/tests/exports_field.rs
- src/cache.rs
- napi/src/options.rs
- tests/integration_test.rs
- src/tsconfig_context.rs
- justfile
- napi/src/lib.rs
- src/options.rs
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
package.json (6)
Learnt from: JounQin
PR: unrs/unrs-resolver#144
File: napi/patch.mjs:5-5
Timestamp: 2025-06-10T13:53:02.983Z
Learning: Build-time scripts in napi/patch.mjs and similar build pipeline contexts don't require error handling for reading expected files like index.js, as these files are guaranteed to be present during the build process.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: fixtures/pnp/package.json:11-14
Timestamp: 2025-04-21T08:11:41.469Z
Learning: The project uses a justfile with an `install` task that includes running yarn in the fixtures/pnp directory to install dependencies with the command: `cd fixtures/pnp && yarn`.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#115
File: tests/resolve_test.rs:251-263
Timestamp: 2025-05-28T02:21:41.547Z
Learning: In pnpm workspaces, `pnpm install` must be run first to initialize dependencies and create the proper node_modules/.pnpm structure before tests can pass. Tests that rely on resolving packages will fail if dependencies haven't been installed yet.
src/lib.rs (8)
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#40
File: src/tests/resolve.rs:121-136
Timestamp: 2025-03-29T04:14:03.715Z
Learning: For tests involving npm/yarn package resolution in the unrs-resolver project, dependencies must be installed first using the appropriate package manager commands (pnpm i, yarn) in both the root directory and fixture directories like fixtures/pnp and fixtures/misc/nested-package-json.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:13:59.358Z
Learning: In the unrs-resolver project, tests that intentionally document failing behavior (regression tests) should either use #[should_panic], assert on the expected error, or include clear documentation indicating they are intentional failing test cases.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T08:17:34.175Z
Learning: Test cases in unrs-resolver that intentionally document failing behavior should make the intent clear by either: 1) asserting on the expected error condition rather than the desired behavior, 2) using #[should_panic] for tests expected to panic, or 3) using #[ignore] with a reason to skip known failing tests in CI.
README.md (4)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
🪛 LanguageTool
README.md
[misspelling] ~198-~198: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... | Enforce that a extension from extensions must be used ...
(EN_A_VS_AN)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Benchmark
- GitHub Check: Test (windows-latest)
🔇 Additional comments (11)
package.json (1)
22-22: LGTM! Script rename clarifies purpose.The renaming from
postbuildtopostbuild:debugbetter indicates this script is specifically for debug builds, improving clarity without changing functionality.src/lib.rs (7)
66-66: LGTM! New module supports circular reference detection.The addition of
tsconfig_contextmodule aligns with the PR's objective to detect and prevent circular references in TypeScript configuration extensions.
113-116: LGTM! Import additions support TSConfig circular reference detection.The new
TsconfigResolveContextimport is properly added to support the circular reference detection feature.
716-730: LGTM! New directory exports resolution feature properly implemented.The new feature allowing package exports in directory resolution is:
- Properly gated behind the
allow_package_exports_in_directory_resolveoption- Maintains backwards compatibility
- Follows the same pattern as other exports field resolution
- Addresses the specific use case mentioned in the PR objectives for Vite projects
880-880: LGTM! Option rename improves clarity.The rename from
enable_pnptoyarn_pnpbetter reflects the specific PnP implementation being used and aligns with the broader refactoring mentioned in the PR.
973-979: LGTM! PnP cache refactoring properly implemented.The migration to papaya::HashMap with pin() and get_or_insert_with() pattern is correctly implemented. The logic maintains the same behavior while using the new cache implementation.
418-448: LGTM! Circular reference detection properly implemented.The TSConfig circular reference detection correctly:
- Checks for cycles before extending configurations
- Uses TsconfigResolveContext to track the extension chain
- Returns appropriate
TsconfigCircularExtenderror when cycles are detected- Properly manages the context with scoped tracking
This implementation aligns with the PR objective to prevent infinite loops in TSConfig extensions.
479-498: LGTM! Extended TSConfig loading maintains circular detection.The
extend_tsconfigmethod properly maintains the circular reference detection pattern, ensuring consistency across all TSConfig extension points.README.md (1)
215-221: Well-structured TypeScript configuration documentation.The new TypeScript Configuration section is well-formatted and provides clear descriptions of the new configuration options. The documentation effectively explains the purpose and usage of each field.
src/file_system.rs (2)
105-123: Clean conditional compilation implementation.The conditional compilation for
FileSystemOsstruct and itsDefaultimplementation correctly handles the presence/absence of theyarn_pnpfeature flag. The use ofcfg_if!makes the code readable and maintainable.
223-223: Consistent method call pattern.The
read_linkmethod call pattern is consistent with the overall refactoring approach, maintaining the same static method call structure used throughout the implementation.
eb48755 to
913c1b7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 913c1b7 in 2 minutes and 50 seconds. Click for details.
- Reviewed
1356lines of code in26files - Skipped
1files when reviewing. - Skipped posting
10draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tests/tsconfig_circular_reference_a.json:1
- Draft comment:
This file intentionally creates a circular tsconfig dependency with its partner. The structure is clear and appears correct for testing circular extension detection. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
2. tests/tsconfig_circular_reference_b.json:1
- Draft comment:
This file forms the other half of the circular reference test. Its simplicity and naming make its purpose clear. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
3. tests/tsconfig_self_reference.json:1
- Draft comment:
This self-referencing tsconfig file is useful to test self-extension detection. Its content is succinct and fits the test case. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
4. tests/integration_test.rs:14
- Draft comment:
The integration tests cover many public APIs (clone, debug, equality and tsconfig handling). The tests for detecting circular references (both self-reference and mutual circularity) are strong and clearly validate the error behavior. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
5. tests/integration_test.rs:56
- Draft comment:
The tsconfig tests correctly assert that a self–reference errors out via a TsconfigCircularExtend. Consider including comments to clarify the expected cyclic chain for readability. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
6. tests/integration_test.rs:71
- Draft comment:
Test for the raw JSON API is guarded by a feature flag and usesis_some_andto validate the expected content. This is concise and effective. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
7. tests/integration_test.rs:108
- Draft comment:
The API options tests that chain various helper methods on ResolveOptions are well‐organized. No issues found. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
8. tests/integration_test.rs:125
- Draft comment:
The dependencies test properly initializes a ResolveContext and verifies that file dependencies are recorded. This ensures that the caching and dependency collection works as intended. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
9. napi/index.d.ts:16
- Draft comment:
Typographical suggestion: consider changing "builtin" to "built-in" in the comment to adhere to common spelling conventions (e.g., "Node.js built-in module"). - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% The word "builtin" appears consistently throughout the codebase in identifiers like builtinModules and the Builtin interface name. While "built-in" may be more grammatically correct in prose, changing just this one instance would actually reduce consistency. The comment is purely stylistic and doesn't impact functionality. The comment is technically correct about English grammar conventions. Inconsistency in documentation style could potentially confuse readers. Code consistency is more important than perfect grammar in this case. Changing just one instance would make things worse, not better. Delete this comment. While technically correct, implementing it would reduce consistency with the rest of the codebase where "builtin" is used throughout.
10. src/tests/pnp.rs:91
- Draft comment:
Typo: In the function nameresolve_pnp_pkg_should_failed_while_disable_pnp_mode, consider changing 'should failed' to 'should fail' for correct grammar. - Reason this comment was not posted:
Comment was on unchanged code.
Workflow ID: wflow_Rq19UKcCalN6hJyO
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
913c1b7 to
eb50ecd
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
README.md (2)
198-198: Use “an extension” instead of “a extension”.Minor grammar nit – “extension” starts with a vowel sound.
-| enforceExtension | false | Enforce that a extension from extensions must be used | +| enforceExtension | false | Enforce that an extension from `extensions` must be used |
220-220: Fill in the default column to keep the TS config table consistent.Every other row supplies an explicit default; leaving this one blank makes the table feel unfinished.
-| tsconfig.configFile | | A relative path to the tsconfig file based on `cwd`, or an absolute path of tsconfig file. | +| tsconfig.configFile | None | A relative path to the tsconfig file based on `cwd`, or an absolute path of the tsconfig file. |
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (25)
.gitignore(1 hunks)Cargo.toml(1 hunks)README.md(1 hunks)fixtures/pnp/shared/lib.js(1 hunks)justfile(2 hunks)napi/index.d.ts(3 hunks)napi/src/lib.rs(4 hunks)napi/src/options.rs(2 hunks)napi/tests/simple.test.mjs(1 hunks)package.json(1 hunks)release-plz.toml(1 hunks)rust-toolchain.toml(1 hunks)src/cache.rs(1 hunks)src/error.rs(3 hunks)src/file_system.rs(4 hunks)src/lib.rs(14 hunks)src/options.rs(8 hunks)src/tests/exports_field.rs(1 hunks)src/tests/memory_fs.rs(0 hunks)src/tests/pnp.rs(1 hunks)src/tsconfig_context.rs(1 hunks)tests/integration_test.rs(2 hunks)tests/tsconfig_circular_reference_a.json(1 hunks)tests/tsconfig_circular_reference_b.json(1 hunks)tests/tsconfig_self_reference.json(1 hunks)
💤 Files with no reviewable changes (1)
- src/tests/memory_fs.rs
🚧 Files skipped from review as they are similar to previous changes (23)
- fixtures/pnp/shared/lib.js
- tests/tsconfig_circular_reference_b.json
- rust-toolchain.toml
- package.json
- tests/tsconfig_circular_reference_a.json
- .gitignore
- tests/tsconfig_self_reference.json
- src/tests/exports_field.rs
- justfile
- Cargo.toml
- napi/tests/simple.test.mjs
- src/cache.rs
- napi/index.d.ts
- release-plz.toml
- src/tests/pnp.rs
- src/tsconfig_context.rs
- tests/integration_test.rs
- napi/src/lib.rs
- src/options.rs
- napi/src/options.rs
- src/error.rs
- src/file_system.rs
- src/lib.rs
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
README.md (5)
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:4-6
Timestamp: 2025-04-20T16:00:16.106Z
Learning: The configuration with `".": ["."]` in the paths setting in fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json is an intentional test case for testing the TypeScript dot alias resolution behavior, specifically related to issue #437 in the eslint-import-resolver-typescript repository.
Learnt from: JounQin
PR: unrs/unrs-resolver#72
File: fixtures/tsconfig/cases/dot-alias/tsconfigs/tsconfig.base.json:0-0
Timestamp: 2025-04-21T06:11:46.964Z
Learning: JounQin's fix for the dot alias issue in PR #72 addresses the problem by correctly normalizing paths in the `extend_tsconfig` method, ensuring that base URLs are properly resolved as absolute paths when extending tsconfigs, rather than adding special case handling for dot aliases in the resolver.
Learnt from: JounQin
PR: unrs/unrs-resolver#75
File: src/tests/pnp.rs:116-133
Timestamp: 2025-04-21T09:52:45.840Z
Learning: In Yarn PnP environments, some packages use nested package.json files for subpaths instead of the exports field. The resolver should check for these nested package.json files when resolving subpaths like `@atlaskit/pragmatic-drag-and-drop/combine` to correctly handle packages with this structure.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
Learnt from: JounQin
PR: unrs/unrs-resolver#136
File: src/tests/extension_alias.rs:36-46
Timestamp: 2025-06-05T18:52:30.363Z
Learning: The fixtures/yarn directory in the unrs-resolver project requires running `yarn install` to install TypeScript dependencies before tests can run, similar to other fixture directories like fixtures/pnp. The test in src/tests/extension_alias.rs depends on the installed TypeScript package providing lib/typescript.d.ts and related files.
🪛 LanguageTool
README.md
[misspelling] ~198-~198: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...alse | Enforce that a extension from extensions must be used ...
(EN_A_VS_AN)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Benchmark
- GitHub Check: Test (windows-latest)
🔇 Additional comments (1)
README.md (1)
213-213: New option row looks good.
allowPackageExportsInDirectoryResolveis documented with the correct default and a clear explanation, and the table alignment is correct. Nice catch compared with the previous mis-alignment issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed eb50ecd in 3 minutes and 25 seconds. Click for details.
- Reviewed
1341lines of code in25files - Skipped
1files when reviewing. - Skipped posting
7draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tests/tsconfig_self_reference.json:1
- Draft comment:
This tsconfig file intentionally extends itself to trigger a self‐circular reference error. It looks correct. Consider ensuring there is a trailing newline for consistency. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =30%<= threshold50%The comment starts by stating that the tsconfig file intentionally extends itself, which is informative and not actionable. The second part of the comment suggests ensuring a trailing newline for consistency, which is a valid suggestion for code style consistency. However, the first part of the comment is purely informative and does not align with the rules.
2. tests/tsconfig_circular_reference_a.json:1
- Draft comment:
This file and its counterpart (tsconfig_circular_reference_b.json) correctly simulate a circular dependency between two tsconfig files. Their minimal structure makes the tests clear. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is purely informative, explaining the purpose of the file and its counterpart. It does not provide any actionable feedback or suggestions for improvement.
3. tests/tsconfig_circular_reference_b.json:1
- Draft comment:
Circular reference is set up by extending tsconfig_circular_reference_a.json. The structure is minimal and effective for testing circular reference detection. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment seems to be purely informative, describing the setup of a circular reference for testing purposes. It doesn't provide a suggestion, ask for confirmation, or point out a potential issue.
4. src/tsconfig_context.rs:3
- Draft comment:
The TsconfigResolveContext struct is simple and clearly tracks extended configuration paths. Consider adding a comment explaining the intended use of the extended_configs field for future maintainers. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%The comment is suggesting adding a comment for future maintainers, which is a purely informative suggestion. It doesn't provide a specific code improvement or point out a potential issue.
5. tests/integration_test.rs:55
- Draft comment:
The integration tests for tsconfig circular references (both self-reference and mutual circular references) are well written and properly assert that a TsconfigCircularExtend error is returned with the expected sequence of paths. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is purely informative, as it only praises the quality of the integration tests without providing any actionable feedback or suggestions for improvement. It does not align with the rules for useful comments.
6. README.md:221
- Draft comment:
Typographical suggestion: In thetsconfig.referencesdescription, consider removing the space instring []so that it readsstring[]for consistency. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% While the suggestion would improve consistency, this is an extremely minor documentation formatting issue. The current format is still perfectly readable and understandable. PR comments should focus on more substantial issues that require code changes. Documentation formatting suggestions like this could be seen as noise. The change would improve consistency in TypeScript type formatting. Some might argue consistency in documentation is important for professionalism. While consistency is good, this is too minor to warrant a PR comment. Such small documentation formatting issues can be handled in bulk during documentation cleanup passes rather than as individual PR comments. Delete this comment as it's too minor of a documentation formatting issue to warrant a PR comment.
7. src/tests/pnp.rs:91
- Draft comment:
Typo: In the function name 'resolve_pnp_pkg_should_failed_while_disable_pnp_mode', the term 'failed' should likely be 'fail' (i.e., it should be 'resolve_pnp_pkg_should_fail_while_disable_pnp_mode'). - Reason this comment was not posted:
Comment was on unchanged code.
Workflow ID: wflow_nToxff5xpEJMLmQ4
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |



Maybe the last one in favor of #167
Important
This PR adds support for Node.js builtin modules, Yarn Plug'n'Play, and enhances TypeScript configuration handling, while fixing tsconfig extension loops and refactoring resolver internals.
exportsfield.This description was created by
for eb50ecd. You can customize this summary. It will automatically update as commits are pushed.
Summary by CodeRabbit
New Features
exportsfield.Bug Fixes
Documentation
Refactor
Tests
Chores
.gitignore, and renamed a script inpackage.json.