{"id":13447526,"url":"https://github.com/raineorshine/npm-check-updates","last_synced_at":"2026-06-06T02:06:47.833Z","repository":{"id":10480183,"uuid":"12658090","full_name":"raineorshine/npm-check-updates","owner":"raineorshine","description":"Find newer versions of package dependencies than what your package.json allows","archived":false,"fork":false,"pushed_at":"2026-05-09T22:28:32.000Z","size":8201,"stargazers_count":10226,"open_issues_count":104,"forks_count":360,"subscribers_count":59,"default_branch":"main","last_synced_at":"2026-05-11T18:06:24.802Z","etag":null,"topics":["npm","npm-check-updates"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raineorshine.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-09-07T01:36:03.000Z","updated_at":"2026-05-11T17:47:59.000Z","dependencies_parsed_at":"2023-01-17T00:01:27.175Z","dependency_job_id":"a19a8bd1-a3ae-4c5b-bfe6-3df4a0d88936","html_url":"https://github.com/raineorshine/npm-check-updates","commit_stats":{"total_commits":2196,"total_committers":145,"mean_commits":"15.144827586206896","dds":"0.48861566484517305","last_synced_commit":"b7c3106c9b1ba96608165f808dcd726ba76286bc"},"previous_names":["tjunnone/npm-check-updates"],"tags_count":518,"template":false,"template_full_name":null,"purl":"pkg:github/raineorshine/npm-check-updates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raineorshine%2Fnpm-check-updates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raineorshine%2Fnpm-check-updates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raineorshine%2Fnpm-check-updates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raineorshine%2Fnpm-check-updates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raineorshine","download_url":"https://codeload.github.com/raineorshine/npm-check-updates/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raineorshine%2Fnpm-check-updates/sbom","scorecard":{"id":759460,"data":{"date":"2025-08-11","repo":{"name":"github.com/raineorshine/npm-check-updates","commit":"5054297b8f3dae8be29603d52e248a13a273856c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.2,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 9/30 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"6 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:20","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test.yml:21","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/lint.yml:17","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:16","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/raineorshine/npm-check-updates/test.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating node:latest to node:latest@sha256:d2b6b5aedb5b729f68ee1129e0f5a5d4713d93f82448249e82241876d8e8d86e","Warn: npmCommand not pinned by hash: Dockerfile:3","Warn: npmCommand not pinned by hash: test/bun-install.sh:8","Warn: npmCommand not pinned by hash: test/e2e.sh:104","Warn: npmCommand not pinned by hash: test/e2e.sh:114","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   2 out of   6 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (10) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-7cfr-5cjf-32p4","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T22:53:09.575Z","repository_id":10480183,"created_at":"2025-08-22T22:53:09.575Z","updated_at":"2025-08-22T22:53:09.575Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32921624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"online","status_checked_at":"2026-05-12T02:00:06.338Z","response_time":102,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["npm","npm-check-updates"],"created_at":"2024-07-31T05:01:20.067Z","updated_at":"2026-05-12T03:07:23.962Z","avatar_url":"https://github.com/raineorshine.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","JavaScript","Development","Repository","npm","Uncategorized","awesome CLI 🔧","[Node.js](http://nodejs.org/) feature module and bundler","Command-line","Package Management","Dependency Automation"],"sub_categories":["Time Series","NPM","Uncategorized","开发者必备 🚀","CLI Audit Tools"],"readme":"# npm-check-updates\n\n[![npm version](https://img.shields.io/npm/v/npm-check-updates)](https://www.npmjs.com/package/npm-check-updates)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/raineorshine/npm-check-updates/test.yml?branch=main\u0026label=tests\u0026logo=github)](https://github.com/raineorshine/npm-check-updates/actions?query=workflow%3ATests+branch%3Amain)\n\n**npm-check-updates upgrades your package.json dependencies to the _latest_ versions, ignoring specified versions.**\n\n- maintains existing semantic versioning _policies_, i.e. `\"react\": \"^17.0.2\"` to `\"react\": \"^18.3.1\"`.\n- _only_ modifies package.json file. Run `npm install` to update your installed packages and package-lock.json.\n- sensible defaults, but highly customizable\n- compatible with npm, yarn, pnpm, deno, and bun\n- CLI and module usage\n- **Pure ESM** architecture with dual-build support (ESM/CJS)\n\n\u003e ## ⚠️ v21.0.0 Breaking Changes (ESM Migration)\n\u003e\n\u003e `npm-check-updates` is now a dual ESM/CJS module. If you use a `.ncurc.js` config or programmatic imports,\n\u003e please see the [ESM Migration Guide in the CHANGELOG](CHANGELOG.md#migration-guide) for required updates.\n\n\u003cimg width=\"500\" alt=\"example output\" src=\"https://github.com/user-attachments/assets/4808618b-ac20-4fc0-92e0-a777de70a2b6\"\u003e\n\n$${\\color{red}Red}$$ major upgrade (and all [major version zero](https://semver.org/#spec-item-4))\u003cbr/\u003e\n$${\\color{cyan}Cyan}$$ minor upgrade\u003cbr/\u003e\n$${\\color{green}Green}$$ patch upgrade\u003cbr/\u003e\n\n## Requirements\n\n- **Node.js:** `^20.19.0 || ^22.12.0 || \u003e=24.0.0`\n- **npm:** `\u003e=10.0.0`\n\n\u003e npm-check-updates v21+ requires modern Node.js and npm versions to support native ESM and Vite 8's Rolldown bundler.\n\n## Installation\n\nInstall globally to use `npm-check-updates` or the shorter `ncu`:\n\n```sh\nnpm install -g npm-check-updates\n```\n\nOr run with [npx](https://docs.npmjs.com/cli/v7/commands/npx) (only the long form is supported):\n\n```sh\nnpx npm-check-updates\n```\n\n## Usage\n\nCheck the latest versions of all project dependencies:\n\n```sh\n$ ncu\nChecking package.json\n[====================] 5/5 100%\n\n eslint             7.32.0  →    8.0.0\n prettier           ^2.7.1  →   ^3.0.0\n svelte            ^3.48.0  →  ^3.51.0\n typescript         \u003e3.0.0  →   \u003e4.0.0\n untildify          \u003c4.0.0  →   ^4.0.0\n webpack               4.x  →      5.x\n\nRun ncu -u to upgrade package.json\n```\n\nUpgrade a project's package file:\n\n\u003e **Make sure your package file is in version control and all changes have been committed. This _will_ overwrite your package file.**\n\n```sh\n$ ncu -u\nUpgrading package.json\n[====================] 1/1 100%\n\n express           4.12.x  →   4.13.x\n\nRun npm install to install new versions.\n\n$ npm install      # update installed packages and package-lock.json\n```\n\nCheck global packages:\n\n```sh\nncu -g\n```\n\n## Interactive Mode\n\nChoose which packages to update in interactive mode:\n\n```sh\nncu --interactive\nncu -i\n```\n\n![ncu --interactive](https://user-images.githubusercontent.com/750276/175337598-cdbb2c46-64f8-44f5-b54e-4ad74d7b52b4.png)\n\nCombine with `--format group` for a truly _luxe_ experience:\n\n![ncu --interactive --format group](https://user-images.githubusercontent.com/750276/175336533-539261e4-5cf1-458f-9fbb-a7be2b477ebb.png)\n\n### Keys\n\n- \u003ckbd\u003e↑\u003c/kbd\u003e\u003ckbd\u003e↓\u003c/kbd\u003e Select a package\n- \u003ckbd\u003eSpace\u003c/kbd\u003e Toggle selection\n- \u003ckbd\u003ea\u003c/kbd\u003e Toggle all\n- \u003ckbd\u003eEnter\u003c/kbd\u003e Upgrade\n\n## Filter packages\n\nFilter packages using the `--filter` option or adding additional cli arguments:\n\n```sh\n# upgrade only mocha\nncu mocha\nncu -f mocha\nncu --filter mocha\n\n# upgrade only chalk, mocha, and react\nncu chalk mocha react\nncu chalk, mocha, react\nncu -f \"chalk mocha react\"\n```\n\nFilter with wildcards or regex:\n\n```sh\n# upgrade packages that start with \"react-\"\nncu react-*\nncu \"/^react-.*$/\"\n```\n\nExclude specific packages with the `--reject` option or prefixing a filter with `!`. Supports strings, wildcards, globs, comma-or-space-delimited lists, and regex:\n\n```sh\n# upgrade everything except nodemon\nncu \\!nodemon\nncu -x nodemon\nncu --reject nodemon\n\n# upgrade packages that do not start with \"react-\".\nncu \\!react-*\nncu '/^(?!react-).*$/' # mac/linux\nncu \"/^(?!react-).*$/\" # windows\n```\n\nAdvanced filters: [filter](https://github.com/raineorshine/npm-check-updates#filter), [filterResults](https://github.com/raineorshine/npm-check-updates#filterresults), [filterVersion](https://github.com/raineorshine/npm-check-updates#filterversion)\n\n## How dependency updates are determined\n\n- Direct dependencies are updated to the latest stable version:\n  - `2.0.1` → `2.2.0`\n  - `1.2` → `1.3`\n  - `0.1.0` → `1.0.1`\n- Range operators are preserved and the version is updated:\n  - `^1.2.0` → `^2.0.0`\n  - `1.x` → `2.x`\n  - `\u003e0.2.0` → `\u003e0.3.0`\n- \"Less than\" is replaced with a wildcard:\n  - `\u003c2.0.0` → `^3.0.0`\n  - `1.0.0 \u003c 2.0.0` → `^3.0.0`\n- \"Any version\" is preserved:\n  - `*` → `*`\n- Prerelease versions are ignored by default.\n  - Use `--pre` to include prerelease versions (e.g. `alpha`, `beta`, `build1235`)\n- Choose what level to upgrade to:\n  - With `--target semver`, update according to your specified [semver](https://semver.org/) version ranges:\n    - `^1.1.0` → `^1.9.99`\n  - With `--target minor`, strictly update the patch and minor versions (including major version zero):\n    - `0.1.0` → `0.2.1`\n  - With `--target patch`, strictly update the patch version (including major version zero):\n    - `0.1.0` → `0.1.2`\n  - With `--target @next`, update to the version published on the `next` tag:\n    - `0.1.0` -\u003e `0.1.1-next.1`\n\n## Options\n\nOptions are merged with the following precedence:\n\n1. Command line options\n2. Local [Config File](#config-file) (current working directory)\n3. Project Config File (next to package.json)\n4. User Config File (`$HOME`)\n\nOptions that take no arguments can be negated by prefixing them with `--no-`, e.g. `--no-peer`.\n\n\u003c!-- BEGIN Options --\u003e\n\u003c!-- Do not edit this section by hand. It is auto-generated in build-options.ts. Run \"npm run build\" or \"npm run build:options\" to build. --\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--cache\u003c/td\u003e\n    \u003ctd\u003eCache versions to a local cache file. Default \u003ccode\u003e--cacheFile\u003c/code\u003e is ~/.ncu-cache.json and default \u003ccode\u003e--cacheExpiration\u003c/code\u003e is 10 minutes.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--cacheClear\u003c/td\u003e\n    \u003ctd\u003eClear the default cache, or the cache file specified by \u003ccode\u003e--cacheFile\u003c/code\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--cacheExpiration \u0026lt;min\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eCache expiration in minutes. Only works with \u003ccode\u003e--cache\u003c/code\u003e. (default: 10)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--cacheFile \u0026lt;path\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eFilepath for the cache file. Only works with \u003ccode\u003e--cache\u003c/code\u003e. (default: \"~/.ncu-cache.json\")\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--color\u003c/td\u003e\n    \u003ctd\u003eForce color in terminal.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--concurrency \u0026lt;n\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eMax number of concurrent HTTP requests to registry. (default: 8)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--configFileName \u0026lt;s\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eConfig file name. (default: .ncurc or .ncurc.{json,yaml,yml,js,mjs,cjs})\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--configFilePath \u0026lt;path\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eDirectory of .ncurc config file. (default: directory of \u003ccode\u003epackageFile\u003c/code\u003e)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#cooldown\"\u003e-c, --cooldown \u0026lt;period\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eSets a minimum age for package versions to be considered for upgrade. Accepts a number (days) or a string with a unit: \"7d\" (days), \"12h\" (hours), \"30m\" (minutes). Reduces the risk of installing newly published, potentially compromised packages.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--cwd \u0026lt;path\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eWorking directory in which npm will be executed.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--deep\u003c/td\u003e\n    \u003ctd\u003eRun recursively in current working directory. Alias of (\u003ccode\u003e--packageFile '**/package.json'\u003c/code\u003e).\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--dep \u0026lt;value\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eCheck one or more sections of dependencies only: dev, optional, peer, prod, or packageManager (comma-delimited). (default: [\"prod\",\"dev\",\"optional\",\"packageManager\"])\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--deprecated\u003c/td\u003e\n    \u003ctd\u003eInclude deprecated packages. Use \u003ccode\u003e--no-deprecated\u003c/code\u003e to exclude deprecated packages (20–25% slower). (default: true)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#doctor\"\u003e-d, --doctor\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eIteratively installs upgrades and runs tests to identify breaking upgrades. Requires \u003ccode\u003e-u\u003c/code\u003e to execute.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--doctorInstall \u0026lt;command\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eSpecifies the install script to use in doctor mode. (default: \u003ccode\u003enpm install\u003c/code\u003e or the equivalent for your package manager)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--doctorTest \u0026lt;command\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eSpecifies the test script to use in doctor mode. (default: \u003ccode\u003enpm test\u003c/code\u003e)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--enginesNode\u003c/td\u003e\n    \u003ctd\u003eInclude only packages that satisfy engines.node as specified in the package file.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-e, --errorLevel \u0026lt;n\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eSet the error level. 1: exits with error code 0 if no errors occur. 2: exits with error code 0 if no packages need updating (useful for continuous integration). (default: 1)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#filter\"\u003e-f, --filter \u0026lt;p\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eInclude only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#filterresults\"\u003efilterResults \u0026lt;fn\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eFilters results based on a user provided predicate function after fetching new versions.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#filterversion\"\u003e--filterVersion \u0026lt;p\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eFilter on package version using comma-or-space-delimited list, /regex/, or predicate function.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#format\"\u003e--format \u0026lt;value\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eModify the output formatting or show additional information. Specify one or more comma-delimited values: dep, group, ownerChanged, repo, time, lines, installedVersion. (default: [])\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-g, --global\u003c/td\u003e\n    \u003ctd\u003eCheck global packages instead of in the current project.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#groupfunction\"\u003egroupFunction \u0026lt;fn\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eCustomize how packages are divided into groups when using \u003ccode\u003e--format group\u003c/code\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#install\"\u003e--install \u0026lt;value\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eControl the auto-install behavior: always, never, prompt. (default: \"prompt\")\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-i, --interactive\u003c/td\u003e\n    \u003ctd\u003eEnable interactive prompts for each dependency; implies \u003ccode\u003e-u\u003c/code\u003e unless one of the json options are set.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-j, --jsonAll\u003c/td\u003e\n    \u003ctd\u003eOutput new package file instead of human-readable message.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--jsonDeps\u003c/td\u003e\n    \u003ctd\u003eLike \u003ccode\u003ejsonAll\u003c/code\u003e but only lists \u003ccode\u003edependencies\u003c/code\u003e, \u003ccode\u003edevDependencies\u003c/code\u003e, \u003ccode\u003eoptionalDependencies\u003c/code\u003e, etc of the new package data.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--jsonUpgraded\u003c/td\u003e\n    \u003ctd\u003eOutput upgraded dependencies in json.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-l, --loglevel \u0026lt;n\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eAmount to log: silent, error, minimal, warn, info, verbose, silly. (default: \"warn\")\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--mergeConfig\u003c/td\u003e\n    \u003ctd\u003eMerges nested configs with the root config file for \u003ccode\u003e--deep\u003c/code\u003e or \u003ccode\u003e--packageFile\u003c/code\u003e options. (default: false)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-m, --minimal\u003c/td\u003e\n    \u003ctd\u003eDo not upgrade newer versions that are already satisfied by the version range according to semver.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--packageData \u0026lt;value\u0026gt;\u003c/td\u003e\n    \u003ctd\u003ePackage file data (you can also use stdin).\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--packageFile \u0026lt;path|glob\u0026gt;\u003c/td\u003e\n    \u003ctd\u003ePackage file(s) location. (default: ./package.json)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#packagemanager\"\u003e-p, --packageManager \u0026lt;s\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003enpm, yarn, pnpm, deno, bun, staticRegistry (default: npm).\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#peer\"\u003e--peer\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eCheck peer dependencies of installed packages and filter updates to compatible versions.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--pre \u0026lt;n\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eInclude prerelease versions, e.g. -alpha.0, -beta.5, -rc.2. Automatically set to 1 when \u003ccode\u003e--target\u003c/code\u003e is newest or greatest, or when the current version is a prerelease. (default: 0)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--prefix \u0026lt;path\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eCurrent working directory of npm.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-r, --registry \u0026lt;uri\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eSpecify the registry to use when looking up package versions.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#registrytype\"\u003e--registryType \u0026lt;type\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eSpecify whether --registry refers to a full npm registry or a simple JSON file or url: npm, json. (default: npm)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#reject\"\u003e-x, --reject \u0026lt;p\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eExclude packages matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#rejectversion\"\u003e--rejectVersion \u0026lt;p\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eExclude package.json versions using comma-or-space-delimited list, /regex/, or predicate function.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--removeRange\u003c/td\u003e\n    \u003ctd\u003eRemove version ranges from the final package version.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--retry \u0026lt;n\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eNumber of times to retry failed requests for package info. (default: 3)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--root\u003c/td\u003e\n    \u003ctd\u003eRuns updates on the root project in addition to specified workspaces. Only allowed with \u003ccode\u003e--workspace\u003c/code\u003e or \u003ccode\u003e--workspaces\u003c/code\u003e. (default: true)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-s, --silent\u003c/td\u003e\n    \u003ctd\u003eDon't output anything. Alias for \u003ccode\u003e--loglevel\u003c/code\u003e silent.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--stdin\u003c/td\u003e\n    \u003ctd\u003eRead package.json from stdin.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"#target\"\u003e-t, --target \u0026lt;value\u0026gt;\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003eDetermines the version to upgrade to: latest, newest, greatest, minor, patch, semver, \u003ccode\u003e@[tag]\u003c/code\u003e, or [function]. (default: latest)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--timeout \u0026lt;ms\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eGlobal timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-u, --upgrade\u003c/td\u003e\n    \u003ctd\u003eOverwrite package file with upgraded versions instead of just outputting to console.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--verbose\u003c/td\u003e\n    \u003ctd\u003eLog additional information for debugging. Alias for \u003ccode\u003e--loglevel\u003c/code\u003e verbose.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e--workspace \u0026lt;s\u0026gt;\u003c/td\u003e\n    \u003ctd\u003eRun on one or more specified workspaces. Add \u003ccode\u003e--no-root\u003c/code\u003e to exclude the root project. (default: [])\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e-w, --workspaces\u003c/td\u003e\n    \u003ctd\u003eRun on all workspaces. Add \u003ccode\u003e--no-root\u003c/code\u003e to exclude the root project.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- END Options --\u003e\n\n## Advanced Options\n\nSome options have advanced usage, or allow per-package values by specifying a function in your .ncurc.js file.\n\nRun `ncu --help [OPTION]` to view advanced help for a specific option, or see below:\n\n\u003c!-- BEGIN Advanced Options --\u003e\n\u003c!-- Do not edit this section by hand. It is auto-generated in build-options.ts. Run \"npm run build\" or \"npm run build:options\" to build. --\u003e\n\n## cooldown\n\nUsage:\n\n    ncu --cooldown [period]\n    ncu -c [period]\n\nThe cooldown option helps protect against supply chain attacks by requiring package versions to be published at least the given amount of time before considering them for upgrade.\n\nThe value can be a plain number (days) or a string with a unit suffix:\n\n    --cooldown 7       7 days\n    --cooldown 7d      7 days (same as above)\n    --cooldown 12h     12 hours\n    --cooldown 30m     30 minutes\n\nWith the default `--target latest`, if the latest dist-tag version is within the cooldown window, ncu falls back to the greatest version that passes the cooldown threshold. To instead skip the package entirely (strict behaviour), use `--target \"@latest\"`.\n\nExample:\n\nLet's examine how cooldown works with a package that has these versions available:\n\n    1.0.0          Released 7 days ago    (initial version)\n    1.1.0          Released 6 days ago    (minor update)\n    1.1.1          Released 5 days ago    (patch update)\n    1.2.0          Released 5 days ago    (minor update)\n    2.0.0-beta.1   Released 5 days ago    (beta release)\n    1.2.1          Released 4 days ago    (patch update)\n    1.3.0          Released 4 days ago    (minor update) [latest]\n    2.0.0-beta.2   Released 3 days ago    (beta release)\n    2.0.0-beta.3   Released 2 days ago    (beta release) [beta]\n\nWith default target (latest):\n\n```js\n$ ncu --cooldown 5\n```\n\nFalls back to 1.2.0 because:\n\n- Latest version (1.3.0) is only 4 days old (within 5-day cooldown)\n- 1.2.0 is the greatest version that is at least 5 days old\n\nWith `@latest` strict target:\n\n```js\n$ ncu --cooldown 5 --target @latest\n```\n\nNo update will be suggested because:\n\n- Latest version (1.3.0) is only 4 days old\n- Cooldown requires versions to be at least 5 days old\n- `@latest` is strict: no fallback to older versions\n\nWith `@beta`/`@tag` target:\n\n```js\n$ ncu --cooldown 3 --target @beta\n```\n\nNo update will be suggested because:\n\n- Current beta (2.0.0-beta.3) is only 2 days old\n- Cooldown requires versions to be at least 3 days old\n- Use `--cooldown 2` or lower to allow this update\n\nWith other targets:\n\n```js\n$ ncu --cooldown 5 --target greatest|newest|minor|patch|semver\n```\n\nEach target will select the best version that is at least 5 days old:\n\n    greatest → 1.2.0        (highest version number outside cooldown)\n    newest   → 2.0.0-beta.1 (most recently published version outside cooldown)\n    minor    → 1.2.0        (highest minor version outside cooldown)\n    patch    → 1.1.1        (highest patch version outside cooldown)\n\nYou can also provide a custom function in your .ncurc.js file or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/** Set cooldown to 3 days but skip it for `@my-company` packages.\n  @param packageName     The name of the dependency.\n  @returns               Cooldown days restriction for given package.\n*/\ncooldown: packageName =\u003e (packageName.startsWith('@my-company') ? 0 : 3)\n```\n\n## doctor\n\nUsage:\n\n    ncu --doctor -u\n    ncu --no-doctor\n    ncu -du\n\nIteratively installs upgrades and runs your project's tests to identify breaking upgrades. Reverts broken upgrades and updates package.json with working upgrades.\n\nRequires `-u` to execute (modifies your package file, lock file, and node_modules)\n\nTo be more precise:\n\n1. Runs `npm install` and `npm test` to ensure tests are currently passing.\n2. Runs `ncu -u` to optimistically upgrade all dependencies.\n3. If tests pass, hurray!\n4. If tests fail, restores package file and lock file.\n5. For each dependency, install upgrade and run tests.\n6. Prints broken upgrades with test error.\n7. Saves working upgrades to package.json.\n\nAdditional options:\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003e--doctorInstall\u003c/td\u003e\u003ctd\u003especify a custom install script (default: `npm install` or `yarn`)\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e--doctorTest\u003c/td\u003e\u003ctd\u003especify a custom test script (default: `npm test`)\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\nExample:\n\n    $ ncu --doctor -u\n    Running tests before upgrading\n    npm install\n    npm run test\n    Upgrading all dependencies and re-running tests\n    ncu -u\n    npm install\n    npm run test\n    Tests failed\n    Identifying broken dependencies\n    npm install\n    npm install --no-save react@16.0.0\n    npm run test\n      ✓ react 15.0.0 → 16.0.0\n    npm install --no-save react-redux@7.0.0\n    npm run test\n      ✗ react-redux 6.0.0 → 7.0.0\n\n    /projects/myproject/test.js:13\n      throw new Error('Test failed!')\n      ^\n\n    npm install --no-save react-dnd@11.1.3\n    npm run test\n      ✓ react-dnd 10.0.0 → 11.1.3\n    Saving partially upgraded package.json\n\n## filter\n\nUsage:\n\n    ncu --filter [p]\n    ncu -f [p]\n\nInclude only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. Only included packages will be checked with `--peer`.\n\n`--filter` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_.\n\nYou can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/**\n  @param name     The name of the dependency.\n  @param semver   A parsed Semver array of the current version.\n    (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)\n  @returns        True if the package should be included, false if it should be excluded.\n*/\nfilter: (name, semver) =\u003e {\n  if (name.startsWith('@myorg/')) {\n    return false\n  }\n  return true\n}\n```\n\n## filterResults\n\nFilters results based on a user provided predicate function after fetching new versions.\n\n`filterResults` runs _after_ new versions are fetched, in contrast to `filter`, `reject`, `filterVersion`, and `rejectVersion`, which run _before_. This allows you to exclude upgrades with `filterResults` based on how the version has changed (e.g. a major version change).\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/** Exclude major version updates. Note this could also be achieved with --target semver.\n  @param {string} packageName               The name of the dependency.\n  @param {string} current                   Current version declaration (may be a range).\n  @param {SemVer[]} currentVersionSemver    Current version declaration in semantic versioning format (may be a range).\n  @param {string} upgraded                  Upgraded version.\n  @param {SemVer} upgradedVersionSemver     Upgraded version in semantic versioning format.\n  @returns {boolean}                        Return true if the upgrade should be kept; otherwise, it will be ignored.\n*/\nfilterResults: (packageName, { current, currentVersionSemver, upgraded, upgradedVersionSemver }) =\u003e {\n  const currentMajor = parseInt(currentVersionSemver[0]?.major, 10)\n  const upgradedMajor = parseInt(upgradedVersionSemver?.major, 10)\n  if (currentMajor \u0026\u0026 upgradedMajor) {\n    return currentMajor \u003e= upgradedMajor\n  }\n  return true\n}\n```\n\nFor the SemVer type definition, see: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring\n\n## filterVersion\n\nUsage:\n\n    ncu --filterVersion [p]\n\nInclude only versions matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.\n\n`--filterVersion` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_.\n\nYou can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the `filter` option function.\n\n```js\n/**\n  @param name     The name of the dependency.\n  @param semver   A parsed Semver array of the current version.\n    (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)\n  @returns        True if the package should be included, false if it should be excluded.\n*/\nfilterVersion: (name, semver) =\u003e {\n  if (name.startsWith('@myorg/') \u0026\u0026 parseInt(semver[0]?.major) \u003e 5) {\n    return false\n  }\n  return true\n}\n```\n\n## format\n\nUsage:\n\n    ncu --format [value]\n\nModify the output formatting or show additional information. Specify one or more comma-delimited values.\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003edep\u003c/td\u003e\u003ctd\u003ePrints the dependency type (dev, peer, optional) of each package.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003egroup\u003c/td\u003e\u003ctd\u003eGroups packages by major, minor, patch, and major version zero updates.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003ehomepage\u003c/td\u003e\u003ctd\u003eDisplays links to the package's homepage if specified in its package.json.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003einstalledVersion\u003c/td\u003e\u003ctd\u003ePrints the exact current version number instead of a range.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003elines\u003c/td\u003e\u003ctd\u003ePrints name@version on separate lines. Useful for piping to npm install.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eownerChanged\u003c/td\u003e\u003ctd\u003eShows if the package owner has changed.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003erepo\u003c/td\u003e\u003ctd\u003eInfers and displays links to the package's source code repository. Requires packages to be installed.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003ediff\u003c/td\u003e\u003ctd\u003eDisplay link to compare the changes between package versions.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003etime\u003c/td\u003e\u003ctd\u003eShows the publish time of each upgrade.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## groupFunction\n\nCustomize how packages are divided into groups when using `--format group`.\n\nOnly available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/**\n  @param name             The name of the dependency.\n  @param defaultGroup     The predefined group name which will be used by default.\n  @param currentSpec      The current version range in your package.json.\n  @param upgradedSpec     The upgraded version range that will be written to your package.json.\n  @param upgradedVersion  The upgraded version number returned by the registry.\n  @returns                A predefined group name ('major' | 'minor' | 'patch' | 'majorVersionZero' | 'none') or a custom string to create your own group.\n*/\ngroupFunction: (name, defaultGroup, currentSpec, upgradedSpec, upgradedVersion) =\u003e {\n  if (name === 'typescript' \u0026\u0026 defaultGroup === 'minor') {\n    return 'major'\n  }\n  if (name.startsWith('@myorg/')) {\n    return 'My Org'\n  }\n  return defaultGroup\n}\n```\n\n## install\n\nUsage:\n\n    ncu --install [value]\n\nDefault: prompt\n\nControl the auto-install behavior.\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003ealways\u003c/td\u003e\u003ctd\u003eRuns your package manager's install command automatically after upgrading.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003enever\u003c/td\u003e\u003ctd\u003eDoes not install and does not prompt.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eprompt\u003c/td\u003e\u003ctd\u003eShows a message after upgrading that recommends an install, but does not install. In interactive mode, prompts for install. (default)\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## packageManager\n\nUsage:\n\n    ncu --packageManager [s]\n    ncu -p [s]\n\nSpecifies the package manager to use when looking up versions.\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003enpm\u003c/td\u003e\u003ctd\u003eSystem-installed npm. Default.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eyarn\u003c/td\u003e\u003ctd\u003eSystem-installed yarn. Automatically used if yarn.lock is present.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003epnpm\u003c/td\u003e\u003ctd\u003eSystem-installed pnpm. Automatically used if pnpm-lock.yaml is present.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003ebun\u003c/td\u003e\u003ctd\u003eSystem-installed bun. Automatically used if bun.lock or bun.lockb is present.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## peer\n\nUsage:\n\n    ncu --peer\n    ncu --no-peer\n\nCheck peer dependencies of installed packages and filter updates to compatible versions.\n\nExample:\n\nThe following example demonstrates how `--peer` works, and how it uses peer dependencies from upgraded modules.\n\nThe package ncu-test-peer-update has two versions published:\n\n- 1.0.0 has peer dependency `\"ncu-test-return-version\": \"1.0.x\"`\n- 1.1.0 has peer dependency `\"ncu-test-return-version\": \"1.1.x\"`\n\nOur test app has the following dependencies:\n\n    \"ncu-test-peer-update\": \"1.0.0\",\n    \"ncu-test-return-version\": \"1.0.0\"\n\nThe latest versions of these packages are:\n\n    \"ncu-test-peer-update\": \"1.1.0\",\n    \"ncu-test-return-version\": \"2.0.0\"\n\nWith `--peer`:\n\nncu upgrades packages to the highest version that still adheres to the peer dependency constraints:\n\n    ncu-test-peer-update     1.0.0  →  1.1.0\n    ncu-test-return-version  1.0.0  →  1.1.0\n\nWithout `--peer`:\n\nAs a comparison: without using the `--peer` option, ncu will suggest the latest versions, ignoring peer dependencies:\n\n    ncu-test-peer-update     1.0.0  →  1.1.0\n    ncu-test-return-version  1.0.0  →  2.0.0\n\n## registryType\n\nUsage:\n\n    ncu --registryType [type]\n\nSpecify whether `--registry` refers to a full npm registry or a simple JSON file.\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003enpm\u003c/td\u003e\u003ctd\u003eDefault npm registry\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003ejson\u003c/td\u003e\u003ctd\u003eChecks versions from a file or url to a simple JSON registry. Must include the `--registry` option.\n\nExample:\n\n    // local file\n    $ ncu --registryType json --registry ./registry.json\n\n    // url\n    $ ncu --registryType json --registry https://api.mydomain/registry.json\n\n    // you can omit --registryType when the registry ends in .json\n    $ ncu --registry ./registry.json\n    $ ncu --registry https://api.mydomain/registry.json\n\nregistry.json:\n\n    {\n      \"prettier\": \"2.7.1\",\n      \"typescript\": \"4.7.4\"\n    }\n\n\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## reject\n\nUsage:\n\n    ncu --reject [p]\n    ncu -x [p]\n\nThe inverse of `--filter`. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. This will also exclude them from the `--peer` check.\n\n`--reject` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_.\n\nYou can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/**\n  @param name     The name of the dependency.\n  @param semver   A parsed Semver array of the current version.\n    (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)\n  @returns        True if the package should be excluded, false if it should be included.\n*/\nreject: (name, semver) =\u003e {\n  if (name.startsWith('@myorg/')) {\n    return true\n  }\n  return false\n}\n```\n\n## rejectVersion\n\nUsage:\n\n    ncu --rejectVersion [p]\n\nThe inverse of `--filterVersion`. Exclude versions matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.\n\n`--rejectVersion` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_.\n\nYou can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the reject option function.\n\n```js\n/**\n  @param name     The name of the dependency.\n  @param semver   A parsed Semver array of the current version.\n    (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)\n  @returns        True if the package should be excluded, false if it should be included.\n*/\nrejectVersion: (name, semver) =\u003e {\n  if (name.startsWith('@myorg/') \u0026\u0026 parseInt(semver[0]?.major) \u003e 5) {\n    return true\n  }\n  return false\n}\n```\n\n## target\n\nUsage:\n\n    ncu --target [value]\n    ncu -t [value]\n\nDetermines the version to upgrade to. (default: \"latest\")\n\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd\u003egreatest\u003c/td\u003e\u003ctd\u003eUpgrade to the highest version number published, regardless of release date or tag. Includes prereleases.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003elatest\u003c/td\u003e\u003ctd\u003eUpgrade to whatever the package's \"latest\" dist-tag points to. When used with --cooldown, falls back to the greatest version that passes the cooldown threshold if the latest is too recent. Use --target \"@latest\" for strict behaviour that skips the package instead. Excludes prereleases unless --pre is specified.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eminor\u003c/td\u003e\u003ctd\u003eUpgrade to the highest minor version without bumping the major version.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003enewest\u003c/td\u003e\u003ctd\u003eUpgrade to the version with the most recent publish date, even if there are other version numbers that are higher. Includes prereleases.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003epatch\u003c/td\u003e\u003ctd\u003eUpgrade to the highest patch version without bumping the minor or major versions.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003esemver\u003c/td\u003e\u003ctd\u003eUpgrade to the highest version within the semver range specified in your package.json.\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e@[tag]\u003c/td\u003e\u003ctd\u003eUpgrade to the version published to a specific tag, e.g. 'next' or 'beta'.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\ne.g.\n\n    ncu --target semver\n\nYou can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.\n\n\u003e :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.\n\n```js\n/** Upgrade major version zero to the next minor version, and everything else to latest.\n  @param name     The name of the dependency.\n  @param semver   A parsed Semver object of the upgraded version.\n    (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)\n  @returns        One of the valid target values (specified in the table above).\n*/\ntarget: (name, semver) =\u003e {\n  if (parseInt(semver[0]?.major) === '0') return 'minor'\n  return 'latest'\n}\n```\n\n\u003c!-- END Advanced Options --\u003e\n\n## Config File\n\nAdd a `.ncurc` or `.ncurc.{json,yaml,yml,js,mjs,cjs}` file to your project directory to specify configuration information.\n\n`.ncurc` without an extension can be in **JSON or YAML** format. For example:\n\n**.ncurc:**\n\n```yaml\nupgrade: true\nfilter: svelte\nreject:\n  - '@types/estree'\n  - ts-node\n```\n\n**.ncurc.json:**\n\n```json\n{\n  \"upgrade\": true,\n  \"filter\": \"svelte\",\n  \"reject\": [\"@types/estree\", \"ts-node\"]\n}\n```\n\nOptions are merged with the following precedence:\n\n1. Command line options\n2. Local Config File (current working directory)\n3. Project Config File (next to package.json)\n4. User Config File (`$HOME`)\n\nYou can also specify a custom config file name or path using the `--configFileName` or `--configFilePath` command line options.\n\n### Config Functions\n\nSome options offer more advanced configuration using a function definition. These include [filter](https://github.com/raineorshine/npm-check-updates#filter), [filterVersion](https://github.com/raineorshine/npm-check-updates#filterversion), [filterResults](https://github.com/raineorshine/npm-check-updates#filterresults), [reject](https://github.com/raineorshine/npm-check-updates#reject), [rejectVersion](https://github.com/raineorshine/npm-check-updates#rejectversion), and [groupFunction](https://github.com/raineorshine/npm-check-updates#groupfunction). To define these, use a JavaScript-based configuration file.\n\n#### ESM (Recommended)\n\nRename your config to `.ncurc.js` (if using `\"type\": \"module\"`) or `.ncurc.mjs`.\n\n```js\nimport { defineConfig } from 'npm-check-updates'\n\nexport default defineConfig({\n  upgrade: true,\n  filter: name =\u003e name.startsWith('@myorg/'),\n})\n```\n\n#### CommonJS\n\nUse the `.ncurc.cjs` extension or a standard `.ncurc.js` file (if useing `\"type\": \"commonjs\"`).\n\n```js\nconst { defineConfig } = require('npm-check-updates')\n\nmodule.exports = defineConfig({\n  upgrade: true,\n  filter: name =\u003e name.startsWith('@myorg/'),\n})\n```\n\nAlternatively, if you prefer not to use the helper, you can use JSDoc for IntelliSense:\n\n#### ESM (JSDoc)\n\n```js\n/** @type {import('npm-check-updates').RcOptions} */\nexport default {\n  upgrade: true,\n  filter: name =\u003e name.startsWith('@myorg/'),\n}\n```\n\n#### CommonJS (JSDoc)\n\n```js\n/** @type {import('npm-check-updates').RcOptions} */\nmodule.exports = {\n  upgrade: true,\n  filter: name =\u003e name.startsWith('@myorg/'),\n}\n```\n\n### JSON Schema\n\nIf you write `.ncurc` config files using json or yaml, you can add the JSON Schema to your IDE settings for completions.\n\ne.g. for VS Code:\n\n```json\n  \"json.schemas\": [\n    {\n      \"fileMatch\": [\n        \".ncurc\",\n        \".ncurc.json\",\n      ],\n      \"url\": \"https://raw.githubusercontent.com/raineorshine/npm-check-updates/main/src/types/RunOptions.json\"\n    }\n  ],\n  \"yaml.schemas\": {\n    \"https://raw.githubusercontent.com/raineorshine/npm-check-updates/main/src/types/RunOptions.json\": [\n        \".ncurc.yml\",\n    ]\n  },\n```\n\n## Module/Programmatic Usage\n\n`npm-check-updates` can be imported as a module in both ESM and CommonJS environments.\n\n### ESM (Recommended)\n\nUse this for modern projects using `\"type\": \"module\"` in `package.json` or `.mjs` files.\n\n```js\nimport * as ncu from 'npm-check-updates'\n\nconst upgraded = await ncu.run({\n  // Pass any cli option\n  packageFile: '../package.json',\n  upgrade: true,\n  // Defaults:\n  // jsonUpgraded: true,\n  // silent: true,\n})\n\nconsole.log(upgraded) // { \"mypackage\": \"^2.0.0\", ... }\n```\n\n### CommonJS\n\nUse this for legacy projects using `\"type\": \"commonjs\"` or scripts using the `.cjs` extension.\n\n```js\nconst ncu = require('npm-check-updates')\n\n// Since ncu.run() is an async function\nncu\n  .run({\n    packageFile: './package.json',\n    upgrade: true,\n  })\n  .then(upgraded =\u003e {\n    console.log(upgraded)\n  })\n```\n\n## Contributing\n\nContributions are happily accepted. I respond to all PR's and can offer guidance on where to make changes. For contributing tips see [CONTRIBUTING.md](https://github.com/raineorshine/npm-check-updates/blob/main/.github/CONTRIBUTING.md).\n\n## Problems?\n\n[File an issue](https://github.com/raineorshine/npm-check-updates/issues). Please [search existing issues](https://github.com/raineorshine/npm-check-updates/issues?utf8=%E2%9C%93\u0026q=is%3Aissue) first.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraineorshine%2Fnpm-check-updates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraineorshine%2Fnpm-check-updates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraineorshine%2Fnpm-check-updates/lists"}