All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
11.1.0 - 2025-06-01
- support module type for TS files (#538)
11.0.0 - 2025-05-28
- implement module type resolution algorithm
ESM_FILE_FORMATfrom the spec (#535)
- (README) clarify algorithm specification
- (deps) lock file maintenance rust crates (#530)
10.0.0 - 2025-05-20
- (napi) upgrade NAPI-RS to 3.0.0-beta.1 (#525)
- [breaking] set clippy
avoid-breaking-exported-api = false(#519)
- (deps) lock file maintenance (#523)
- (deps) update dependency rust to v1.87.0 (#520)
- sync napi cfg on global_allocator
- (napi) adjust mimalloc features (#515)
9.0.1 - 2025-05-09
- oxc_resolver_napi dependency version
9.0.0 - 2025-05-09
- hash import does not need to load from node_modules (#501)
8.0.0 - 2025-05-01
- fix incorrect return of package.json when a workspace module has
node_modules(#482)
- cache whether a path is
node_modulesor insidenode_modules(#490) - remove a useless
load_as_directorycall (#487)
7.0.0 - 2025-04-29
- return the enclosing
package.jsonif it is insidenode_modules(#476)
- add
DebugtoFsCachedPath(#478)
6.0.1 - 2025-04-25
- handle package.json and tsconfig.json with BOM (#463)
- avoid double call to
parse_package_specifier(#465)
6.0.0 - 2025-04-22
- properly handle DOS device paths in strip_windows_prefix (#455)
5.3.0 - 2025-04-19
- deserialize
preserve_value_importsandimports_not_used_as_valuesfromcompilerOptions(#457) - deserialize
targetfromcompilerOptions(#456)
5.2.0 - 2025-04-08
- resolve
${configDir}in tsconfigcompilerOptions.baseUrl(#450)
5.1.1 - 2025-04-04
- handle query and fragment in pacakge.json
exportsandimportsfield (#443)
5.1.0 - 2025-04-02
- resolve emitDecoratorMetadata in tsconfig (#439)
- fix an incorrect comment on
Context::missing_dependencies
5.0.0 - 2025-03-07
- remove papaya
.collector(seize::Collector::new())call (#393)
4.2.0 - 2025-02-19
- support wildcard
*in alias plugin (#388)
4.1.0 - 2025-02-14
- merge options from extends tsconfig.json (#375)
- add more fields in tsconfig#CompilerOptionsSerde (#374)
- fix bench
4.0.0 - 2025-01-20
- [breaking] generic fs cache
type Resolver = ResolverGeneric<FsCache<FileSystemOs>>(#358) - [breaking]
PackageJsonandTsConfigtraits (#360)
- use papaya instead of dashmap (#356)
3.0.3 - 2024-12-14
- try browsers field and alias before resolving directory in node_modules (#349)
3.0.2 - 2024-12-13
- special case for aliasing
@/(#348) - normalize resolved result on Windows for root (#345)
- replace UnsafeCell with RefCell (#346)
3.0.1 - 2024-12-12
- try directory first in
node_modules(#340)
3.0.0 - 2024-12-11
- [breaking] replace
FileSystem::canonicalizewithFileSystem::read_link(#331)
- guard
load_aliason hot path (#339)
2.1.1 - 2024-11-22
- reduce hash while resolving package.json (#319)
- reduce memory allocation while normalizing package path (#318)
- reduce memory allocation while resolving package.json (#317)
- use
path.as_os_str().hash()instead ofpath.hash()(#316) - reduce memory allocation by using a thread_local path for path methods (#315)
- remove the deprecated simdutf8 aarch64_neon feature
- mention extension must start with a
.inwith_extension(#313)
2.1.0 - 2024-11-20
- add
Resolver::resolve_tsconfigAPI (#312)
- don't panic when resolving
/withroots(#310) - use same UNC path normalization logic with libuv (#306)
- (deps) update rust crates to v1.0.215
- fix symlink test init on windows (#307)
2.0.1 - 2024-11-08
cargo upgrade&&pnpm upgrade- bring back the symlink optimization (#298)
- (deps) update rust crate criterion2 to v2
2.0.0 - 2024-10-22
- [breaking] add
add ResolveError::Builtin::is_runtime_module(#272)
1.12.0 - 2024-09-25
- [breaking] mark
ResolveError#[non_exhaustive] (#252) - show tried extension aliases in
ResolveError::ExtensionAlias(#251) - give a specific error for matched alias not found (#238)
1.11.0 - 2024-08-26
1.10.2 - 2024-07-16
- Release FreeBSD
1.10.1 - 2024-07-15
- resolve module
ipaddr.jscorrectly whenextensionAliasis provided (#228)
1.10.0 - 2024-07-11
- (napi) expose module type info in ResolveResult (#223)
- remove
#[cfg(target_os = "windows")]logic incanonicalize(#221)
- update
cargo deny(#222) - pin crate-ci/typos version
1.9.4 - 2024-07-10
1.9.3 - 2024-07-03
- tsconfig project reference it self should throw error (#211)
- (napi) make napi binary smaller with minimal tracing features (#213)
- (napi) remove tokio (#212)
- (deps) update rust crate dashmap to v6 (#209)
1.9.2 - 2024-06-30
- (napi) add tracing via
OXC_LOG:DEBUG(#202)
- document directory is an absolute path for
resolve(directory, specifier)(#206) - add a broken tsconfig test (#205)
- improve code coverage for src/error.rs (#204)
- skip resolving extension alias when
options.extension_aliasis empty (#203) - add npm badge to crates.io
1.9.1 - 2024-06-29
- strip symbols and enable LTO (#197)
1.9.0 - 2024-06-28
- export package.json
typeandsideEffectsfield by default for bundlers (#196)
1.8.4 - 2024-06-27
- skip searching for package.json when
alias_fieldsis not provided (#194)
1.8.3 - 2024-06-26
- (napi) release wasi build
1.8.2 - 2024-06-24
- (napi) add async API (#191)
1.8.1 - 2024-05-31
- alias value should try fragment as path (#172)
1.8.0 - 2024-05-27
- [breaking] remove the constraint on packages exports
defaultmust be the last one (#171) - [breaking] return
ResolveError:Builtin("node:{specifier}")from package imports and exports (#165)
- alias not found should return error (#168)
- add panic test for extensions without a leading dot (#150)
- add test case for empty alias fields (#149)
1.7.0 - 2024-04-24
- add
imports_fieldsoption (#138) - substitute path that starts with
${configDir}/in tsconfig.compilerOptions.paths (#136)
- RootsPlugin debug_assert on windows (#145)
- RootsPlugin should fall through if it fails to resolve the roots (#144)
- lazily read package.json.exports for shared resolvers (#137)
- remove
PartialEqandEqfromSpecifier(#148) - add test case for tsconfig paths alias fall through (#147)
- use
cargo shear - fix test not failing the jobs property (#146)
- lazily read package.json.browser_fields for shared resolvers (#142)
- avoid an extra allocation in
load_extensions - ignore code coverage for
DisplayonResolveOptions(#140) - remove the browser field lookup in
resolve_esm_match(#141) - remove the extra
condition_namesfrompackage_exports_resolve
1.6.7 - 2024-04-22
- incorrect resolution when using shared resolvers with different
main_fields(#134)
1.6.6 - 2024-04-22
- print resolve options while debug tracing (#133)
1.6.5 - 2024-04-10
- canonicalize is not supported on wasi target (#124)
- document feature flags
1.6.4 - 2024-03-29
- improve terminology and clarify contexts