Releases: elixir-volt/npm_ex
Releases · elixir-volt/npm_ex
v0.7.4
- Preserve file permissions from tarballs, fixing EACCES for native executables like
tsgo - Run package scripts directly with
nodeso package#importsresolve correctly - Detect native binaries and execute them directly instead of wrapping in a Node.js loader
- Propagate non-zero exit codes from
mix npm.runandmix npm.execto the shell - Fix
--frozeninstall rejecting lockfiles with optional dependencies or without a policy section
v0.7.3
v0.7.2
v0.7.1
v0.7.0
- Reorganize supporting modules under domain namespaces; see
CHANGELOG.mdfor the migration map - Block transitive exotic dependency specs by default and require allowlisting for direct exotic deps
- Enforce registry origin allowlists and record dependency security policy in
npm.lock - Add package/version age warnings for newly published packages
- Add OSV/OpenSSF malicious-package checks via
mix npm.audit --osvandmix npm.audit --compromised - Add shared compromised-package advisory cache under
~/.npm_ex/security/ - Add HexDocs user guides and cheatsheets
v0.6.1
- Harden tarball extraction against path traversal and absolute-path entries
- Preserve install-script metadata in
npm.lock - Warn when dependencies declare ignored lifecycle scripts
- Document that
npm_exdoes not run package lifecycle hooks automatically, mitigating install-time credential stealers
v0.6.0
- Move resolution modules under
NPM.Resolution:PackageResolver,Exports, andConditional - Support nested conditional package exports, array targets, and wildcard export patterns in
NPM.Resolution.Exports - Add package
importsresolution for internal specifiers such as#compiler/builders - Add
NPM.Resolution.PackageResolver.nearest_package/1andNPM.Resolution.PackageResolver.package_root/2 - Harden package resolution for modern packages such as Svelte and
@jridgewell/* - Fix optional tarball linker test isolation
v0.5.3
v0.5.2
- Add
NPM.PackageResolver— Node.js module resolution algorithm (specifier parsing,node_modulestraversal,package.jsonentry points, extension probing) - Fix ETS race condition in
NPM.Resolvercache initialization - Fix
NPM.Cache.ensure/5spec and docs to include{:ok, :missing_optional}return - Fix dead code in
NPM.PeerDepsversion matching (redundant boolean case) - Fix
NPM.FileSize.by_extension/1dead||branch (Path.extnamenever returns nil) - Fix
NPM.DepSort.install_order/1dead{:error, :cycle}branch - Fix crash in
NPM.Linkernested version resolution on unparseable versions - Replace blanket
rescue _with specific exception types across the codebase - Flatten nesting in
expand_all_optional_deps,solver_dependencies,select_group - Bump ex_dna
~> 1.1→~> 1.3
Release 0.5.1
- Platform-agnostic lockfile:
npm.locknow includes all optional platform bindings, not just the current platform - Only install matching platform bindings into
node_modulesat link time - Lockfiles are now portable across OS/arch — same as npm's
package-lock.jsonbehavior