npm-check-updates

Developer ToolsApache-2.0

npm-check-updates release notes.

Latest v23.1.0 · by npm-check-updatesWritten in TypeScriptWebsiteraineorshine/npm-check-updatesRSS

Release activity

Release activity — 12 releases across 9 days since Jun 3, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jun 3, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 20261 release on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 20261 release on Jul 26, 20261 release on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 20261 release on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
Wednesday1 release on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 20261 release on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
Saturday3 releases on Jun 6, 2026No releases on Jun 13, 20262 releases on Jun 20, 20261 release on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

12 releases since Jun 3, 2026, busiest day 3

Changelog

What changed from 22 to 23

v23.1.0

Latest
Added 1
  • Add --interactiveSelect option to control which upgrades are pre-selected in interactive mode, with values: auto (default), none, patch, minor, or all
Changed 6
  • Strip terminal escape sequences from package and registry text
  • Select the pnpm global config by the installed major version
  • Read registries from pnpm-workspace.yaml
  • Run getOwnerPerDependency at --concurrency
  • Pass color through to the package manager spawn in doctor command
  • Apply boolean false from the rc config as --no-<option>
Fixed 10
  • Do not let rejectOnError:false swallow spawn errors
  • Warn when peer dependency lookups fail instead of silently disabling --peer
  • Reject invalid values in array options
  • Fix operator precedence in the invalid filter message
  • Replace the github url version tag only in the fragment
  • Fix pnpm global and prefix args being spread into single characters

From npm-check-updates

Added new option: --interactiveSelect

Usage:

ncu -i --interactiveSelect [value]

Default: auto

Control which upgrades are pre-selected in interactive mode. Only applies with --interactive.

Specify auto explicitly to restore the default when another value is set in your config file.

Major version zero upgrades (e.g. 0.1.0 → 0.2.0) are only pre-selected by all, since anything may change before 1.0.0. Custom groups returned by --groupFunction are likewise only pre-selected by all.

Other Changes
New Contributors

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v23.0.2...v23.1.0

View originalPermalink
How v23.1.0 went

v23.0.2

Changed 5
  • Lazily construct the RelativeTimeFormat to avoid eager ICU init on startup
  • doctor: respect --no-color and NO_COLOR when spawning the package manager
  • Shorten long build metadata in the upgrades table
  • Keep the resolved version when the peer recursion requeries
  • Select pnpm global minimumReleaseAge config by installed major version
Fixed 7
  • Handle unexpected pnpm ls -g output
  • Fix Wildcard case
  • Report npm's stderr and the real command when npm ls outputs no JSON
  • Bound the yarn info line regex and skip non-matching lines
  • Resolve npm dist-tags
  • Fix unreachable error classification in queryVersions
  • Handle the peerDependencies array that npm 12 outputs

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v23.0.1...v23.0.2

View originalPermalink
How v23.0.2 went

v23.0.1

Changed 4
  • Replace timeago.js with the native Intl.RelativeTimeFormat
  • Replace libnpmconfig and figgy-pudding with an in-house npm config loader
  • Update dependencies
  • Pin Docker base image by digest

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v23.0.0...v23.0.1

View originalPermalink
How v23.0.1 went

v23.0.0

Added 1
  • Native TypeScript loading support
Changed 5
  • Minimum supported Node.js version is now 22; supported versions are ^22.22.2 || ^24.15.0 || >=26.0.0 (and npm >=10)
  • Default export is now callable directly as ncu()
  • Output is now grouped by default; use --format no-group to get flat output
  • --target semver now respects explicit upper bounds in version ranges
  • npm-registry-fetch is now lazy-loaded for faster startup
Fixed 7
  • Scoped package 404s with encoded @ character
  • --doctor and --errorLevel 2 crash
  • Registry settings ignored by --enginesNode and --ownerChanged
  • YAML catalog preservation
  • Abort packument stream once required fields are parsed for better performance
  • CLI options being overridden by .ncurc in --deep mode
  • Upgrade a package in all selected sections when versions differ
Removed 2
  • CommonJS build dropped; package is now pure ESM only
  • filterVersion and rejectVersion options no longer accept predicate functions; use filter or reject instead

From npm-check-updates

⚠️ Breaking changes & migration

1. Node.js 22+ required (#1844) The minimum supported Node.js is now 22. Supported versions: ^22.22.2 || ^24.15.0 || >=26.0.0 (and npm >=10).

  • Migration: Upgrade Node before installing. On older Node, stay on v22.x.

2. Pure ESM package — CJS build dropped, default export is now callable (#1916, #1894) The package is now pure ESM (no more CommonJS build), and the default export is now callable directly. ncu.run() and ncu.defineConfig() still work as namespaced properties.

  • Migration (ESM):
    // before
    import * as ncu from 'npm-check-updates'
    const upgraded = await ncu.run({ /* ... */ })
    // after
    import ncu from 'npm-check-updates'
    const upgraded = await ncu({ /* ... */ }) // ncu.run({...}) also still works
    
  • Migration (CommonJS): Still usable via Node's native require() of ESM (Node 22+), but the import shape changed:
    // before
    const ncu = require('npm-check-updates')
    // after
    const { default: ncu } = require('npm-check-updates')
    ncu({ /* ... */ }).then(upgraded => console.log(upgraded))
    

3. filterVersion / rejectVersion no longer accept a predicate function. Use filter / reject instead. (#1933) These options now accept only a string, wildcard, glob, comma/space-delimited list, or /regex/. (CLI usage is unchanged — the CLI never supported functions.)

  • Migration: If you passed a function to filterVersion/rejectVersion in .ncurc.js or via the module API, move it to filter / reject instead. Those receive the package name and the parsed current version, so they can match on both:
    // before
    filterVersion: (name, semver) => !(name.startsWith('@myorg/') && +semver[0].major > 5)
    // after
    filter:        (name, semver) => !(name.startsWith('@myorg/') && +semver[0].major > 5)
    

4. Output is now grouped by default (#1937) --format now defaults to ["group"], so upgrades are grouped by major / minor / patch out of the box. This is a better default for most users.

  • Migration: To get the old flat output, use:
    ncu --format no-group
    
    The new no- prefix removes a value from the default list instead of replacing the whole list, so --format no-group,time disables grouping while adding publish times.

5. --target semver now respects explicit upper bounds (#1920) An explicit upper bound in a range is now preserved and never exceeded, e.g. ^9.5.0 <10^9.7.0 <10 (previously the bound could be overrun). This can change which versions are selected for ranges with explicit upper bounds.

✨ Other improvements
  • Native TypeScript loading (#1888), lazy-loaded npm-registry-fetch for faster startup (#1898), and reduced dependencies for a lighter install.
  • Numerous bug fixes: scoped-package 404s with encoded @ (#1923), --doctor + --errorLevel 2 crash (#1900), registry settings ignored by --enginesNode/--ownerChanged (#1925), and YAML catalog preservation (#1922), abort packument stream once required fields are parsed (#1901) for better performance, fix cli options being overridden by .ncurc in --deep mode (#1902), and upgrade a package in all selected sections when versions differ.

Full changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.9...v23.0.0

View originalPermalink
How v23.0.0 went

v22.2.9

Changed 4
  • Replace zod with valibot to reduce bundle size
  • Use async glob instead of glob.sync in getAllPackages
  • Switch mocha tests to parallel
  • Replace markdownlint-cli with markdownlint-cli2

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.8...v22.2.9

View originalPermalink
How v22.2.9 went

v22.2.8

Changed 4
  • Downgrade ts-json-schema-generator to v2.4.0 for Node.js 20 support
  • Bump ESLint to es2023 globals
  • Enable verbatimModuleSyntax in tsconfig
  • Update interactive hint for q button
Fixed 3
  • Skip cache write when cooldown is active
  • Fix verbose log printing local yarn config under user yarn config header
  • Scope auto-cooldown config to active package manager only
Removed 3
  • Remove unused libnpmconfig.d.ts
  • Remove redundant tests from package.json files
  • Remove duplicate typecheck script from package.json

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.7...v22.2.8

View originalPermalink
How v22.2.8 went

v22.2.7

Changed 4
  • Escape package name and reuse escapeRegExp
  • Remove redundant awaits and enable @typescript-eslint/await-thenable
  • Performance improvements
  • Move configs out of package.json
Fixed 2
  • Fix CodeQL issues
  • Downgrade ini from 7.0.0 to 6.0.0 to restore Node 20 support
Removed 1
  • Stop exporting the externally unused getOwnerPerDependency

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.6...v22.2.7

View originalPermalink
How v22.2.7 went

v22.2.6

Added 1
  • Respect min-release-age-exclude with min-release-age npm config
Changed 7
  • Replace the unmaintained npm-run-all with npm-run-all2
  • Replace rfdc with native structuredClone
  • Replace js-yaml with yaml
  • Replace dequal with node:util isDeepStrictEqual
  • Replace cosmiconfig with lilconfig
  • Convert inline code backticks to <code> in generated HTML tables
  • Use oxc for minify in Vite
Fixed 7
  • Do not call semver.minVersion on non-semver package protocols
  • Quote global package specs with a period in the scope for PowerShell compatibility
  • Fix padLeft adding trailing spaces to blank lines
  • Replace async reduce with for-of loop in --deep to avoid OOM
  • Fix MaxListenersExceededWarning when calling run() repeatedly
  • Resolve workspace paths relative to --packageFile dir, not cwd
  • Inline semver-utils types in the d.ts rollup
Removed 3
  • Remove lodash-es
  • Remove unused dev dependencies
  • Drop rimraf in favor of Vite emptyOutDir

From npm-check-updates

What's Changed
New Contributors

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.5...v22.2.6

View originalPermalink
How v22.2.6 went

v22.2.5

Changed 1
  • Only show missing time when time or cooldown format is requested
Fixed 1
  • Make deep tests path-agnostic with regex patterns

From npm-check-updates

e951cf45 Bump minor and patch. 0f9f53d8 prettier edf42129 Make deep tests path-agnostic with regex patterns b8201313 Only show missing time when time or cooldown format is requested

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.3...v22.2.5

View originalPermalink
How v22.2.5 went

v22.2.3

Changed 1
  • Fall back to pnpm global config for minimumReleaseAge cooldown
Fixed 1
  • Handle registries missing 'time' metadata during version resolution

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.2...v22.2.3

View originalPermalink
How v22.2.3 went

v22.2.2

Changed 1
  • Switch from vite-plugin-dts to unplugin-dts
Fixed 1
  • Parse Yarn duration string format for npmMinimalAgeGate

From npm-check-updates

What's Changed

Full Changelog: https://github.com/raineorshine/npm-check-updates/compare/v22.2.1...v22.2.2

View originalPermalink
How v22.2.2 went
View all

Discussion

If you publish npm-check-updates, you can claim this product by proving you administer its repository.