Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
947 commits
Select commit Hold shift + click to select a range
8614b2a
fix(arborist): avoid full reinstall on subsequent linked strategy run…
manzoorwanijk Mar 4, 2026
93c3365
deps: [email protected]
wraithgar Mar 4, 2026
dff1853
deps: @npmcli/[email protected]
wraithgar Mar 4, 2026
d86b260
deps: [email protected]
wraithgar Mar 4, 2026
2000d2c
deps: [email protected]
wraithgar Mar 4, 2026
bf7ea2b
deps: [email protected]
wraithgar Mar 4, 2026
d1996a7
chore: dev dependency updates
wraithgar Mar 4, 2026
a774fb7
fix(arborist): respect --omit flag in linked install strategy (#9066)
manzoorwanijk Mar 5, 2026
3b96929
docs(scripts): remove mention of obsolete root user behavior (#9074)
mohd-akram Mar 6, 2026
1206f8b
fix: consolidate isolated node/link attributes (#9069)
wraithgar Mar 6, 2026
ff51827
fix(arborist): do not hoist undeclared workspaces in linked strategy …
manzoorwanijk Mar 7, 2026
1a744b5
fix(arborist): omit root dev deps in linked strategy when shared with…
manzoorwanijk Mar 9, 2026
76c76e5
fix(ci): don't error on optional deps in the lockfile (#9083)
wraithgar Mar 9, 2026
13fa40d
deps: [email protected]
wraithgar Mar 9, 2026
075ae23
deps: [email protected]
wraithgar Mar 9, 2026
c7702d0
fix(arborist): fix non-idempotent linked install with workspace proje…
manzoorwanijk Mar 10, 2026
b56986a
fix(ls): suppress false UNMET DEPENDENCYs in linked strategy (#9095)
manzoorwanijk Mar 10, 2026
29b8407
fix: unwrap comments and lines meant for output (#9087)
wraithgar Mar 10, 2026
3b70a9d
fix(arborist): simplify rootDeclaredDeps initialization (#9097)
manzoorwanijk Mar 10, 2026
5b7c0cc
fix(arborist): exclude store nodes from :root > * in linked strategy …
manzoorwanijk Mar 10, 2026
a9d242b
fix: include all subcommands on main command help (#9099)
wraithgar Mar 10, 2026
8afa3bd
chore: release 11.11.1
github-actions[bot] Mar 10, 2026
8e0a731
fix(arborist): skip linked actual tree diff in package-lock-only mode…
manzoorwanijk Mar 16, 2026
51365b1
fix(arborist): update store symlinks when hash changes in linked stra…
manzoorwanijk Mar 16, 2026
21ea382
fix(arborist): resolve sibling override sets via common ancestor (#9110)
manzoorwanijk Mar 16, 2026
03af94d
fix: skip synopsis code block when command has no usage
owlstronaut Mar 17, 2026
98ccf92
chore: fix snap tests
owlstronaut Mar 17, 2026
8eff5fb
feat(audit): add --include-attestations flag to output sigstore bundl…
mitchdenny Mar 18, 2026
e839b07
fix: clear exclusive param siblings when setting from CLI (#9023)
umeshmore45 Mar 18, 2026
ce195dc
deps: [email protected]
wraithgar Mar 18, 2026
920e5ed
chore: test snapshots
wraithgar Mar 18, 2026
82deab6
deps: [email protected]
wraithgar Mar 18, 2026
e5a7e22
deps: [email protected]
wraithgar Mar 18, 2026
7e9d538
chore: dev dependency updates
wraithgar Mar 18, 2026
d273380
fix(config): make prefer-offline and prefer-online exclusive (#9129)
mvanhorn Mar 18, 2026
8dcfe69
deps: @sigstore/[email protected]
wraithgar Mar 18, 2026
4d5f7d9
deps: @gar/[email protected]
wraithgar Mar 18, 2026
03f4c3a
deps: @sigstore/[email protected]
wraithgar Mar 18, 2026
95fa7f4
chore: fix docs test snapshot (#9132)
wraithgar Mar 18, 2026
1afa738
chore: release 11.12.0
github-actions[bot] Mar 18, 2026
d1ee8a5
docs: Add note on relative path prefix for npm publish (#9140)
pydsigner Mar 23, 2026
596706a
fix: revert prefer-offline/prefer-online exclusivity (#9129)
owlstronaut Mar 24, 2026
63b9a7c
chore: release 11.12.1
github-actions[bot] Mar 24, 2026
05dbba5
chore: enable prerelease mode (#9195)
wraithgar Apr 6, 2026
07552f5
chore: don't run npm update in CI
owlstronaut Apr 13, 2026
45e44dd
feat: adds a backport script
owlstronaut Apr 13, 2026
6df5f91
chore: backports can trigger CI
owlstronaut Apr 13, 2026
7357d7f
fix!: remove npm adduser command
owlstronaut Feb 26, 2026
dcad8ec
fix: pass _isRoot context where missing (#9206)
wraithgar Apr 15, 2026
1d058b0
fix(arborist): do not install inert optional extraneous shared depend…
lovell Apr 15, 2026
8131de4
chore: add action permission for backport workflow
owlstronaut Apr 15, 2026
ccce5f6
deps: [email protected]
wraithgar Mar 25, 2026
2501dd8
deps: [email protected]
wraithgar Apr 8, 2026
87bb9d0
deps: [email protected]
wraithgar Apr 8, 2026
6faa25e
deps: [email protected]
wraithgar Apr 8, 2026
413e0a0
deps: [email protected]
wraithgar Apr 8, 2026
150231d
deps: [email protected]
wraithgar Apr 8, 2026
b09a5ac
deps: [email protected]
wraithgar Apr 8, 2026
9669d31
deps: @sigstore/[email protected]
wraithgar Apr 8, 2026
db7c1f8
feat: add `u` as alias for `update` command (#9163)
Ausoj Apr 16, 2026
738be10
feat: remove star commands (#9196)
wraithgar Apr 16, 2026
2e9b26e
fix: sync json output of pack and publish (#9247)
wraithgar Apr 16, 2026
4ef5b6e
fix!: stop resolving node path via whichnode
owlstronaut Feb 27, 2026
0dc5585
fix(arborist): handle `npm link` with install-strategy=linked
manzoorwanijk Mar 30, 2026
1ab20c8
fix(arborist): fix infinite loop with bundledDependencies and overrid…
everett1992 Apr 17, 2026
bc32d94
fix(arborist): propagate overrides through Link nodes to targets (#9198)
manzoorwanijk Apr 17, 2026
e9b0157
fix(libnpmexec): skip redundant reify for cached directory specs (#9255)
manzoorwanijk Apr 17, 2026
27567ab
fix: ignore intended error code
owlstronaut Apr 17, 2026
2397196
feat!: Remove Twitter and Freenode profile fields
owlstronaut Apr 21, 2026
2e5dcad
feat!: drop npm-shrinkwrap.json support
owlstronaut Apr 20, 2026
2ca36c4
chore: fixed non-functional typos throughout the codebase
opensourcezeal Apr 21, 2026
cc468a8
chore: refactor tests
wraithgar Apr 21, 2026
01d9acd
fix(pkg): output like npm view does, do not force json output
wraithgar Apr 22, 2026
79d394e
deps: [email protected]
owlstronaut Apr 22, 2026
799866f
deps: [email protected]
owlstronaut Apr 22, 2026
5af02ec
deps: [email protected]
owlstronaut Apr 22, 2026
b9332e6
chore: dev dependency updates
owlstronaut Apr 22, 2026
e20424b
fix!: don't install man pages in system locations
owlstronaut Feb 26, 2026
faf7348
fix!: align CycloneDX SBOM component names with SPDX (#9284)
cyphercodes Apr 28, 2026
916cb4b
feat: add allow-directory, allow-file, and allow-remote (#9287)
wraithgar Apr 28, 2026
b1965d6
fix!: refuse to pack when overrides apply to bundled packages
owlstronaut Apr 22, 2026
6628d05
fix(config): preserve min-release-age after flattening
lawrence3699 Apr 27, 2026
d36945d
fix!: do not unwrap single-item arrays in --json output
yetanotheraryan May 4, 2026
0629fbf
fix: prefer existing tree nodes for peerOptional deps (#9249) (#9283)
everett1992 May 4, 2026
32940e2
fix(arborist): ignore hidden entries in global update (#9299)
Grynn May 4, 2026
b8655c7
feat(arborist): add lockfileString() for in-memory lockfile generation
ljharb Apr 25, 2026
076551b
fix(arborist): clean up orphan top-level symlinks in linked strategy …
manzoorwanijk May 6, 2026
d623988
fix(sbom): dedupe per-node dependsOn / relationships (#9311)
mikaelkristiansson May 6, 2026
d68bd36
chore: add cli-triage team as codeowner (#9317)
owlstronaut May 6, 2026
37bd0c6
deps: [email protected]
owlstronaut May 6, 2026
af65766
deps: [email protected]
owlstronaut May 6, 2026
fbe1dd0
deps: [email protected]
owlstronaut May 6, 2026
4259e57
chore: dev dependency updates
owlstronaut May 6, 2026
70af7b3
fix: remove settings (#9327)
owlstronaut May 8, 2026
4c7f6ba
fix(arborist): prune removed-workspace entries from package-lock.json
manzoorwanijk May 8, 2026
81793ae
fix(arborist): skip extraneous fsChildren in linked-strategy reify
manzoorwanijk May 8, 2026
6704ab2
docs: npm view with json outputs array docs update (#9335)
yetanotheraryan May 12, 2026
b61281d
chore: change test wording to not collide with tap (#9349)
owlstronaut May 12, 2026
e0f12f7
feat: add allow-git/allow-file/allow-directory/allow-remote configs
owlstronaut May 12, 2026
1f17566
fix: allow-remote=none does not block registry tarballs
owlstronaut May 12, 2026
f550eb4
fix: refactor #failureNode, adjust tests and safety
owlstronaut May 13, 2026
2c9587e
fix(arborist): only forward Link overrides when a rule names a target…
manzoorwanijk May 14, 2026
822ce86
fix(arborist): skip lockfile entries for optional deps with incomplet…
ecanturk May 15, 2026
c97b39b
docs: add example to optionalDependencies section (#9363)
verifizieren May 15, 2026
cf94dbe
feat: add permissions support to trust commands (#9248)
reggi May 20, 2026
ca585c8
fix: allow min-release-age in npmrc to coexist with --before
raazkhnl May 1, 2026
18ebb0f
fix: min-release-age=0 doesn't filter, honor cross-source precedence
owlstronaut May 18, 2026
254809e
feat: npm stage (#9201)
reggi May 20, 2026
2a13550
fix: key stage download --json output by package name (#9380)
reggi May 20, 2026
514c71b
deps: [email protected]
owlstronaut May 20, 2026
66c7ff1
deps: [email protected]
owlstronaut May 20, 2026
91bd674
deps: [email protected]
owlstronaut May 20, 2026
e36a4e3
deps: [email protected]
owlstronaut May 20, 2026
1c4a796
deps: [email protected]
owlstronaut May 20, 2026
b2717e4
deps: [email protected]
owlstronaut May 20, 2026
a77416e
deps: [email protected]
owlstronaut May 20, 2026
d151521
deps: [email protected]
owlstronaut May 20, 2026
f502c4f
chore: dev dependency updates
owlstronaut May 20, 2026
4296f64
chore: release 12.0.0-pre.0.0
github-actions[bot] May 20, 2026
d124c08
docs: Document `npm_old_version` and `npm_new_version` environment va…
36degrees May 21, 2026
c0fc549
fix(config): pause progress spinner during interactive editor spawn (…
Zelys-DFKH May 21, 2026
979518d
feat!: error on unknown configs, flags, and abbreviations (#9276)
owlstronaut May 21, 2026
2a03860
fix!: run root preinstall before reify
owlstronaut Apr 21, 2026
5fc9bc0
chore: sanitize newlines in flags table default and type values (#9393)
reggi May 26, 2026
6237783
fix: exempt local project introspection from allow-directory
owlstronaut May 26, 2026
33aebaa
fix: fix typo of fullMetadata
owlstronaut May 26, 2026
7068d42
feat: Phase 1 of `allowScripts` opt-in install-script policy (#9360)
JamieMagee May 27, 2026
c9be2d1
feat: publish --access=private alias for restricted (#9153)
reggi May 27, 2026
b77850e
fix: skip hidden lockfile save on dry run (#9395)
puneetdixit200 May 27, 2026
dac7ff6
fix(arborist): drop self-link materialization for undeclared workspac…
manzoorwanijk May 27, 2026
f2e4a28
feat: add a global npmignore file (#9351)
ljharb May 27, 2026
577d61d
deps: [email protected]
owlstronaut May 27, 2026
8be4c04
deps: [email protected]
owlstronaut May 27, 2026
11cd66e
deps: @npmcli/[email protected]
owlstronaut May 27, 2026
11e7ac7
deps: @sigstore/[email protected]
owlstronaut May 27, 2026
d5ddef2
deps: @sigstore/[email protected]
owlstronaut May 27, 2026
ee61b6e
deps: [email protected]
owlstronaut May 27, 2026
7f6c6ef
deps: [email protected]
owlstronaut May 27, 2026
d28783e
deps: [email protected]
owlstronaut May 27, 2026
da63c79
chore: dev dependency updates
owlstronaut May 27, 2026
c5292fa
fix: use prerelease strategy without a bug
owlstronaut May 27, 2026
080e3b2
fix: block forbidden keys in Queryable setter to prevent prototype po…
12122J May 27, 2026
79b0c84
fix!: default opts.access to null to preserve registry behavior
owlstronaut May 27, 2026
a81f2f8
fix(arborist): read install scripts from disk on lockfile installs in…
JamieMagee May 28, 2026
b97edc0
fix(audit): don't apply min-release-age before filter when verifying …
JamieMagee May 28, 2026
6efac6e
fix(config): clarify --all help so it's accurate for approve-scripts …
JamieMagee Jun 1, 2026
9f3c97f
fix: sanitize package name in linked-strategy path construction
owlstronaut Jun 1, 2026
75bf7de
fix: respect allowScripts policy in prune, dedupe, uninstall, audit f…
JamieMagee Jun 1, 2026
fe41ae7
fix: show full parent command path in subcommand usage errors (#9404)
shaanmajid Jun 2, 2026
fe820b6
fix: invalid issue template YAML indentation (#9442)
fallintoplace Jun 2, 2026
6901bb1
fix: escape executable name in libnpmexec run-script (#9436)
rootvector2 Jun 2, 2026
76f8059
fix: flatten path separators in pack output filename (#9446)
rootvector2 Jun 2, 2026
caa3295
feat!: default allow-git and allow-remote to none
owlstronaut Jun 2, 2026
aac80dc
docs: update minimum npm required for npm trust
meeech Jun 2, 2026
6603b2c
fix: suggest --allow-scripts for global installs in unreviewed-script…
JamieMagee Jun 3, 2026
6be874b
fix: list pending scripts in approve-scripts when ignore-scripts is s…
JamieMagee Jun 3, 2026
64e3f79
feat: allowScripts tooling and inBundle hardening (#9480)
JamieMagee Jun 3, 2026
5cd5150
feat: default-deny install scripts (allowScripts opt-in) [v12]
JamieMagee Jun 3, 2026
275bc69
fix(arborist): clean up orphaned scoped store entries in linked strategy
manzoorwanijk May 30, 2026
a105799
fix(arborist): link meta-only optional peers in linked strategy
manzoorwanijk Jun 2, 2026
bf623e0
fix: validate registry path for allow-remote tarballs
Abhinav-143x Jun 3, 2026
2cbb13b
fix: recognize allowScripts for local link targets (#9490)
cyphercodes Jun 5, 2026
0e55f97
fix: pass script-shell to publish lifecycle hooks
Zelys-DFKH Jun 4, 2026
4bcba54
fix(arborist): apply registry-tarball allow-remote exemption in linke…
manzoorwanijk Jun 5, 2026
455aa4a
docs: use the latest version for global update and outdated's `wanted…
liangmiQwQ Jun 5, 2026
bcf01c6
docs: clarify package.json override value specs (#9505)
ded-furby Jun 8, 2026
d70e116
fix(arborist): honor allow-remote=root for root-direct remote tarball…
manzoorwanijk Jun 8, 2026
7a997ac
chore: update issue templates (#9512)
owlstronaut Jun 8, 2026
4e2496a
chore: update issue templates - better language
owlstronaut Jun 8, 2026
357e8cd
docs: approve-scripts only throws EGLOBAL when run with -g
JamieMagee Jun 9, 2026
9b5c7b0
fix(config): strict-allow-scripts default blocks with a warning, not …
JamieMagee Jun 9, 2026
34dbdf5
fix(arborist): enforce allowScripts for file:/link: dep scripts
JamieMagee Jun 9, 2026
fc6268a
fix: keep nested file: deps and re-resolve changed git refs (#9523)
owlstronaut Jun 10, 2026
f6a9aad
feat: differentiate GitHub Actions environments in user-agent (#9517)
reggi Jun 10, 2026
c3e1a71
feat: add min-release-age-exclude config
JamieMagee Jun 10, 2026
b3b7197
test: regenerate smoke snapshot for strict-allow-scripts description
JamieMagee Jun 10, 2026
f6270d1
fix: emit valid JSON from approve-scripts/deny-scripts --json
owlstronaut Jun 10, 2026
abf78b3
fix: match dotted and versioned args in approve-scripts/deny-scripts
owlstronaut Jun 11, 2026
acdd6d5
chore: bumping @npmcli/template-oss from 4.29.0 to 5.1.0
owlstronaut Jun 16, 2026
18eb967
feat!: bump to new node engine range
owlstronaut Jun 16, 2026
d25a179
chore: template-oss-apply
owlstronaut Jun 16, 2026
4d234b2
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
f86a019
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
0be6ae2
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
f0eaef3
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
27c4dcc
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
9d13ebf
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
9bbdefb
deps: @sigstore/[email protected]
owlstronaut Jun 16, 2026
0d15aec
deps: [email protected]
owlstronaut Jun 16, 2026
66d46bc
deps: [email protected]
owlstronaut Jun 16, 2026
d867351
deps: [email protected]
owlstronaut Jun 16, 2026
406820a
deps: [email protected]
owlstronaut Jun 16, 2026
350fb18
deps: [email protected]
owlstronaut Jun 16, 2026
d44db96
deps: [email protected]
owlstronaut Jun 16, 2026
30e89d9
deps: [email protected]
owlstronaut Jun 16, 2026
40395b8
deps: [email protected]
owlstronaut Jun 16, 2026
471309f
deps: [email protected]
owlstronaut Jun 16, 2026
faf97e5
deps: [email protected]
owlstronaut Jun 16, 2026
5e1d513
deps: [email protected]
owlstronaut Jun 16, 2026
d80859a
deps: [email protected]
owlstronaut Jun 16, 2026
998ff1d
deps: [email protected]
owlstronaut Jun 16, 2026
1fd247a
deps: [email protected]
owlstronaut Jun 16, 2026
1f9c567
deps: [email protected]
owlstronaut Jun 16, 2026
171bba3
deps: [email protected]
owlstronaut Jun 16, 2026
a44c1cf
deps: [email protected]
owlstronaut Jun 16, 2026
8f85646
deps: [email protected]
owlstronaut Jun 16, 2026
21df0ab
deps: [email protected]
owlstronaut Jun 16, 2026
3484d7f
deps: [email protected]
owlstronaut Jun 16, 2026
68eb39c
deps: [email protected]
owlstronaut Jun 16, 2026
1502286
deps: [email protected]
owlstronaut Jun 16, 2026
13d97ac
deps: [email protected]
owlstronaut Jun 16, 2026
5032af3
deps: [email protected]
owlstronaut Jun 16, 2026
e459d7a
deps: [email protected]
owlstronaut Jun 16, 2026
370f9c6
deps: [email protected]
owlstronaut Jun 16, 2026
2f5da83
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
b62db95
deps: [email protected]
owlstronaut Jun 16, 2026
95ed19c
deps: regenerate bundled dependencies
owlstronaut Jun 16, 2026
428afa6
deps: [email protected]
owlstronaut Jun 16, 2026
3dc18e5
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
cc96d57
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
a12e2c8
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
cc45055
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
ad05528
deps: @npmcli/[email protected]
owlstronaut Jun 16, 2026
5dce6fb
deps: [email protected]
owlstronaut Jun 16, 2026
ee3d87f
chore: @npmcli/[email protected]
owlstronaut Jun 16, 2026
0323f2d
chore: template-oss-apply
owlstronaut Jun 16, 2026
3ef66bb
deps: bundle arborist runtime deps for bootstrap
owlstronaut Jun 16, 2026
d4e0a70
deps: @tufjs/[email protected]
owlstronaut Jun 17, 2026
1453954
chore: [email protected]
owlstronaut Jun 17, 2026
fc3ef5a
fix: adapt to @npmcli/run-script@11 breaking changes
owlstronaut Jun 17, 2026
be8053c
feat: warn when min-release-age blocks an audit fix (#9544)
JamieMagee Jun 18, 2026
fc80bb3
feat!: remove default license for npm init
owlstronaut Jun 18, 2026
1db885c
feat: native dependency patching (npm patch add/commit/update/ls/rm) …
manzoorwanijk Jun 18, 2026
5ddf6cc
fix(patch): keep the update marker on a no-op commit so a retry final…
manzoorwanijk Jun 18, 2026
ce7681f
feat: packageExtensions for root-owned dependency manifest repairs (#…
manzoorwanijk Jun 18, 2026
f9c977c
fix(arborist): re-apply packageExtensions to the linked actual tree (…
manzoorwanijk Jun 18, 2026
cfda867
fix(arborist): warn once for workspace packageExtensions selector mat…
manzoorwanijk Jun 18, 2026
62b0694
fix(patch): explain out-of-sync lockfile after --ignore-patch-failure…
manzoorwanijk Jun 18, 2026
a847d28
fix(patch): warn when `patch update --to` targets an uninstalled vers…
manzoorwanijk Jun 18, 2026
315e3bd
fix(arborist): drop orphaned patch entry on uninstall instead of EPAT…
manzoorwanijk Jun 18, 2026
8bbd70d
fix(arborist): allow-remote exemption for proxy/mirror-fronted regist…
manzoorwanijk Jun 18, 2026
afce424
fix(arborist): expose store node_modules via NODE_PATH for linked-str…
manzoorwanijk Jun 18, 2026
9cbba72
deps: [email protected]
owlstronaut Jun 18, 2026
e96a7de
fix!: Preserve https protocol when working with git (#8703)
oldium Jun 19, 2026
059c06e
chore: add web-login proxy doneUrl regression for npm-profile fix (#9…
manzoorwanijk Jun 19, 2026
ed72962
chore: release 12.0.0-pre.1
github-actions[bot] Jun 19, 2026
00b9f9f
fix(arborist): symlink workspace file: deps on non-workspace local pa…
manzoorwanijk Jun 22, 2026
1a9ce8e
fix(link): scope `npm link <path> --workspace` to the workspace, not …
manzoorwanijk Jun 22, 2026
ce11dcf
deps: [email protected]
owlstronaut Jun 22, 2026
58cd8f5
feat: `.npm-extension` transformManifest for imperative manifest repa…
manzoorwanijk Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .commitlintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ module.exports = {
'header-max-length': [2, 'always', 80],
'subject-case': [0],
'body-max-line-length': [0],
'footer-max-line-length': [0],
},
}
2 changes: 2 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ module.exports = {
root: true,
ignorePatterns: [
'tap-testdir*/',
'/node_modules/.bin/',
'/node_modules/.cache/',
'docs/**',
'smoke-tests/**',
'mock-globals/**',
Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
/node_modules/.gitignore text eol=lf
/workspaces/arborist/test/fixtures/.gitignore text eol=lf
/DEPENDENCIES.md text eol=lf
/DEPENDENCIES.json text eol=lf
/AUTHORS text eol=lf
/docs/lib/content/nav.yml text eol=lf

# fixture tarballs should be treated as binary
/workspaces/*/test/fixtures/**/*.tgz binary
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# This file is automatically added by @npmcli/template-oss. Do not edit.

* @npm/cli-team
* @npm/cli-team @npm/cli-triage
7 changes: 7 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ body:
options:
- label: I am using the latest npm
required: true
- type: checkboxes
attributes:
label: This is not just a request to bump a dependency for a CVE
description: npm bundles its dependencies and updates them on a regular cadence, so CVEs in our bundled dependencies are picked up automatically. Issues opened solely to request a dependency bump for a CVE will be closed. To report an actual vulnerability in npm, please follow our [security policy](https://github.com/npm/cli/blob/latest/SECURITY.md) instead.
options:
- label: This is not solely a request to bump a dependency for a CVE
required: true
- type: textarea
attributes:
label: Current Behavior
Expand Down
5 changes: 4 additions & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: 🔒 Dependency CVE / security advisory in a bundled dependency
url: https://github.com/npm/cli/blob/latest/SECURITY.md
about: npm bundles its dependencies and updates them regularly, so CVEs in our bundled dependencies are picked up automatically. Please don't open an issue just to request a dependency bump for a CVE. To report a vulnerability in npm, see our security policy.
- name: ❓ Help with issues in older versions of the CLI
url: https://github.community/c/software-development/47
about: Find/file tickets with the community
Expand All @@ -18,6 +21,6 @@ contact_links:
- name: 📫 Support
url: https://github.community/
about: For general support questions please open a topic over at github.community
- name: 🚑 Support Policy
- name: 🚑 Support Policy
url: https://github.com/npm/cli/wiki/Support-Policy
about: Information about what version(s) of the CLI we support
2 changes: 1 addition & 1 deletion .github/actions/create-check/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ runs:
with:
result-encoding: string
script: |
const { repo: { owner, repo}, runId, serverUrl } = context
const { repo: { owner, repo}, runId, serverUrl } = context
const { JOB_NAME, SHA } = process.env
const job = await github.rest.actions.listJobsForWorkflowRun({
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-latest-npm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ runs:
MATCH=$SPEC
echo "Found compatible version: npm@$MATCH"
break
fi
fi
done
if [ -z $MATCH ]; then
Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ on:
# "At 08:00 UTC (01:00 PT) on Monday" https://crontab.guru/#0_8_*_*_1
- cron: "0 8 * * 1"

permissions:
contents: read

jobs:
audit:
name: Audit Dependencies
Expand All @@ -18,17 +21,17 @@ jobs:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
id: node
with:
node-version: 22.x
check-latest: contains('22.x', '.x')
node-version: 26.x
check-latest: contains('26.x', '.x')
cache: npm
- name: Check Git Status
run: node scripts/git-dirty.js
Expand Down
97 changes: 97 additions & 0 deletions .github/workflows/backport.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Backport

on:
pull_request_target:
types: [closed, labeled]
# TODO: Remove before merging — manual trigger for testing from any branch
workflow_dispatch:
inputs:
pr_number:
description: 'Merged PR number to test backporting'
required: true
type: number

permissions:
actions: write
contents: write
pull-requests: write

jobs:
backport:
name: Backport
runs-on: ubuntu-latest
# Run when a labeled PR is merged, or when a backport label is added to an already-merged PR.
# Uses pull_request_target so the token has write access even for PRs from forks.
if: >-
github.repository_owner == 'npm' &&
github.event.pull_request.merged == true &&
(
(github.event.action == 'closed' &&
contains(join(github.event.pull_request.labels.*.name, ','), 'backport:'))
||
(github.event.action == 'labeled' &&
startsWith(github.event.label.name, 'backport:'))
)
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "npm CLI robot"
- name: Create Backports
uses: actions/github-script@v7
env:
MERGE_COMMIT_SHA: ${{ github.event.pull_request.merge_commit_sha }}
with:
script: |
const backport = require('./scripts/backport.js')
await backport({ github, context, core })
# TODO: Remove before merging — manual test job
backport-test:
name: Backport (Test)
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "npm CLI robot"
- name: Create Backports
uses: actions/github-script@v7
with:
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: ${{ inputs.pr_number }},
})
if (!pr.merged) {
return core.setFailed('PR #${{ inputs.pr_number }} is not merged')
}
process.env.MERGE_COMMIT_SHA = pr.merge_commit_sha
const backport = require('./scripts/backport.js')
await backport({
github,
core,
context: {
...context,
payload: { action: 'closed', pull_request: pr },
},
})
63 changes: 29 additions & 34 deletions .github/workflows/ci-libnpmaccess.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ on:
# "At 09:00 UTC (02:00 PT) on Monday" https://crontab.guru/#0_9_*_*_1
- cron: "0 9 * * 1"

permissions:
contents: read

jobs:
lint:
name: Lint
Expand All @@ -27,30 +30,26 @@ jobs:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
id: node
with:
node-version: 22.x
check-latest: contains('22.x', '.x')
node-version: 26.x
check-latest: contains('26.x', '.x')
cache: npm
- name: Install Latest npm
uses: ./.github/actions/install-latest-npm
with:
node: ${{ steps.node.outputs.node-version }}
- name: Check Git Status
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Lint
run: npm run lint --ignore-scripts -w libnpmaccess
run: npm run lint --ignore-scripts --workspace libnpmaccess
- name: Post Lint
run: npm run postlint --ignore-scripts -w libnpmaccess
run: npm run postlint --ignore-scripts --workspace libnpmaccess

test:
name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
Expand All @@ -66,60 +65,56 @@ jobs:
os: macos-latest
shell: bash
- name: macOS
os: macos-13
os: macos-15-intel
shell: bash
- name: Windows
os: windows-latest
shell: cmd
node-version:
- 16.14.0
- 16.x
- 18.0.0
- 18.x
- 20.x
- 22.22.2
- 22.x
- 24.15.0
- 24.x
- 26.0.0
- 26.x
exclude:
- platform: { name: macOS, os: macos-13, shell: bash }
node-version: 16.14.0
- platform: { name: macOS, os: macos-13, shell: bash }
node-version: 16.x
- platform: { name: macOS, os: macos-13, shell: bash }
node-version: 18.0.0
- platform: { name: macOS, os: macos-13, shell: bash }
node-version: 18.x
- platform: { name: macOS, os: macos-13, shell: bash }
node-version: 20.x
- platform: { name: macOS, os: macos-13, shell: bash }
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 22.22.2
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 22.x
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 24.15.0
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 24.x
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 26.0.0
- platform: { name: macOS, os: macos-15-intel, shell: bash }
node-version: 26.x
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
id: node
with:
node-version: ${{ matrix.node-version }}
check-latest: contains(matrix.node-version, '.x')
cache: npm
- name: Install Latest npm
uses: ./.github/actions/install-latest-npm
with:
node: ${{ steps.node.outputs.node-version }}
- name: Check Git Status
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- name: Test
run: npm test --ignore-scripts -w libnpmaccess
run: npm test --ignore-scripts --workspace libnpmaccess
- name: Check Git Status
run: node scripts/git-dirty.js
Loading