Import Upstream version 9.2.0~ds1

This commit is contained in:
luoyaoming 2024-05-07 14:59:55 +08:00
parent f746ed5b5f
commit ba53e49845
1106 changed files with 69223 additions and 100402 deletions

10
.commitlintrc.js Normal file
View File

@ -0,0 +1,10 @@
/* This file is automatically added by @npmcli/template-oss. Do not edit. */
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'deps', 'chore']],
'header-max-length': [2, 'always', 80],
'subject-case': [0, 'always', ['lower-case', 'sentence-case', 'start-case']],
},
}

23
.eslintrc.js Normal file
View File

@ -0,0 +1,23 @@
/* This file is automatically added by @npmcli/template-oss. Do not edit. */
'use strict'
const { readdirSync: readdir } = require('fs')
const localConfigs = readdir(__dirname)
.filter((file) => file.startsWith('.eslintrc.local.'))
.map((file) => `./${file}`)
module.exports = {
root: true,
ignorePatterns: [
'docs/**',
'smoke-tests/**',
'mock-registry/**',
'workspaces/**',
],
extends: [
'@npmcli',
...localConfigs,
],
}

View File

@ -1,15 +0,0 @@
{
"extends": ["@npmcli"],
"overrides": [{
"files": "test/**",
"rules": {
"no-extend-native": "off",
"no-global-assign": "off"
}
}, {
"files": ["lib/**"],
"rules": {
"no-console": "warn"
}
}]
}

14
.eslintrc.local.json Normal file
View File

@ -0,0 +1,14 @@
{
"rules": {
"no-shadow": "off",
"no-console": "error"
},
"overrides": [{
"files": [
"test/**"
],
"rules": {
"no-console": "off"
}
}]
}

2
.gitattributes vendored
View File

@ -1,2 +0,0 @@
/node_modules/** linguist-generated=false
/package-lock.json linguist-generated=false

1
.github/CODEOWNERS vendored
View File

@ -1 +0,0 @@
* @npm/cli-team

View File

@ -1,63 +0,0 @@
name: 🐞 Bug v8
description: File a bug/issue against v8.x
title: "[BUG] <title>"
labels: [Bug, Needs Triage, Release 8.x]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please [search here](https://github.com/npm/cli/issues) to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues
required: true
- type: checkboxes
attributes:
label: This issue exists in the latest npm version
description: Please make sure you have installed the latest npm and verified it is still an issue.
options:
- label: I am using the latest npm
required: true
- type: textarea
attributes:
label: Current Behavior
description: A clear & concise description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Expected Behavior
description: A clear & concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
value: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **`npm -v`**: **npm**: 7.6.3
- **`node -v`**: **Node.js**: 13.14.0
- **OS Name**: Ubuntu 20.04
- **System Model Name**: Macbook Pro
- **`npm config ls`**: `; "user" config from ...`
value: |
- npm:
- Node.js:
- OS Name:
- System Model Name:
- npm config:
```ini
; copy and paste output from `npm config ls` here
```
validations:
required: false

View File

@ -1,23 +0,0 @@
blank_issues_enabled: true
contact_links:
- 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
- name: ⭐️ Feature Request
url: https://github.com/npm/feedback
about: Add your request or discuss the project w/ the community
- name: 📃 RFC
url: https://github.com/npm/rfcs
about: Create a more formal proposal/idea via our RFC
- name: 🚥 Registry Status
url: https://status.npmjs.org
about: Check the current status of the website/registry
- name: 🗂 Documentation
url: https://docs.npmjs.com
about: Preview our new docs
- name: 📫 Support
url: https://github.community/
about: For general support questions please open a topic over at github.community
- name: 🚑 Support Policy
url: https://github.com/npm/cli/wiki/Support-Policy
about: Information about what version(s) of the CLI we support

View File

@ -1,37 +0,0 @@
name: 📄 CLI Docs Enhancement
description: File a potential enhancement for the npm documentation
title: "[DOCS] <title>"
labels: [Documentation, Needs Triage]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please [search here](https://github.com/npm/cli/issues) to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues
required: true
- type: checkboxes
attributes:
label: This is a CLI Docs Enhancement, not another kind of Docs Enhancement.
description: These issue templates are only for CLI documentation enhancements. If you are looking to submit another kind of documentation enhancement, please submit it to the [documentation](https://github.com/npm/documentation) repo.
options:
- label: This is a CLI Docs Enhancement.
required: true
- type: textarea
attributes:
label: Description of Problem
description: A clear & concise description of the current state of the docs.
validations:
required: true
- type: textarea
attributes:
label: Potential Solution
description: A clear & concise description of the potential enhancement, if there is one.
validations:
required: false
- type: input
attributes:
label: Docs URL
description: Please provide the URL of the page you'd like to see an enhancement to.
validations:
required: false

View File

@ -1,37 +0,0 @@
name: 📄 CLI Docs Problem
description: File a problem with the npm documentation
title: "[DOCS] <title>"
labels: [Documentation, Needs Triage]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please [search here](https://github.com/npm/cli/issues) to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues
required: true
- type: checkboxes
attributes:
label: This is a CLI Docs Problem, not another kind of Docs Problem.
description: These issue templates are only for CLI documentation problems. If you are looking to submit another kind of documentation problem, please submit it to the [documentation](https://github.com/npm/documentation) repo.
options:
- label: This is a CLI Docs Problem.
required: true
- type: textarea
attributes:
label: Description of Problem
description: A clear & concise description of what is wrong with the docs.
validations:
required: true
- type: textarea
attributes:
label: Potential Solution
description: A clear & concise description of a potential solution or fix to the problem, if there is one.
validations:
required: false
- type: input
attributes:
label: Affected URL
description: Please provide the affected URL.
validations:
required: false

View File

@ -1,87 +0,0 @@
---
name: Benchmark CLI - Comment
on:
issue_comment:
types: [created, edited]
jobs:
comment-handler:
name: Trigger Benchmarks
runs-on: ubuntu-latest
steps:
- name: Handle Incoming Comment
env:
DISPATCH_REPO: "benchmarks"
DISPATCH_OWNER: "npm"
EVENT_NAME: ${{ github.event_name }}
OWNER: ${{ github.event.repository.owner.login }}
REPO: ${{ github.event.repository.name }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
COMMENT_NODE_ID: ${{ github.event.comment.node_id }}
COMMENT_ACTIONABLE: ${{ startsWith(github.event.comment.body, 'test this please ✅') }}
AUTH_TOKEN: ${{ secrets.NPM_BENCHMARKS_TOKEN }}
run: |
# Comment Handler
# Creates an exit early condition if there are errors
# Exit early if `jq` is not present
set -e
jq --version
# Figure out if comment came from pull-request or issue
IS_PR=$(curl -s https://api.github.com/repos/${OWNER}/${REPO}/issues/${ISSUE_NUMBER} | jq -cr '.pull_request.url')
if [ "${IS_PR}" != "null" ]; then
echo "Comment from pull/${ISSUE_NUMBER}."
# It is a pull-request; check comment body for correct phrase
if [ "${COMMENT_ACTIONABLE}" == "true" ]; then
# Fetch pull-request information
PR_DATA=$(curl -s "${IS_PR}")
PR_OWNER=$(echo "${PR_DATA}" | jq '.head.repo.owner.login')
PR_REPO=$(echo "${PR_DATA}" | jq '.head.repo.name')
# dispatch request for benchmarks
echo "Dispatching request..."
curl \
-s \
-X POST https://api.github.com/repos/${DISPATCH_OWNER}/${DISPATCH_REPO}/dispatches \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token ${AUTH_TOKEN}" \
-d \
'
{
"event_type": "'"${EVENT_NAME} ${PR_OWNER}/${PR_REPO}#${ISSUE_NUMBER}"'",
"client_payload": {
"pr_id": "'"${ISSUE_NUMBER}"'",
"repo": "'"${PR_REPO}"'",
"owner": "'"${PR_OWNER}"'"
}
}'
# Create reaction on comment to confirm dispatch was sent
curl \
-s \
-X POST https://api.github.com/graphql \
-H "Content-Type: application/json" \
-H "Authorization: token ${AUTH_TOKEN}" \
-d \
'
{
"query": "mutation($inputData:AddReactionInput!) { addReaction(input:$inputData) { reaction { content } } }",
"variables": {
"inputData": {
"subjectId": "'"${COMMENT_NODE_ID}"'",
"content": "ROCKET"
}
}
}'
else
echo "Comment not actionable."
fi
else
echo "Comment not from pull-request."
fi

View File

@ -1,52 +0,0 @@
---
name: Benchmark Suite
on:
pull_request:
branches:
- "**"
jobs:
build:
name: Trigger Benchmarks
runs-on: ubuntu-latest
steps:
- name: Handle Incoming Pull-Request
env:
DISPATCH_REPO: "benchmarks"
DISPATCH_OWNER: "npm"
EVENT_NAME: ${{ github.event_name }}
REPO: ${{ github.event.repository.name }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_OWNER: ${{ github.event.pull_request.head.repo.owner.login }}
AUTH_TOKEN: ${{ secrets.NPM_BENCHMARKS_TOKEN }}
run: |
# Dispatch Handler
dispatch_request () {
echo "Dispatching request..."
curl \
-s \
-X POST https://api.github.com/repos/${DISPATCH_OWNER}/${DISPATCH_REPO}/dispatches \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token ${AUTH_TOKEN}" \
-d \
'
{
"event_type": "'"${EVENT_NAME} ${PR_OWNER}/${REPO}#${PR_NUMBER}"'",
"client_payload": {
"pr_id": "'"${PR_NUMBER}"'",
"repo": "'"${REPO}"'",
"owner": "'"${PR_OWNER}"'"
}
}'
}
if [ "${AUTH_TOKEN}" != "" ]; then
# Dispatch request for benchmarks
dispatch_request
else
echo "NO AUTH - FORK PULL REQUEST"
fi

View File

@ -1,52 +0,0 @@
name: Node CI docs
on:
pull_request:
paths:
- docs/**
branches:
- '*'
push:
paths:
- docs/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run lint -w docs
env:
DEPLOY_VERSION: testing
check_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
- name: Rebuild the docs
run: make freshdocs
- name: Git should not be dirty
run: node scripts/git-dirty.js

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmaccess
on:
pull_request:
paths:
- workspaces/libnpmaccess/**
branches:
- '*'
push:
paths:
- workspaces/libnpmaccess/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmaccess
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmaccess --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmdiff
on:
pull_request:
paths:
- workspaces/libnpmdiff/**
branches:
- '*'
push:
paths:
- workspaces/libnpmdiff/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmdiff
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmdiff --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmexec
on:
pull_request:
paths:
- workspaces/libnpmexec/**
branches:
- '*'
push:
paths:
- workspaces/libnpmexec/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmexec
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmexec --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmfund
on:
pull_request:
paths:
- workspaces/libnpmfund/**
branches:
- '*'
push:
paths:
- workspaces/libnpmfund/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmfund
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmfund --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmhook
on:
pull_request:
paths:
- workspaces/libnpmhook/**
branches:
- '*'
push:
paths:
- workspaces/libnpmhook/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmhook
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmhook --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmorg
on:
pull_request:
paths:
- workspaces/libnpmorg/**
branches:
- '*'
push:
paths:
- workspaces/libnpmorg/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmorg
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmorg --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmpack
on:
pull_request:
paths:
- workspaces/libnpmpack/**
branches:
- '*'
push:
paths:
- workspaces/libnpmpack/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmpack
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmpack --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmpublish
on:
pull_request:
paths:
- workspaces/libnpmpublish/**
branches:
- '*'
push:
paths:
- workspaces/libnpmpublish/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmpublish
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmpublish --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmsearch
on:
pull_request:
paths:
- workspaces/libnpmsearch/**
branches:
- '*'
push:
paths:
- workspaces/libnpmsearch/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmsearch
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmsearch --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmteam
on:
pull_request:
paths:
- workspaces/libnpmteam/**
branches:
- '*'
push:
paths:
- workspaces/libnpmteam/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmteam
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmteam --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI libnpmversion
on:
pull_request:
paths:
- workspaces/libnpmversion/**
branches:
- '*'
push:
paths:
- workspaces/libnpmversion/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/libnpmversion
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/libnpmversion --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,76 +0,0 @@
name: Node Workspace CI @npmcli/arborist
on:
pull_request:
paths:
- workspaces/arborist/**
branches:
- '*'
push:
paths:
- workspaces/arborist/**
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest -w workspaces/arborist
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
run: node ./bin/npm-cli.js run -w workspaces/arborist --ignore-scripts test -- -t600 -Rbase -c

View File

@ -1,166 +0,0 @@
name: Node CI
on:
pull_request:
branches:
- '*'
push:
branches:
- release-next
- latest
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Run linting
run: node ./bin/npm-cli.js run posttest
env:
DEPLOY_VERSION: testing
check_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
- name: Rebuild the docs
run: make freshdocs
- name: Git should not be dirty
run: node scripts/git-dirty.js
licenses:
runs-on: ubuntu-latest
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
- name: Validate licenses
run: node ./bin/npm-cli.js run licenses
smoke-tests:
strategy:
fail-fast: false
matrix:
node-version: [12.x, 14.x, 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the smoke tests
- name: Run Smoke tests
run: node ./bin/npm-cli.js run --ignore-scripts smoke-tests -- --no-check-coverage -t600 -Rbase -c
env:
DEPLOY_VERSION: testing
test:
strategy:
fail-fast: false
matrix:
node-version: ['12.13.0', 12.x, '14.15.0', 14.x, '16.0.0', 16.x]
platform:
- os: ubuntu-latest
shell: bash
- os: macos-latest
shell: bash
- os: windows-latest
shell: bash
- os: windows-latest
shell: powershell
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
# Checkout the npm/cli repo
- uses: actions/checkout@v2
# Installs the specific version of Node.js
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
# Run the installer script
- name: Install dependencies
run: |
node ./bin/npm-cli.js install --ignore-scripts --no-audit
node ./bin/npm-cli.js rebuild
# Run the tests, but not if we're just gonna do coveralls later anyway
- name: Run Tap tests
if: matrix.platform.os != 'ubuntu-latest' || matrix.node-version != '16.x'
run: node ./bin/npm-cli.js run --ignore-scripts test -- -t600 -Rbase -c
env:
DEPLOY_VERSION: testing
# Run coverage check
- name: Run coverage report
if: matrix.platform.os == 'ubuntu-latest' && matrix.node-version == '16.x'
# turn off --check-coverage until 100%, so CI failure is relevant
run: node ./bin/npm-cli.js run check-coverage -- -t600 --no-check-coverage -Rbase -c
env:
DEPLOY_VERSION: testing
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_OPTIONAL_TOKEN }}
# - name: Run sudo tests on Linux
# if: matrix.os == 'ubuntu-latest'
# run: sudo PATH=$PATH $(which node) . test -- --coverage --timeout 600

View File

@ -1,89 +0,0 @@
name: "Create CLI Deps PR"
on:
workflow_dispatch:
inputs:
npmVersion:
description: "6.x.x or latest"
required: true
default: 'latest'
jobs:
create-pull-request:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.NPM_ROBOT_USER_PAT }}
NPM_VERSION: ${{ github.event.inputs.npmVersion }}
SUPPORT_BRANCH: "v14.x-staging"
steps:
- name: Update gh cli & install jq parser
run: |
sudo apt-get update -y
sudo apt update
sudo apt-get install -y jq
sudo apt install gh
- name: Checkout npm/node
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: master
repository: "npm/node"
token: ${{ secrets.NPM_ROBOT_USER_PAT }}
- name: Pull (Fast-Forward) upstream
id: sync
uses: aormsby/Fork-Sync-With-Upstream-action@v2.1
with:
upstream_repository: nodejs/node
upstream_branch: master
target_branch: master
git_pull_args: --ff-only # optional arg use, defaults to simple 'pull'
github_token: ${{ secrets.NPM_ROBOT_USER_PAT }} # optional, for accessing repos that require authentication
- name: Run dependency updates and create PR
run: |
npm_tag=""
base_branch=""
if [ "$NPM_VERSION" == "latest" ]
then
npm_tag=`npm view npm@latest version`
base_branch="master"
else
npm_tag="$NPM_VERSION"
base_branch="v14.x-staging"
fi
git config user.name "npm team"
git config user.email "ops+robot@npmjs.com"
git checkout -b "npm-$npm_tag"
BASE_DIR="$( pwd )"/
DEPS_DIR="$BASE_DIR"deps/
echo "Cloning CLI repo"
gh repo clone npm/cli
echo "Prepping CLI repo for release"
cd cli
git checkout v"$npm_tag"
make
make release
echo "Removing old npm"
cd "$DEPS_DIR"
rm -rf npm/
echo "Copying new npm"
tar zxf "$BASE_DIR"cli/release/npm-"$npm_tag".tgz
echo "Removing CLI workspace"
cd "$BASE_DIR"
rm -rf cli
git add -A deps/npm
git commit -m "deps: upgrade npm to $npm_tag"
git rebase --whitespace=fix master
git push origin "npm-$npm_tag"
gh_release_body=`gh release view v"$npm_tag" -R npm/cli --json body | jq -r '.body'`
gh pr create -R "nodejs/node" -B "$base_branch" -H "npm:npm-$npm_tag" --title "deps: upgrade npm to $npm_tag" --body "$gh_release_body"

30
.gitignore vendored
View File

@ -1,30 +0,0 @@
*.swp
npm-debug.log
/.nyc_output
/test/output.log
/test/*/*/node_modules
/test/packages/npm-test-depends-on-spark/which-spark.log
/test/packages/test-package/random-data.txt
/test/root
/node_modules/.bin
/docs/output/
/docs/node_modules/
/man/
/npmrc
/release/
/npm-*.tgz
/node_modules/npm-registry-client/test/fixtures
/test/fixtures/config/userconfig-with-gc
/node_modules/npm-registry-couchapp
*.pyc
.jshintrc
.eslintrc
.nyc_output
/test/npm_cache*
/node_modules/.cache
.DS_Store
**/.DS_Store
/coverage
/*.tgz
/.editorconfig
.vscode/

View File

@ -55,6 +55,8 @@ Maximilian Antoni <mail@maxantoni.de> <maximilian.antoni@juliusbaer.com>
Michael Hayes <michael@hayes.io> <mhayes@newrelic.com>
Misha Kaletsky <misha.kaletsky@gmail.com>
Nicolas Morel <marsup@gmail.com>
npm team <ops+robot@npmjs.com> <ops+npm-cli@npmjs.com>
npm CLI robot <npm-cli+bot@github.com>
Olivier Melcher <olivier.melcher@gmail.com>
Ra'Shaun Stovall <rashaunstovall@gmail.com>
Rebecca Turner <me@re-becca.org> <rebecca@npmjs.com>

3
.npmrc
View File

@ -0,0 +1,3 @@
; This file is automatically added by @npmcli/template-oss. Do not edit.
package-lock=true

View File

@ -0,0 +1,16 @@
{
".": "9.2.0",
"workspaces/arborist": "6.1.5",
"workspaces/libnpmaccess": "7.0.1",
"workspaces/libnpmdiff": "5.0.6",
"workspaces/libnpmexec": "5.0.6",
"workspaces/libnpmfund": "4.0.6",
"workspaces/libnpmhook": "9.0.1",
"workspaces/libnpmorg": "5.0.1",
"workspaces/libnpmpack": "5.0.6",
"workspaces/libnpmpublish": "7.0.6",
"workspaces/libnpmsearch": "6.0.1",
"workspaces/libnpmteam": "5.0.1",
"workspaces/libnpmversion": "4.0.1",
"workspaces/config": "6.1.0"
}

44
AUTHORS
View File

@ -819,9 +819,51 @@ Tierney Cyren <accounts@bnb.im>
Guillaume Grossetie <g.grossetie@gmail.com>
linkgoron <Linkgoron@users.noreply.github.com>
Quentin Barbe <forty@everteam.org>
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Delapouite <delapouite@gmail.com>
F. Hinkelmann <franziska.hinkelmann@gmail.com>
Tierney Cyren <hello@bnb.im>
Mohamed Akram <mohd-akram@users.noreply.github.com>
Wassim Chegham <1699357+manekinekko@users.noreply.github.com>
David Chin <dlcmhd@me.com>
David Walker <d0sboots@gmail.com>
Boris Verkhovskiy <boris.verk@gmail.com>
JSKitty <jskitty@protonmail.com>
CommanderRoot <CommanderRoot@users.noreply.github.com>
Marco Tizzoni <marco.tizzoni@gmail.com>
You Nguyen <tunt081295@gmail.com>
Omri Bar-Zik <omri@bar-zik.com>
Jihun Lee <zkoong21@gmail.com>
Yonathan Randolph <yonathan@gmail.com>
Julian Møller Ellehauge <jumoel@github.com>
Lucas Werkmeister <mail@lucaswerkmeister.de>
Seth Westphal <westy92@users.noreply.github.com>
Mihai Crisan <61682879+crisanmm@users.noreply.github.com>
Kenichi Kamiya <kachick1@gmail.com>
Chen XI <xichen1427@gmail.com>
Jon Jensen <jenseng@gmail.com>
JC (Jonathan Chen) <jc@dijonkitchen.org>
MapleCCC <littlelittlemaple@gmail.com>
Patryk Ludwikowski <psychoxivi@gmail.com>
Takuya N <takninnovationresearch@gmail.com>
Neel Dani <neeldani@github.com>
Anton Rieder <1301152+aried3r@users.noreply.github.com>
William Marlow <linuxdragon@gmail.com>
KevinBrother <1301239018@qq.com>
Kyle West <kyle-west@users.noreply.github.com>
Nathan Hughes <nathan@endor.ai>
Sandeep Meduru <73886592+sandeepmeduru@users.noreply.github.com>
Kid <44045911+kidonng@users.noreply.github.com>
Hugh Lilly <hughlilly@users.noreply.github.com>
Hafizur046 <hafijurrahman046@gmail.com>
Michael Rienstra <mrienstra@gmail.com>
Juan Heyns <juanheyns@gmail.com>
Michał Kurowski <michalkurowskix@gmail.com>
giovanniPepi <gtpepi@proton.me>
Winter <winter@winter.cafe>
shalvah <diakon.ng@gmail.com>
Albert 理斯特 <shuaizhexu@gmail.com>
Gennadiy Gashev <63790536+gennadiygashev@users.noreply.github.com>
Andrew Dawes <andrewsdawes@gmail.com>
sosoba <slawomir.osoba@coig.pl>
Aron <aron@master.co>
HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

View File

@ -1,594 +1,435 @@
## v8.5.1 (2022-02-17)
# Changelog
### Dependencies
* [`54cda9697`](https://github.com/npm/cli/commit/54cda9697b776fae807966097315c7b836623743)
[#4410](https://github.com/npm/cli/pull/4410)
fix(arborist): do not audit in offline mode
([@mohd-akram](https://github.com/mohd-akram))
* [`fb13bdaf1`](https://github.com/npm/cli/commit/fb13bdaf12dde3ef5685a77354e51a9cfa579879)
[#4403](https://github.com/npm/cli/pull/4403)
deps: `@npmcli/ci-detect@2.0.0`
* [`702801002`](https://github.com/npm/cli/commit/702801002e99bf02dd4d6d1e447a5ab332d56c79)
[#4415](https://github.com/npm/cli/pull/4415)
deps: `make-fetch-happen@10.0.3`
* [`88bab3540`](https://github.com/npm/cli/commit/88bab354097023c96c49e78d7ee54159f495bf73)
[#4416](https://github.com/npm/cli/pull/4416)
deps: `gauge@4.0.1`
### Documentation
* [`20378c67c`](https://github.com/npm/cli/commit/20378c67cd533db514dd2aec7828c6d119e9d6c7)
[#4423](https://github.com/npm/cli/pull/4423)
docs: update documentation for ping
([@fhinkel](https://github.com/fhinkel))
* [`408d2fc15`](https://github.com/npm/cli/commit/408d2fc150185ef66125f7d6bdb1c25edb71bba3)
[#4426](https://github.com/npm/cli/pull/4426)
docs: update workspaces guide for consistency
([@bnb](https://github.com/bnb))
* [`9275856eb`](https://github.com/npm/cli/commit/9275856eb75e7c394a3c7617c2b495aba35ee2de)
[#4424](https://github.com/npm/cli/pull/4424)
docs: update usage example for npm pkg
([@manekinekko](https://github.com/manekinekko))
* [`20c83fae7`](https://github.com/npm/cli/commit/20c83fae76ff4a051e4f6542a328f1c00cf071bb)
[#4428](https://github.com/npm/cli/pull/4428)
docs: update docs for npm install <folder>
([@manekinekko](https://github.com/manekinekko))
## v8.5.0 (2022-02-10)
## [9.2.0](https://github.com/npm/cli/compare/v9.1.3...v9.2.0) (2022-12-07)
### Features
* [`0cc9d4c51`](https://github.com/npm/cli/commit/0cc9d4c51a337af0edd2e20c6fadb26807e5d09f)
[#4372](https://github.com/npm/cli/pull/4372)
feat(deps): `@npmcli/config@3.0.0 - introduce automatic workspace roots`
([@nlf](https://github.com/nlf))
* [`cf57ffa`](https://github.com/npm/cli/commit/cf57ffa90088fcf5b028cc02938baae6228b5a40) [#5888](https://github.com/npm/cli/pull/5888) discrete npm doctor commands (#5888) (@wraithgar)
### Bug Fixes
* [`fb6e2ddf9`](https://github.com/npm/cli/commit/fb6e2ddf942bacf5ae745d16c2d57f3836dce75a)
[#4386](https://github.com/npm/cli/pull/4386)
fix(log): pass in logger to more external modules
([@wraithgar](https://github.com/wraithgar))
* [`0e231d4a4`](https://github.com/npm/cli/commit/0e231d4a40526608411aca0a6e7cf27c750f2409)
[#4389](https://github.com/npm/cli/pull/4389)
fix(pack): let libnpmpack take care of file writes
([@nlf](https://github.com/nlf))
* [`e2f1f7b04`](https://github.com/npm/cli/commit/e2f1f7b045a3ae9840f431cb4266ba046831247b)
[#4389](https://github.com/npm/cli/pull/4389)
fix(publish): pass dryRun: true to libnpmpack so it doesnt write a tarball
([@nlf](https://github.com/nlf))
* [`2937b43d4`](https://github.com/npm/cli/commit/2937b43d4629225d83b6c71833df00743209f5ff)
[#4389](https://github.com/npm/cli/pull/4389)
fix(config): add pack-destination flattener
([@nlf](https://github.com/nlf))
### Documentation
* [`b836d596f`](https://github.com/npm/cli/commit/b836d596f9d98cd7849882000cad11ad2a0b9a26)
[#4384](https://github.com/npm/cli/pull/4384)
docs: add cross-references between npx and npm exec
([@Delapouite](https://github.com/Delapouite))
* [`f3fbeea5a`](https://github.com/npm/cli/commit/f3fbeea5a173902ca7455c6c94a9e677591b0410)
[#4388](https://github.com/npm/cli/pull/4388)
docs: add --save-bundle to --save usage output
([@wraithgar](https://github.com/wraithgar))
* [`dfd5d46`](https://github.com/npm/cli/commit/dfd5d461e0ee2163e210cc136d2bb7873dfeb363) [#5932](https://github.com/npm/cli/pull/5932) ignore implicit workspaces for completion (#5932) (@wraithgar)
### Dependencies
* [`8732f393e`](https://github.com/npm/cli/commit/8732f393ee547e2eada4317613599517c1d8ec0a)
deps: `@npmcli/arborist@4.3.1`
* [`2ba09cc0d`](https://github.com/npm/cli/commit/2ba09cc0d7d56a064aa67bbb1881d381e6504888)
[#4371](https://github.com/npm/cli/pull/4371)
fix(arborist): check if a spec is a workspace before fetching a manifest, closes #3637
([@nlf](https://github.com/nlf))
* [`e631faf7b`](https://github.com/npm/cli/commit/e631faf7b5f414c233d723ee11413264532b37de)
[#4387](https://github.com/npm/cli/pull/4387)
fix(arborist): save bundleDependencies to package.json when reifying
([@wraithgar](https://github.com/wraithgar))
* [`d3a7c15e1`](https://github.com/npm/cli/commit/d3a7c15e1e3d305a0bf781493406dfb1fdbaca35)
deps: `libnpmpack@3.1.0`
* [`4884821f6`](https://github.com/npm/cli/commit/4884821f637ca1992b494fbdbd94d000e4428a40)
[#4389](https://github.com/npm/cli/pull/4389)
feat(libnpmpack): write tarball file when dryRun === false
([@nlf](https://github.com/nlf))
* [`ab926995e`](https://github.com/npm/cli/commit/ab926995e43ccdd048a6e1164b436fea1940f932)
[#4393](https://github.com/npm/cli/pull/4393)
deps: `npm-registry-fetch@12.0.2`
* [`1c0d0699c`](https://github.com/npm/cli/commit/1c0d0699c13e1cb36a69f2ac4acdb78ea205aa3e)
[#4394](https://github.com/npm/cli/pull/4394)
deps: `npmlog@6.0.1`
* changed notice color from blue to cyan for improved readability
* [`3c33a5842`](https://github.com/npm/cli/commit/3c33a584213e4f2230f3b912fad2c2f5786906fb)
[#4400](https://github.com/npm/cli/pull/4400)
deps: `make-fetch-happen@10.0.2`
* [`2f2b146`](https://github.com/npm/cli/commit/2f2b1469565894ec777e6eb77fea7b607b797adb) [#5936](https://github.com/npm/cli/pull/5936) `npm-packlist@7.0.4` (#5936)
* [`372d158`](https://github.com/npm/cli/commit/372d158d2637120600a95abee64355ed1cb6f990) [#5935](https://github.com/npm/cli/pull/5935) `minimatch@5.1.1` (#5935)
* [`0e6c28b`](https://github.com/npm/cli/commit/0e6c28ba093f8c5d35df98afca28e842b247004b) [#5934](https://github.com/npm/cli/pull/5934) `ci-info@3.7.0` (#5934)
* [`0a3fe00`](https://github.com/npm/cli/commit/0a3fe000e2723ae6fdb8b1d3154fd3835057c992) [#5933](https://github.com/npm/cli/pull/5933) `minipass@4.0.0`
* [`6b77340`](https://github.com/npm/cli/commit/6b7734009ecd939fbb3d382cb92eb0cdbec7dcd3) `tar@6.1.13`
* [`cf0a174`](https://github.com/npm/cli/commit/cf0a17407abc577c27420a1c8a4a0c08c7cefce9) `ssri@10.0.1`
* [`3da9a1a`](https://github.com/npm/cli/commit/3da9a1a4ebcf1779035b5f9ae985c087f617efe3) `pacote@15.0.7`
* [`fee9b66`](https://github.com/npm/cli/commit/fee9b6686892a1c7f976c36ddd5d89b70c416817) `npm-registry-fetch@14.0.3`
* [`e940917`](https://github.com/npm/cli/commit/e940917befcdaf44ee7e24d31b540f4de8507734) `cacache@17.0.3`
* [`875bd56`](https://github.com/npm/cli/commit/875bd56c33ca5eef80c2a50a11808445f2a39a2a) `npm-package-arg@10.1.0`
* [`280b7a4`](https://github.com/npm/cli/commit/280b7a445e4a83d70980cf3c436745a1faa50c67) [#5927](https://github.com/npm/cli/pull/5927) `npm-packlist@7.0.3`
* [Workspace](https://github.com/npm/cli/releases/tag/arborist-v6.1.5): `@npmcli/arborist@6.1.5`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmaccess-v7.0.1): `libnpmaccess@7.0.1`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmdiff-v5.0.6): `libnpmdiff@5.0.6`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmexec-v5.0.6): `libnpmexec@5.0.6`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmfund-v4.0.6): `libnpmfund@4.0.6`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmhook-v9.0.1): `libnpmhook@9.0.1`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmorg-v5.0.1): `libnpmorg@5.0.1`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpack-v5.0.6): `libnpmpack@5.0.6`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpublish-v7.0.6): `libnpmpublish@7.0.6`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmsearch-v6.0.1): `libnpmsearch@6.0.1`
* [Workspace](https://github.com/npm/cli/releases/tag/libnpmteam-v5.0.1): `libnpmteam@5.0.1`
## v8.4.1 (2022-02-03)
## [9.1.3](https://github.com/npm/cli/compare/v9.1.2...v9.1.3) (2022-11-30)
### Bug Fixes
* [`1b9338554`](https://github.com/npm/cli/commit/1b9338554fc006954fae54c25c33e64e26ae997e)
[#4359](https://github.com/npm/cli/pull/4359)
fix(log): pass in logger to external modules
([@wraithgar](https://github.com/wraithgar))
* [`457e0ae61`](https://github.com/npm/cli/commit/457e0ae61bbc55846f5af44afa4066921923490f)
[#4363](https://github.com/npm/cli/pull/4363)
fix(ci): lock file validation
([@ruyadorno](https://github.com/ruyadorno))
* [`c0519edc1`](https://github.com/npm/cli/commit/c0519edc16f66370b2153430342247b4ec5cb496)
[#4364](https://github.com/npm/cli/pull/4364)
fix(ci): should not use package-lock config
([@ruyadorno](https://github.com/ruyadorno))
* [`ebb428375`](https://github.com/npm/cli/commit/ebb428375cd417c096d5a648df92620dc4215a3d)
[#4365](https://github.com/npm/cli/pull/4365)
fix(outdated): parse aliased modules
([@ruyadorno](https://github.com/ruyadorno))
* [`ffbdea2`](https://github.com/npm/cli/commit/ffbdea286a08eeaf40ab83eea5bfe0602dc6bbcd) [#5894](https://github.com/npm/cli/pull/5894) npm pack filename on scoped packages (#5894) (@HenryNguyen5)
* [`c26d708`](https://github.com/npm/cli/commit/c26d708428a96da530092759b5ff6d67c7282348) [#5884](https://github.com/npm/cli/pull/5884) validate username at get-identity (#5884) (@sosoba, @nlf)
### Documentation
* [`0b0a7cc76`](https://github.com/npm/cli/commit/0b0a7cc767947ea738da50caa832d8a922e20ac6)
[#4361](https://github.com/npm/cli/pull/4361)
docs: bundleDependencies can be a boolean.
([@forty](https://github.com/forty))
* [`ea948dc`](https://github.com/npm/cli/commit/ea948dceac5cfeef437c97874ab26c3275e75766) [#5881](https://github.com/npm/cli/pull/5881) update description of npm exec (#5881) (@styfle, @wraithgar)
* [`40f2c21`](https://github.com/npm/cli/commit/40f2c213d75a252665311b4f8775d297390aeb70) [#5865](https://github.com/npm/cli/pull/5865) ci-info url (#5865) (@wraithgar)
* [`681a45b`](https://github.com/npm/cli/commit/681a45bb48acd57aa64cb3241ea4915f5a12e029) [#5875](https://github.com/npm/cli/pull/5875) run the comand for directory workspaces (#5875) (@1aron)
* [`681a45b`](https://github.com/npm/cli/commit/681a45bb48acd57aa64cb3241ea4915f5a12e029) [#5875](https://github.com/npm/cli/pull/5875) add workspace directory example (#5875) (@1aron)
### Dependencies
* [`3d41447b9`](https://github.com/npm/cli/commit/3d41447b961a72f1ce541fea252d0cd462399c76)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `wide-align@1.1.5`
* [`dc1a0573a`](https://github.com/npm/cli/commit/dc1a0573ace328d985a741af76d03752b1dbf1ff)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `socks-proxy-agent@6.1.1`
* [`adcefef6b`](https://github.com/npm/cli/commit/adcefef6b953e0804f4a2de3a1912321f44c4a7e)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `spdx-license-ids@3.0.11`
* [`d7e2499e0`](https://github.com/npm/cli/commit/d7e2499e073301a62607266d3ab8f9b63d630fb5)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `debug@4.3.3`
* [`f0f307140`](https://github.com/npm/cli/commit/f0f30714002db979a2707d85c65bb92ae0ff76fe)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `@npmcli/fs@1.1.0`
* [`1cb107d33`](https://github.com/npm/cli/commit/1cb107d33d7e1499d92c3405fa0694142bdee8df)
[#4353](https://github.com/npm/cli/pull/4353)
deps: `is-core-module@2.8.1`
* [`e198ac0d1`](https://github.com/npm/cli/commit/e198ac0d1c1e536db57e84af6e7f40089b4c1bfc)
[#4354](https://github.com/npm/cli/pull/4354)
deps: `cli-table3@0.6.1`
* [`5a84e6515`](https://github.com/npm/cli/commit/5a84e6515a0331be20395ce2a6b1e892ecea20f8)
[#4355](https://github.com/npm/cli/pull/4355)
deps: `graceful-fs@4.2.9`
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.1.3...arborist-v6.1.4): `@npmcli/arborist@6.1.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.4...libnpmdiff-v5.0.5): `libnpmdiff@5.0.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.4...libnpmexec-v5.0.5): `libnpmexec@5.0.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.4...libnpmfund-v4.0.5): `libnpmfund@4.0.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.4...libnpmpack-v5.0.5): `libnpmpack@5.0.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.4...libnpmpublish-v7.0.5): `libnpmpublish@7.0.5`
## v8.4.0 (2022-01-27)
## [9.1.2](https://github.com/npm/cli/compare/v9.1.1...v9.1.2) (2022-11-16)
### Bug Fixes
* [`d9654cf`](https://github.com/npm/cli/commit/d9654cffd7024ec2d068147868978fc994d696e4) [#5861](https://github.com/npm/cli/pull/5861) remove unwanted package.json entries (#5861) (@wraithgar)
### Dependencies
* [`a351685`](https://github.com/npm/cli/commit/a351685c4951b1d9e2ba86bc99e3706688813438) [#5858](https://github.com/npm/cli/pull/5858) move from @npmcli/ci-detect to ci-info (#5858)
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.1.2...arborist-v6.1.3): `@npmcli/arborist@6.1.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.3...libnpmdiff-v5.0.4): `libnpmdiff@5.0.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.3...libnpmexec-v5.0.4): `libnpmexec@5.0.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.3...libnpmfund-v4.0.4): `libnpmfund@4.0.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.3...libnpmpack-v5.0.4): `libnpmpack@5.0.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.3...libnpmpublish-v7.0.4): `libnpmpublish@7.0.4`
## [9.1.1](https://github.com/npm/cli/compare/v9.1.0...v9.1.1) (2022-11-09)
### Documentation
* [`1bff064`](https://github.com/npm/cli/commit/1bff0640ccb8414e2d416a5cf9d64e9ff03c6403) [#5819](https://github.com/npm/cli/pull/5819) config: document `npm config fix` (#5819) (@wraithgar)
### Dependencies
* [`335c7e4`](https://github.com/npm/cli/commit/335c7e4348f5505fad33b8a78348a02a82b91426) [#5813](https://github.com/npm/cli/pull/5813) `cacache@17.0.2`
* [`878ddfb`](https://github.com/npm/cli/commit/878ddfb5b68c03bdcd7d7da8dae92c4947942801) `@npmcli/fs@3.1.0`
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.1.1...arborist-v6.1.2): `@npmcli/arborist@6.1.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.2...libnpmdiff-v5.0.3): `libnpmdiff@5.0.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.2...libnpmexec-v5.0.3): `libnpmexec@5.0.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.2...libnpmfund-v4.0.3): `libnpmfund@4.0.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.2...libnpmpack-v5.0.3): `libnpmpack@5.0.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.2...libnpmpublish-v7.0.3): `libnpmpublish@7.0.3`
## [9.1.0](https://github.com/npm/cli/compare/v9.0.1...v9.1.0) (2022-11-02)
### Features
* [`fbe48a840`](https://github.com/npm/cli/commit/fbe48a84047e0c5de31bdaa84707f0f8fdcef71d)
[#4307](https://github.com/npm/cli/pull/4307)
feat(arborist): add named updates validation
([@ruyadorno](https://github.com/ruyadorno))
* [`706b3d3`](https://github.com/npm/cli/commit/706b3d3f227de43a095263926d2eef2b4e4cf2a9) [#5779](https://github.com/npm/cli/pull/5779) set --no-audit when installing outside of a project (like --global) (@fritzy)
### Bug Fixes
* [`1f853f8bf`](https://github.com/npm/cli/commit/1f853f8bf7cecd1222703dde676a4b664526141d)
[#4306](https://github.com/npm/cli/pull/4306)
fix(arborist): load actual tree on named updates
([@ruyadorno](https://github.com/ruyadorno))
* [`90c384ccc`](https://github.com/npm/cli/commit/90c384ccccac32c80c481a04c438cbcbea82539c)
[#4326](https://github.com/npm/cli/pull/4326)
fix(logout): require proper auth.js from npm-registry-fetch
([@wraithgar](https://github.com/wraithgar))
* [`fabcf431a`](https://github.com/npm/cli/commit/fabcf431a63ecf93b56ae5d9a05ad4e7ef280c2a)
[#4327](https://github.com/npm/cli/pull/4327)
fix(arborist): correctly load overrides on workspace edges, closes #4205
([@nlf](https://github.com/nlf))
* [`8c3b143ca`](https://github.com/npm/cli/commit/8c3b143ca20d0da56c0ce2764e288a4c203b9f93)
[#4258](https://github.com/npm/cli/pull/4258)
fix(arborist): shrinkwrap throws when trying to read a folder without permissions
([@Linkgoron](https://github.com/Linkgoron))
* [`b51b29c56`](https://github.com/npm/cli/commit/b51b29c563fa97aa4fbf38250d1f04e879a8d961)
[#4334](https://github.com/npm/cli/pull/4334)
fix(arborist): update save exact
([@ruyadorno](https://github.com/ruyadorno))
### Dependencies
* [`8558527c7`](https://github.com/npm/cli/commit/8558527c7158b2c1c353f8ab9c31de2a66ab470e)
[#4333](https://github.com/npm/cli/pull/4333)
deps: `make-fetch-happen@10.0.0`
* compress option and accept/content encoding header edge cases
* strip cookie header on redirect across hostnames
* [`1bfc507f2`](https://github.com/npm/cli/commit/1bfc507f2a5afa02f04d4dea2fc6d151d4fef3ac)
[#4326](https://github.com/npm/cli/pull/4326)
deps: `npm-registry-fetch@12.0.1`
* [`52c9608e7`](https://github.com/npm/cli/commit/52c9608e7bb1cda396b2cef3fc1b48dbaa2b7de3)
[#4326](https://github.com/npm/cli/pull/4326)
deps: `pacote@12.0.3`
* [`2bbeedfeb`](https://github.com/npm/cli/commit/2bbeedfebb3aea082d612deb5e4d9de9e550c529)
[#4326](https://github.com/npm/cli/pull/4326)
deps: `npm-profile@6.0.0`
* [`9652d685b`](https://github.com/npm/cli/commit/9652d685b1e4bd21cec107a611c2e307387623d6)
chore(release): `@npmcli/arborist@4.3.0`
([@wraithgar](https://github.com/wraithgar))
* [`0ee4927d2`](https://github.com/npm/cli/commit/0ee4927d2e8206dd24fa7eea5e1c10ea649ecc49)
chore(release): `libnpmaccess@5.0.1`
([@wraithgar](https://github.com/wraithgar))
* [`6c0dc1ffb`](https://github.com/npm/cli/commit/6c0dc1ffb70858be1e9ca9afdb6950e39609a367)
chore(release): `libnpmexec@3.0.3`
([@wraithgar](https://github.com/wraithgar))
* [`41b8f7b6f`](https://github.com/npm/cli/commit/41b8f7b6ff62f0e738865eb8e98df8650f5467bd)
chore(release): `libnpmorg@3.0.1`
([@wraithgar](https://github.com/wraithgar))
* [`433e6aafb`](https://github.com/npm/cli/commit/433e6aafbbf56efcf71e991767a6f00afe4aba7c)
chore(release): `libnpmpublish@5.0.1`
([@wraithgar](https://github.com/wraithgar))
* [`6654b6efe`](https://github.com/npm/cli/commit/6654b6efe02666bdb9864f4608e477ba132fd215)
chore(release): `libnpmsearch@4.0.1`
([@wraithgar](https://github.com/wraithgar))
* [`3423a9804`](https://github.com/npm/cli/commit/3423a980436492b7f0ee9e002517387a801f4f4a)
chore(release): `libnpmteam@3.0.1`
([@wraithgar](https://github.com/wraithgar))
* [`fb03e485d`](https://github.com/npm/cli/commit/fb03e485d9b1f09eb1cbcce00ee8e3e5c012097f)
chore(release): `libnpmhook@7.0.1`
([@wraithgar](https://github.com/wraithgar))
## v8.3.2 (2022-01-20)
### Bug Fixes
* [`cfd59b8c8`](https://github.com/npm/cli/commit/cfd59b8c81078f842328b13a23a234150842cd58)
[#4223](https://github.com/npm/cli/pull/4223)
fix: npm update --save
([@ruyadorno](https://github.com/ruyadorno))
* [`510f0ecbc`](https://github.com/npm/cli/commit/510f0ecbc9970ed8c8993107cc03cf27b7b996dc)
[#4218](https://github.com/npm/cli/pull/4218)
fix(arborist): ensure indentation is preserved
([@ljharb](https://github.com/ljharb))
* [`c99c2151a`](https://github.com/npm/cli/commit/c99c2151a868672c017f64ff0ecb12149a2fb095)
[#4230](https://github.com/npm/cli/pull/4230)
fix(arborist): prioritize valid workspace nodes
([@nlf](https://github.com/nlf))
* [`14a3d9500`](https://github.com/npm/cli/commit/14a3d95000f1cba937f3309d198a363ae65cf01f)
[#4265](https://github.com/npm/cli/pull/4265)
fix: resolve workspace paths from cwd when possible
([@nlf](https://github.com/nlf))
### Dependencies
* [`2ef9f9847`](https://github.com/npm/cli/commit/2ef9f9847c11fe8c0c0494558fe77c15ac4dbc80)
[#4254](https://github.com/npm/cli/pull/4254)
deps: `bin-links@3.0.0 write-file-atomic@4.0.0`
## v8.3.1 (2022-01-13)
### Bug Fixes
* [`2ac540b0c`](https://github.com/npm/cli/commit/2ac540b0ccd016a14676ad891758e8d9e903a12c)
fix(unpublish): Show warning on unpublish command when last version (#4191)
([@ebsaral](https://github.com/ebsaral))
### Dependencies
* [`da80d579d`](https://github.com/npm/cli/commit/da80d579d1f1db61894c54f7b9b3623394882c16)
[#4211](https://github.com/npm/cli/pull/4211)
deps: `hosted-git-info@4.1.0`
* feat: Support Sourcehut
* [`5a87d190f`](https://github.com/npm/cli/commit/5a87d190f38af9f2f98084d9b476184dbcaf1429)
[#4228](https://github.com/npm/cli/pull/4228)
deps: `@npmcli/config@2.4.0`
* [`1f0d1370f`](https://github.com/npm/cli/commit/1f0d1370ff6bf2ca978ef0d7d32640314c62204e)
chore(release): `@npmcli/arborist@4.2.0`
* [`3cfae3840`](https://github.com/npm/cli/commit/3cfae384011a8b291cc82cc02b56bc114557a9e5)
[#4181](https://github.com/npm/cli/pull/4181)
feat(arborist) add `toJSON`/`toString` methods to get shrinkwrap contents without saving
([@ljharb](https://github.com/ljharb))
### Chores
* [`d72650457`](https://github.com/npm/cli/commit/d7265045730555c03b3142c004c7438e9577028c)
chore: Bring in all libnpm modules + arborist as workspaces (#4166)
([@fritzy](https://github.com/fritzy))
## v8.3.0 (2021-12-09)
### Features
* [`4b0c29a7c`](https://github.com/npm/cli/commit/4b0c29a7c5860410c7b453bec389c54cb21dbde3)
[#4116](https://github.com/npm/cli/issues/4116)
feat: `@npmcli/arborist@4.1.0`
* introduces overrides
([@nlf](https://github.com/nlf))
* [`166d9e144`](https://github.com/npm/cli/commit/166d9e144b38087ee5e7d8aaf6ec7d602cf2957c)
[npm/statusboard#416](https://github.com/npm/statusboard/issues/416)
[#4143](https://github.com/npm/cli/issues/4143)
feat: output configured registry during publish
([@lukekarrys](https://github.com/lukekarrys))
* [`71777be17`](https://github.com/npm/cli/commit/71777be17e57179d203cb9162664ecd0c36ca633)
[npm/statusboard#417](https://github.com/npm/statusboard/issues/417)
[#4146](https://github.com/npm/cli/issues/4146)
feat: display `publishConfig` during `config list`
([@lukekarrys](https://github.com/lukekarrys))
### Bug Fixes
* [`08c663931`](https://github.com/npm/cli/commit/08c663931ec1f56d777ffdb38f94926b9eac13ef)
[#4128](https://github.com/npm/cli/issues/4128)
[#4134](https://github.com/npm/cli/issues/4134)
fix: dont warn on error cleaning individual log files
([@lukekarrys](https://github.com/lukekarrys))
* [`e605b128c`](https://github.com/npm/cli/commit/e605b128c87620aae843cdbd8f35cc614da3f8a2)
[#4142](https://github.com/npm/cli/issues/4142)
fix: redact all private keys from config output
([@lukekarrys](https://github.com/lukekarrys))
* [`1f5382d`](https://github.com/npm/cli/commit/1f5382dada181cda41f1504974de1e69a6c1ad7f) [#5789](https://github.com/npm/cli/pull/5789) don't set `stdioString` for any spawn/run-script calls (@lukekarrys)
* [`8fd614a`](https://github.com/npm/cli/commit/8fd614af5d6de970a6bbcffc538564d2a809411a) use promiseSpawn.open instead of opener (@nlf)
* [`41843ad`](https://github.com/npm/cli/commit/41843ad8a20bd20aacad2bb37fe473f2e76d5306) use an absolute path to notepad.exe by default, correct docs (@nlf)
* [`0c5834e`](https://github.com/npm/cli/commit/0c5834ed635833ef49fe10cc888025a5debebe21) [#5758](https://github.com/npm/cli/pull/5758) use hosted-git-info to parse registry urls (#5758) (@lukekarrys)
### Documentation
* [`db1885d7f`](https://github.com/npm/cli/commit/db1885d7fec012f018093c76dec5a9c01a0ca2b0)
[#4092](https://github.com/npm/cli/issues/4092)
chore(docs): document overrides
([@nlf](https://github.com/nlf))
* [`ce6745c`](https://github.com/npm/cli/commit/ce6745c806d721f5e3c455a65fd44bfe03e9d2ae) [#5763](https://github.com/npm/cli/pull/5763) fixed some typos (#5763) (@AndrewDawes)
### Dependencies
* [`e1da1fa4b`](https://github.com/npm/cli/commit/e1da1fa4ba7d95616928d2192b5b9db09b3120bc)
[#4141](https://github.com/npm/cli/issues/4141)
deps: `@npmcli/arborist@4.1.1`: `parse-conflict-json@2.0.1`
* Fixes object property assignment bug in resolving package-locks with
conflicts
* [`1d8bec566`](https://github.com/npm/cli/commit/1d8bec566cb08ff5ff220f53083323fa8c3fb72e)
[#4144](https://github.com/npm/cli/issues/4144)
[#3884](https://github.com/npm/cli/issues/3884)
deps: `minipass@3.1.6`
* fixes some TAR_ENTRY_INVALID and Z_DATA_ERROR errors
* [`b89c19e`](https://github.com/npm/cli/commit/b89c19e9a7674b0bd9d336c14dee1bf381843648) [#5795](https://github.com/npm/cli/pull/5795) `cli-table3@0.6.3`
* [`6b6dfca`](https://github.com/npm/cli/commit/6b6dfca191cb8f7871f755b926fd5ae223ba697a) `fastest-levenshtein@1.0.16`
* [`9972ed1`](https://github.com/npm/cli/commit/9972ed1423d7a4f7ca03a34f5aa69321b81850fd) `@npmcli/ci-detect@3.0.1`
* [`024e612`](https://github.com/npm/cli/commit/024e612f55fc9906b49065dbabbee8b8261eb4eb) `abbrev@2.0.0`
* [`66f9bcd`](https://github.com/npm/cli/commit/66f9bcd10b8d8cb635593c526727056581c7955d) `nopt@7.0.0`
* [`5730d17`](https://github.com/npm/cli/commit/5730d17198e066077cb3ea6f78753746afc13603) `tar@6.1.12`
* [`2fef570`](https://github.com/npm/cli/commit/2fef570caf00bd92a3a4cf0b2bc4ce56fd8bd594) `node-gyp@9.3.0`
* [`abfb28b`](https://github.com/npm/cli/commit/abfb28b249183b8c033f8e7acc1546150cdac137) `@npmcli/run-script@6.0.0`
* [`205e2fd`](https://github.com/npm/cli/commit/205e2fdde91f4f21d92ccf0bf9e1ab9ab3053167) `pacote@15.0.6`
* [`ac25863`](https://github.com/npm/cli/commit/ac25863a33b75620ac9edf4057bfb9409028636a) remove opener, `@npmcli/promise-spawn@6.0.1`, `@npmcli/run-script@5.1.1`, `@npmcli/git@4.0.3`, `pacote@15.0.5`, `which@3.0.0`
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.1.0...arborist-v6.1.1): `@npmcli/arborist@6.1.1`
* [Workspace](https://github.com/npm/cli/compare/config-v6.0.1...config-v6.1.0): `@npmcli/config@6.1.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.1...libnpmdiff-v5.0.2): `libnpmdiff@5.0.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.1...libnpmexec-v5.0.2): `libnpmexec@5.0.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.1...libnpmfund-v4.0.2): `libnpmfund@4.0.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.1...libnpmpack-v5.0.2): `libnpmpack@5.0.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.1...libnpmpublish-v7.0.2): `libnpmpublish@7.0.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmversion-v4.0.0...libnpmversion-v4.0.1): `libnpmversion@4.0.1`
## v8.2.0 (2021-12-02)
### Features
* [`6734ba36d`](https://github.com/npm/cli/commit/6734ba36dd6e07a859ab4d6eb4f264d2c0022276)
[#4062](https://github.com/npm/cli/issues/4062)
feat: streaming debug logfile
([@lukekarrys](https://github.com/lukekarrys))
### Bug Fixes
* [`5f4040aa0`](https://github.com/npm/cli/commit/5f4040aa0e30a3b74caab64958770c682e4d0031)
chore: remove get-project-scope utils
([@Yucel Okcu](https://github.com/Yucel Okcu))
* [`c5c6d1603`](https://github.com/npm/cli/commit/c5c6d1603b06df4c10b503047aeed34d6e0c36c2)
[#4060](https://github.com/npm/cli/issues/4060)
fix: add missing scope on flat options
([@yuqu](https://github.com/yuqu))
* [`47828b766`](https://github.com/npm/cli/commit/47828b766a4a7b50c1245c8f01b99ffbeffd014f)
chore: update one-time password prompt
([@Darcy Clarke](https://github.com/Darcy Clarke))
## [9.0.1](https://github.com/npm/cli/compare/v9.0.0...v9.0.1) (2022-10-26)
### Documentation
* [`fc46a7926`](https://github.com/npm/cli/commit/fc46a792621c89354eddc0e1ee2d4f5c26efe5a5)
[#4072](https://github.com/npm/cli/issues/4072)
docs: fix typo in `save-peer` description
([@chalkygames123](https://github.com/chalkygames123))
* [`2fbf1576f`](https://github.com/npm/cli/commit/2fbf1576f5427babab2bdf314b1760adc5f9a575)
[#4081](https://github.com/npm/cli/issues/4081)
docs: Fix typo
([@idleberg](https://github.com/idleberg))
* [`a8bc95f11`](https://github.com/npm/cli/commit/a8bc95f11c9d21319581d7b09baf9f864bea21ac)
[#4089](https://github.com/npm/cli/issues/4089)
docs(workspaces): Fix typo
([@yotamselementor](https://github.com/yotamselementor))
* [`31b098ee2`](https://github.com/npm/cli/commit/31b098ee26ed17facb132278bb3205e80e2a760d)
[#4113](https://github.com/npm/cli/issues/4113)
docs: add logging docs
([@darcyclarke](https://github.com/darcyclarke))
* [`cbae0fb71`](https://github.com/npm/cli/commit/cbae0fb71cea55004f7066c0dfc870137b53ee8b)
[#4114](https://github.com/npm/cli/issues/4114)
docs: update description about where/when debug log is written
([@lukekarrys](https://github.com/lukekarrys))
* [`b5fadd0`](https://github.com/npm/cli/commit/b5fadd0cec392f4bf6d60fa1358f96400be94667) [#5742](https://github.com/npm/cli/pull/5742) Better npx link (#5742) (@mrienstra)
### Dependencies
* [`de6618e`](https://github.com/npm/cli/commit/de6618e93182ba00b4be516db1efb3c51efa17ba) [#5757](https://github.com/npm/cli/pull/5757) `@npmcli/promise-spawn@5.0.0` (#5757)
* [`5625274`](https://github.com/npm/cli/commit/562527456d3862d871d042fa4ff6e38354e320ea) [#5755](https://github.com/npm/cli/pull/5755) `hosted-git-info@6.1.0` (#5755)
* [`32bdd68`](https://github.com/npm/cli/commit/32bdd686ccf826050075e770ffddf7401efa79c9) [#5754](https://github.com/npm/cli/pull/5754) `npm-packlist@7.0.2` (#5754)
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0...arborist-v6.1.0): `@npmcli/arborist@6.1.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.0...libnpmdiff-v5.0.1): `libnpmdiff@5.0.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0...libnpmexec-v5.0.1): `libnpmexec@5.0.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0...libnpmfund-v4.0.1): `libnpmfund@4.0.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0...libnpmpack-v5.0.1): `libnpmpack@5.0.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0...libnpmpublish-v7.0.1): `libnpmpublish@7.0.1`
## [9.0.0](https://github.com/npm/cli/compare/v9.0.0-pre.6...v9.0.0) (2022-10-19)
### Features
* [`e3b004c`](https://github.com/npm/cli/commit/e3b004c0d6dfcb153c4734af12afb09897e20932) [#5727](https://github.com/npm/cli/pull/5727) move cli and all workspaces out of prerelease mode (@lukekarrys)
### Dependencies
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.5...arborist-v6.0.0): `@npmcli/arborist@6.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmaccess-v7.0.0-pre.2...libnpmaccess-v7.0.0): `libnpmaccess@7.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.0-pre.3...libnpmdiff-v5.0.0): `libnpmdiff@5.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.5...libnpmexec-v5.0.0): `libnpmexec@5.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.5...libnpmfund-v4.0.0): `libnpmfund@4.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmhook-v9.0.0-pre.1...libnpmhook-v9.0.0): `libnpmhook@9.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmorg-v5.0.0-pre.1...libnpmorg-v5.0.0): `libnpmorg@5.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0-pre.4...libnpmpack-v5.0.0): `libnpmpack@5.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0-pre.4...libnpmpublish-v7.0.0): `libnpmpublish@7.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmsearch-v6.0.0-pre.1...libnpmsearch-v6.0.0): `libnpmsearch@6.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmteam-v5.0.0-pre.1...libnpmteam-v5.0.0): `libnpmteam@5.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmversion-v4.0.0-pre.1...libnpmversion-v4.0.0): `libnpmversion@4.0.0`
## [9.0.0-pre.6](https://github.com/npm/cli/compare/v9.0.0-pre.5...v9.0.0-pre.6) (2022-10-19)
### ⚠️ BREAKING CHANGES
* `npm` now outputs some json errors on stdout. Previously `npm` would output all json formatted errors on stderr, making it difficult to parse as the stderr stream usually has logs already written to it. In the future, `npm` will differentiate between errors and crashes. Errors, such as `E404` and `ERESOLVE`, will be handled and will continue to be output on stdout. In the case of a crash, `npm` will log the error as usual but will not attempt to display it as json, even in `--json` mode. Moving a case from the category of an error to a crash will not be considered a breaking change. For more information see npm/rfcs#482.
* `npm config set` will no longer accept deprecated or invalid config options.
* `timing` and `loglevel` changes
- `timing` has been removed as a value for `--loglevel`
- `--timing` will show timing information regardless of
`--loglevel`, except when `--silent`
* deprecate boolean install flags in favor of `--install-strategy`
* deprecate --global-style, --global now sets --install-strategy=shallow
* deprecate --legacy-bundling, now sets --install-strategy=nested
* npm will no longer attempt to modify ownership of files it creates
* this package no longer attempts to change file ownership automatically
* this package no longer attempts to change file ownership automatically
### Features
* [`d3543e9`](https://github.com/npm/cli/commit/d3543e945e721783dcb83385935f282a4bb32cf3) output json formatted errors on stdout (#5716) (@lukekarrys)
* [`be642c6`](https://github.com/npm/cli/commit/be642c6b8e3df40fd43b0110b30d3ecd44086016) refuse to set deprecated/invalid config (#5719) (@wraithgar)
* [`332914b`](https://github.com/npm/cli/commit/332914b48b616099e586893b1df21480b7ddb733) separate configs for `--timing` and `--loglevel` (@lukekarrys)
* [`f653785`](https://github.com/npm/cli/commit/f6537855e1a34b84251993a49e1ee362082ada37) deprecated `key`, `cert` config options and updated registry scoped auth docs (@fritzy)
* [`de2d33f`](https://github.com/npm/cli/commit/de2d33f3ed42e187803bdd31db4f7a12f08f353c) add --install-strategy=hoisted|nested|shallow, deprecate --global-style, --legacy-bundling (#5709) (@fritzy)
* [`58065bc`](https://github.com/npm/cli/commit/58065bc679e6968742b5b15fa2fb82dd9e8ae988) [#5704](https://github.com/npm/cli/pull/5704) do not alter file ownership (@nlf)
* [`475e9b6`](https://github.com/npm/cli/commit/475e9b6c0c978a104dd2ee47bde22b0a031a95f9) [#5703](https://github.com/npm/cli/pull/5703) do not alter file ownership (@nlf)
### Bug Fixes
* [`6ffa5b7`](https://github.com/npm/cli/commit/6ffa5b7bbb8fd7cae1a0b955a1f762661ec5e9ed) `npm hook ls` duplicates hook name prefixes (#5295) (@gennadiygashev)
* [`1afe5ba`](https://github.com/npm/cli/commit/1afe5ba9647d1f0f55bf0a4bace543965d05daed) account for new npm-package-arg behavior (@wraithgar)
* [`353b5bb`](https://github.com/npm/cli/commit/353b5bb92c3f7899526536b597252b44aa8a712d) [#5710](https://github.com/npm/cli/pull/5710) remove chownr and mkdirp-infer-owner (@nlf)
### Documentation
* [`9e74d3e`](https://github.com/npm/cli/commit/9e74d3e847c4bc0abc630fbe81328e011d6f0187) update supported engines in readme (#5725) (@lukekarrys)
### Dependencies
* [`88137a3`](https://github.com/npm/cli/commit/88137a329c8ad418db265dd465768a7cf5ebccb1) `npmlog@7.0.1`
* [`2008ea6`](https://github.com/npm/cli/commit/2008ea6a807acbd97912799adfe97f276202cea6) `npm-package-arg@10.0.0`, `pacote@15.0.2`
* [`aa01072`](https://github.com/npm/cli/commit/aa010722996ef6de46e1bb937c6f8a94dc2844fa) [#5707](https://github.com/npm/cli/pull/5707) update the following dependencies
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.4...arborist-v6.0.0-pre.5): `@npmcli/arborist@6.0.0-pre.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmaccess-v7.0.0-pre.1...libnpmaccess-v7.0.0-pre.2): `libnpmaccess@7.0.0-pre.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.0-pre.2...libnpmdiff-v5.0.0-pre.3): `libnpmdiff@5.0.0-pre.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.4...libnpmexec-v5.0.0-pre.5): `libnpmexec@5.0.0-pre.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.4...libnpmfund-v4.0.0-pre.5): `libnpmfund@4.0.0-pre.5`
* [Workspace](https://github.com/npm/cli/compare/libnpmhook-v9.0.0-pre.0...libnpmhook-v9.0.0-pre.1): `libnpmhook@9.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmorg-v5.0.0-pre.0...libnpmorg-v5.0.0-pre.1): `libnpmorg@5.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0-pre.3...libnpmpack-v5.0.0-pre.4): `libnpmpack@5.0.0-pre.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0-pre.3...libnpmpublish-v7.0.0-pre.4): `libnpmpublish@7.0.0-pre.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmsearch-v6.0.0-pre.0...libnpmsearch-v6.0.0-pre.1): `libnpmsearch@6.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmteam-v5.0.0-pre.0...libnpmteam-v5.0.0-pre.1): `libnpmteam@5.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmversion-v4.0.0-pre.0...libnpmversion-v4.0.0-pre.1): `libnpmversion@4.0.0-pre.1`
## [9.0.0-pre.5](https://github.com/npm/cli/compare/v9.0.0-pre.4...v9.0.0-pre.5) (2022-10-13)
### ⚠️ BREAKING CHANGES
* the presence of auth related settings that are not scoped to a specific registry found in a config file is no longer supported and will throw errors
* the `node-version` and `npm-version` configs have been removed.
* links generated from git urls will now use `HEAD` instead of `master` as the default ref
### Features
* [`a09e19d`](https://github.com/npm/cli/commit/a09e19d88f046e54e8d75343883635a1bd056310) [#5696](https://github.com/npm/cli/pull/5696) introduce the `npm config fix` command (@nlf)
* [`d2963c6`](https://github.com/npm/cli/commit/d2963c67b992b9b3b9dd32f6f41cbbe4bcc580c8) explicitly validate config within the cli (@nlf)
* [`a5fec08`](https://github.com/npm/cli/commit/a5fec08348add7e75fa2498e6a9efe608b20aa8b) rewrite docs generation (@lukekarrys)
### Bug Fixes
* [`a35c784`](https://github.com/npm/cli/commit/a35c784f8c25dce05b4173edd6c3f8e7913d7b50) [#5691](https://github.com/npm/cli/pull/5691) config: remove `node-version` and `npm-version` (@wraithgar)
### Documentation
* [`a8532eb`](https://github.com/npm/cli/commit/a8532eb39504584cef452152948e015cef8c010a) [#5661](https://github.com/npm/cli/pull/5661) typo missing parentheses (@hbrls)
* [`542efdb`](https://github.com/npm/cli/commit/542efdb0a31f663cd899bc6d2ddad8fa88c20bc8) update `folders` page for modern npm (@shalvah)
### Dependencies
* [`cee3fd9`](https://github.com/npm/cli/commit/cee3fd9905c7eb0a5cb26a8c9c08c5db48becd15) `@npmcli/config@5.0.0`
* [`2a740b1`](https://github.com/npm/cli/commit/2a740b14c3789d80825b1345f2e99765fcb90351) [#5692](https://github.com/npm/cli/pull/5692) `hosted-git-info@6.0.0`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0-pre.2...libnpmpack-v5.0.0-pre.3): `libnpmpack@5.0.0-pre.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0-pre.2...libnpmpublish-v7.0.0-pre.3): `libnpmpublish@7.0.0-pre.3`
## [9.0.0-pre.4](https://github.com/npm/cli/compare/v9.0.0-pre.3...v9.0.0-pre.4) (2022-10-05)
### Features
* [`9609e9e`](https://github.com/npm/cli/commit/9609e9eed87c735f0319ac0af265f4d406cbf800) [#5605](https://github.com/npm/cli/pull/5605) use v3 lockfiles by default (#5605) (@fritzy)
### Bug Fixes
* [`e4e8ae2`](https://github.com/npm/cli/commit/e4e8ae20aef9e27e57282e87e8757d5b364abb39) libnpmpack: obey foregroundScripts (@winterqt)
* [`07fabc9`](https://github.com/npm/cli/commit/07fabc93007495f0926f4dd24b4350c07d92887d) [#5633](https://github.com/npm/cli/pull/5633) `npm link` should override `--install-links` (#5633) (@fritzy)
* [`02fcbb6`](https://github.com/npm/cli/commit/02fcbb67e6b7cf78cd6dc996570b0ba58132de22) [#5634](https://github.com/npm/cli/pull/5634) ensure Arborist constructor gets passed around everywhere for pacote (#5634) (@nlf)
### Documentation
* [`f37caad`](https://github.com/npm/cli/commit/f37caad9e92c50ae949014f6bee6375d9299fb39) [#5606](https://github.com/npm/cli/pull/5606) accurately describe install-links effect on relative paths (#5606) (@lukekarrys)
* [`97c32ed`](https://github.com/npm/cli/commit/97c32ed24d8fa2edcdbb9448839a1f1c9d8fb86f) [#5637](https://github.com/npm/cli/pull/5637) remove link to cache command (#5637) (@wraithgar)
* [`130bc9f`](https://github.com/npm/cli/commit/130bc9fb31fcff956765493a9e3cec668867c30e) [#5626](https://github.com/npm/cli/pull/5626) Remove circular reference (#5626) (@giovanniPepi)
### Dependencies
* [`5344d2c`](https://github.com/npm/cli/commit/5344d2ca9ffd1f6db473fd58b46b50179f899ff5) [#5644](https://github.com/npm/cli/pull/5644) `pacote@14.0.0`
* [`6a43b31`](https://github.com/npm/cli/commit/6a43b31eab8bd392ed684d2f906259ddfe0f26b5) `@npmcli/metavuln-calculator@4.0.0`
* [`501f8ca`](https://github.com/npm/cli/commit/501f8ca47bb042f19cdfca4026970caf7160f7f6) [#5640](https://github.com/npm/cli/pull/5640) `semver@7.3.8` (#5640)
* [`8b072dc`](https://github.com/npm/cli/commit/8b072dc113190ed49b296a5f02650b7d8cbf384a) [#5639](https://github.com/npm/cli/pull/5639) `@npmcli/ci-detect@3.0.0` (#5639)
* [`1ebbb44`](https://github.com/npm/cli/commit/1ebbb4454c09891ca2c9f9a11432c4a10ccf8c32) [#5638](https://github.com/npm/cli/pull/5638) `npm-profile@7.0.0` (#5638)
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.3...arborist-v6.0.0-pre.4): `@npmcli/arborist@6.0.0-pre.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.0-pre.1...libnpmdiff-v5.0.0-pre.2): `libnpmdiff@5.0.0-pre.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.3...libnpmexec-v5.0.0-pre.4): `libnpmexec@5.0.0-pre.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.3...libnpmfund-v4.0.0-pre.4): `libnpmfund@4.0.0-pre.4`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0-pre.1...libnpmpack-v5.0.0-pre.2): `libnpmpack@5.0.0-pre.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0-pre.1...libnpmpublish-v7.0.0-pre.2): `libnpmpublish@7.0.0-pre.2`
## [9.0.0-pre.3](https://github.com/npm/cli/compare/v9.0.0-pre.2...v9.0.0-pre.3) (2022-09-30)
### ⚠️ BREAKING CHANGES
* `npm pack` now follows a strict order of operations when applying ignore rules. If a files array is present in the package.json, then rules in .gitignore and .npmignore files from the root will be ignored.
* `--timing` file changes:
- When run with the `--timing` flag, `npm` now writes timing data to a
file alongside the debug log data, respecting the `logs-dir` option and
falling back to `<CACHE>/_logs/` dir, instead of directly inside the
cache directory.
- The timing file data is no longer newline delimited JSON, and instead
each run will create a uniquely named `<ID>-timing.json` file, with the
`<ID>` portion being the same as the debug log.
- Finally, the data inside the file now has three top level keys,
`metadata`, `timers, and `unfinishedTimers` instead of everything being
a top level key.
### Features
* [`3ae796d`](https://github.com/npm/cli/commit/3ae796d937bd36a5b1b9fd6e9e8473b4f2ddc32d) implement new `npm-packlist` behavior (@lukekarrys)
* [`e64d69a`](https://github.com/npm/cli/commit/e64d69aedecc0943425605b3a6dc68aec3ad93aa) [#5581](https://github.com/npm/cli/pull/5581) write eresolve error files to the logs directory (@lukekarrys)
* [`3445da0`](https://github.com/npm/cli/commit/3445da0138f9eed9d73d2b3f5f451fcc1fa2e3fe) timings are now written alongside debug log files (@lukekarrys)
### Documentation
* [`f0e7584`](https://github.com/npm/cli/commit/f0e758494698d9dd8a58d07bf71c87608c36869e) [#5601](https://github.com/npm/cli/pull/5601) update docs/logging for new --access default (@wraithgar)
### Dependencies
* [`bc21552`](https://github.com/npm/cli/commit/bc2155247d00b7a868c414f4bc86993069b035f9) [#5603](https://github.com/npm/cli/pull/5603) `npm-package-arg@9.1.2`
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.2...arborist-v6.0.0-pre.3): `@npmcli/arborist@6.0.0-pre.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmdiff-v5.0.0-pre.0...libnpmdiff-v5.0.0-pre.1): `libnpmdiff@5.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.2...libnpmexec-v5.0.0-pre.3): `libnpmexec@5.0.0-pre.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.2...libnpmfund-v4.0.0-pre.3): `libnpmfund@4.0.0-pre.3`
* [Workspace](https://github.com/npm/cli/compare/libnpmpack-v5.0.0-pre.0...libnpmpack-v5.0.0-pre.1): `libnpmpack@5.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmpublish-v7.0.0-pre.0...libnpmpublish-v7.0.0-pre.1): `libnpmpublish@7.0.0-pre.1`
## [9.0.0-pre.2](https://github.com/npm/cli/compare/v9.0.0-pre.1...v9.0.0-pre.2) (2022-09-23)
### ⚠️ BREAKING CHANGES
* the default `auth-type` config value is now `web`
* `login`, `adduser`, and `auth-type` changes
- This removes all `auth-type` configs except `web` and `legacy`.
- `login` and `adduser` are now separate commands that send different data to the registry.
- `auth-type` config values `web` and `legacy` only try
their respective methods, npm no longer tries them all and waits to see
which one doesn't fail.
### Features
* [`66ed584`](https://github.com/npm/cli/commit/66ed58454418dd69c4cd8196ad8499e73f7e46e1) [#5551](https://github.com/npm/cli/pull/5551) default auth-type to web (#5551) (@wraithgar)
* [`6ee5b32`](https://github.com/npm/cli/commit/6ee5b320d2eab58c18d50b861b3cfabe7f24124a) query: display `queryContext` in results (@nlf)
* [`314311c`](https://github.com/npm/cli/commit/314311c61b8f341715c168199d52976ee3237077) [#5550](https://github.com/npm/cli/pull/5550) separate login/adduser, remove auth types (#5550) (@wraithgar)
### Bug Fixes
* [`0d90a01`](https://github.com/npm/cli/commit/0d90a011fff411c878ba4b44582f14ef7dbdceb1) [#5480](https://github.com/npm/cli/pull/5480) audit: add a condition to allow third-party registries returning E400 (#5480) (@juanheyns, Juan Heyns)
### Documentation
* [`2d756cb`](https://github.com/npm/cli/commit/2d756cbb05125dcb769f2ca4c1687e42568d5882) [#5527](https://github.com/npm/cli/pull/5527) add instruction to query objects with npm view (#5527) (@moonith)
* [`8743366`](https://github.com/npm/cli/commit/874336699681ac37857167b2438fac19c059511c) [#5519](https://github.com/npm/cli/pull/5519) add hash to "tag" config link (#5519) (@mrienstra, @lukekarrys)
* [`5645c51`](https://github.com/npm/cli/commit/5645c51410a730c4b9c6831cf81ab22efbe8c0ce) [#5521](https://github.com/npm/cli/pull/5521) link mentions of config parameters (#5521) (@mrienstra)
* [`19762b4`](https://github.com/npm/cli/commit/19762b4ac4b10741ff53ddd315be1fd23d9b1e28) [#5529](https://github.com/npm/cli/pull/5529) modify Misleading doc about bins (@Hafizur046)
* [`19762b4`](https://github.com/npm/cli/commit/19762b4ac4b10741ff53ddd315be1fd23d9b1e28) [#5529](https://github.com/npm/cli/pull/5529) modify misleading doc about package.json:bin (#5529) (@Hafizur046)
* [`8402fd8`](https://github.com/npm/cli/commit/8402fd8780c5e0461850da882dca024f7df1a681) [#5547](https://github.com/npm/cli/pull/5547) add `:outdated` pseudo selector to docs (@nlf)
### Dependencies
* [`d030f10`](https://github.com/npm/cli/commit/d030f10fd535433e5a824df1b099f500a71075dd) `@npmcli/query@2.0.0`
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.1...arborist-v6.0.0-pre.2): `@npmcli/arborist@6.0.0-pre.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.1...libnpmexec-v5.0.0-pre.2): `libnpmexec@5.0.0-pre.2`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.1...libnpmfund-v4.0.0-pre.2): `libnpmfund@4.0.0-pre.2`
## [9.0.0-pre.1](https://github.com/npm/cli/compare/v9.0.0-pre.0...v9.0.0-pre.1) (2022-09-14)
### ⚠️ BREAKING CHANGES
* renames most of the `npm access` subcommands
* the api for libnpmaccess is different now
### Features
* [`9c32c6c`](https://github.com/npm/cli/commit/9c32c6c8d6fc5bdfd6af685731fe26920d7e5446) rewrite: rewrite `npm access` (@wraithgar)
* [`854521b`](https://github.com/npm/cli/commit/854521baa49ef88ff9586ec2cc5f1fbaee7fa364) rewrite: Rewrite libnpmaccess (@wraithgar)
### Bug Fixes
* [`c3d7549`](https://github.com/npm/cli/commit/c3d75499cfd4e3601c6ca31621b2f693af466c4d) add tag to publish log message (@wraithgar)
### Documentation
* [`fd0eebe`](https://github.com/npm/cli/commit/fd0eebe4c2b55dd69972aff7de1b4db14ea6799a) update registry docs header (@hughlilly)
### Dependencies
* [Workspace](https://github.com/npm/cli/compare/arborist-v6.0.0-pre.0...arborist-v6.0.0-pre.1): `@npmcli/arborist@6.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmaccess-v7.0.0-pre.0...libnpmaccess-v7.0.0-pre.1): `libnpmaccess@7.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmexec-v5.0.0-pre.0...libnpmexec-v5.0.0-pre.1): `libnpmexec@5.0.0-pre.1`
* [Workspace](https://github.com/npm/cli/compare/libnpmfund-v4.0.0-pre.0...libnpmfund-v4.0.0-pre.1): `libnpmfund@4.0.0-pre.1`
## [9.0.0-pre.0](https://github.com/npm/cli/compare/v8.19.1...v9.0.0-pre.0) (2022-09-08)
### ⚠ BREAKING CHANGES
* **workspaces:** all workspace packages are now compatible with the following semver range for node: `^14.17.0 || ^16.13.0 || >=18.0.0`
* this removes the `npm birthday` command
* this removes `npm set-script`
* this changes the default value of `install-links` to true
* this removes the `npm bin` command
* `npm` is now compatible with the following semver range for node: `^14.17.0 || ^16.13.0 || >=18.0.0`
### Features
* [`e95017a`](https://github.com/npm/cli/commit/e95017a07b041cbb3293e659dad853f76462c108) [#5485](https://github.com/npm/cli/pull/5485) feat(workspaces): update supported node engines in package.json (@lukekarrys)
* [`49bbb2f`](https://github.com/npm/cli/commit/49bbb2fb9d56e02d94da652befaa3d445283090b) [#5455](https://github.com/npm/cli/pull/5455) feat: remove `npm birthday` (@wraithgar)
* [`926f0ad`](https://github.com/npm/cli/commit/926f0adbd71949c905932a241a245b78c85ef643) [#5456](https://github.com/npm/cli/pull/5456) feat: remove `npm set-script` (@wraithgar)
* [`2a8c2fc`](https://github.com/npm/cli/commit/2a8c2fcd124ce7d4b23a6c26552d097c6501ac74) [#5458](https://github.com/npm/cli/pull/5458) feat: default `install-links` to true (@wraithgar)
* [`2e92800`](https://github.com/npm/cli/commit/2e9280072f9852466fa0944d3a0fdb0c8af156a9) [#5459](https://github.com/npm/cli/pull/5459) feat: remove `npm bin` (@wraithgar)
* [`457d388`](https://github.com/npm/cli/commit/457d388c9a70b4bc6c2421f576c79fb7524ff259) [#5475](https://github.com/npm/cli/pull/5475) feat: update supported node engines in package.json (@wraithgar)
### Bug Fixes
* [`41481f8`](https://github.com/npm/cli/commit/41481f8bc1de0fb92a2d6aab3d4a43292d1a1db7) [#5475](https://github.com/npm/cli/pull/5475) fix: attempt more graceful failure in older node versions (@wraithgar)
### Documentation
* [`7fc2b6f`](https://github.com/npm/cli/commit/7fc2b6f3cc157c8727da9e480f1f552eae2451e2) [#5468](https://github.com/npm/cli/pull/5468) docs: remove duplicate description for `prepare` script (@kidonng)
* [`285b39f`](https://github.com/npm/cli/commit/285b39f8d6915823fb424cca7161a0b445b86bd3) [#5324](https://github.com/npm/cli/pull/5324) docs: add documentation for expanded :semver selector (@nlf)
### Dependencies
* [`037f2cc8c`](https://github.com/npm/cli/commit/037f2cc8c8ed9d9a092475a5a07f2a3a88915633)
[#4078](https://github.com/npm/cli/issues/4078)
`node-gyp@8.4.1`
* [`0e63df612`](https://github.com/npm/cli/commit/0e63df61283a2f7ace991f72e4577c6f23ffc5df)
[#4102](https://github.com/npm/cli/issues/4102)
`@npmcli/config@2.3.2`:
* fix: always load localPrefix
## v8.1.4 (2021-11-18)
### BUG FIXES
* [`7887fb3d7`](https://github.com/npm/cli/commit/7887fb3d7ba7f05abeb49dd92b76d90422cb38ca)
[#4025](https://github.com/npm/cli/issues/4025)
fix: don't try to open file:/// urls
([@wraithgar](https://github.com/wraithgar))
* [`cd6d3a90d`](https://github.com/npm/cli/commit/cd6d3a90d4bbf3793834830b4c77fc8eb0846596)
[#4026](https://github.com/npm/cli/issues/4026)
fix: explicitly allow `npm help` to open file:/// man pages
([@wraithgar](https://github.com/wraithgar))
* [`72ca4a4e3`](https://github.com/npm/cli/commit/72ca4a4e39a1d4de03d6423480aa2ee82b021060)
[#4020](https://github.com/npm/cli/issues/4020)
[#4032](https://github.com/npm/cli/issues/4032)
fix: command completion
([@wraithgar](https://github.com/wraithgar))
* [`b78949134`](https://github.com/npm/cli/commit/b789491345aa6fbe345aa3c96fe9f415296ec418)
[#4023](https://github.com/npm/cli/issues/4023)
fix(install): command completion with single match
([@wraithgar](https://github.com/wraithgar))
* [`44bfa3787`](https://github.com/npm/cli/commit/44bfa378723554195fccf8cf4ca2d895ddbd8f8c)
[#4065](https://github.com/npm/cli/issues/4065)
@npmcli/arborist 4.0.5
* fix: accurate filtering of workspaces `--no-workspaces`
([@fritzy](https://github.com/fritzy))
### DEPENDENCIES
* [`225645420`](https://github.com/npm/cli/commit/225645420cf3d13bc0b0d591f7f7bf21a9c24e47)
[#3995](https://github.com/npm/cli/issues/3995)
update to latest eslint and linting rules
([@wraithgar](https://github.com/wraithgar))
* [`203fedf5b`](https://github.com/npm/cli/commit/203fedf5b1eba78b76ebacbda88f215caabea6ca)
[#4016](https://github.com/npm/cli/issues/4016)
`eslint@8.0.0`: `@npmcli/eslint-config@2.0.0`
* Update to eslint@8 and and `@npmcli/eslint-config@2.0.0`
* Remove eslint-plugin-node.
Also remove an unused script that was failing linting. We don't use the
update-dist-tags script anymore as part of our release process.
([@wraithgar](https://github.com/wraithgar))
* [`7b4aa59b6`](https://github.com/npm/cli/commit/7b4aa59b6630831f25d19c0c15a65acaf3a83327)
`signal-exit@3.0.6`:, `tap@15.1.2`
([@isaacs](https://github.com/isaacs))
* [`08015859c`](https://github.com/npm/cli/commit/08015859ca0abe47845d2970212cd344cdfc56e6)
[#4049](https://github.com/npm/cli/issues/4049)
`npmlog@6.0.0`
* [`088c11694`](https://github.com/npm/cli/commit/088c11694a9f575e5c0fe10ab9efb55d14019be7)
[#4045](https://github.com/npm/cli/issues/4045)
`node-gyp@8.4.0`:
* feat: support vs2022
* feat: build with config.gypi from node headers
## v8.1.3 (2021-11-04)
### BUG FIXES
* [`8ffeb71df`](https://github.com/npm/cli/commit/8ffeb71dfb248b4a76744bd06cd4d6100f17c8ae)
[#3959](https://github.com/npm/cli/issues/3959)
fix: refactor commands
([@wraithgar](https://github.com/wraithgar))
* [`e5bfdaca4`](https://github.com/npm/cli/commit/e5bfdaca455e294109ba026f4d8b5cc80d3dfd20)
[#3978](https://github.com/npm/cli/issues/3978)
fix: shrinkwrap setting incorrect lockfileVersion
([@lukekarrys](https://github.com/lukekarrys))
* [`32ccd3c27`](https://github.com/npm/cli/commit/32ccd3c2767a14198a1803f04e747ef848f7c938)
[#3988](https://github.com/npm/cli/issues/3988)
fix: remove usage of unnecessary util.promisify
([@lukekarrys](https://github.com/lukekarrys))
* [`1e9c31c4e`](https://github.com/npm/cli/commit/1e9c31c4e3929483580a0a554d7515095b5418ca)
[#3994](https://github.com/npm/cli/issues/3994)
fix: npm help on windows
([@wraithgar](https://github.com/wraithgar))
* [`22230ef3d`](https://github.com/npm/cli/commit/22230ef3dd590def31c274b3412106b4cfbd212f)
[#3987](https://github.com/npm/cli/issues/3987)
fix: make prefixed usage errors more consistent
([@lukekarrys](https://github.com/lukekarrys))
### DEPENDENCIES
* [`ac2fabb86`](https://github.com/npm/cli/commit/ac2fabb8604db0dac852913d61c8415ae7464485)
[#3990](https://github.com/npm/cli/issues/3990)
`@npmcli/arborist@4.0.4`
* fix: don't compare spec for local dep vs existing
* fix: stop pruning peerSets when entryEdge is from a workspace
* [`a0d35ff20`](https://github.com/npm/cli/commit/a0d35ff20aed6aab8508123eb540bc9c61fb127d)
[#3996](https://github.com/npm/cli/issues/3996)
`@npmcli/config@2.3.1`:
* fix: dont load project configs in global mode
## v8.1.2 (2021-10-28)
### BUG FIXES
* [`cb9f43551`](https://github.com/npm/cli/commit/cb9f43551f46bf27095cd7bd6c1885a441004cd2)
[#3949](https://github.com/npm/cli/issues/3949)
allow `--lockfile-version` config to be string and coerce to number ([@lukekarrys](https://github.com/lukekarrys))
* [`070901d7a`](https://github.com/npm/cli/commit/070901d7a6e3110a04ef41d8fcf14ffbfcce1496)
[#3943](https://github.com/npm/cli/issues/3943)
fix(publish): clean args before logging
([@wraithgar](https://github.com/wraithgar))
### DEPENDENCIES
* [`8af94726b`](https://github.com/npm/cli/commit/8af94726b098031c7c0cae7ed50cc4e2e3499181)
[#3953](https://github.com/npm/cli/issues/3953)
`arborist@4.0.3`
* [`38cee94`](https://github.com/npm/arborist/commit/38cee94afa53d578830cc282348a803a8a6eefad)
[#340](https://github.com/npm/arborist/pull/340)
fix: set lockfileVersion from file during reset
* [`d310bd3`](https://github.com/npm/arborist/commit/d310bd3290c3a81e8285ceeb6eda9c9b5aa867d7)
[#339](https://github.com/npm/arborist/pull/339)
fix: always set originalLockfileVersion when doing shrinkwrap reset
## v8.1.1 (2021-10-21)
### DEPENDENCIES
* [`51fb83ce9`](https://github.com/npm/cli/commit/51fb83ce93fdd7e289da7b2aabc95b0518f0aa31)
[#3921](https://github.com/npm/cli/issues/3921)
`@npmcli/arborist@4.0.2`:
* fix: skip peer conflict check if there is a current node
* [`1d07f2187`](https://github.com/npm/cli/commit/1d07f21876994c6d4d69559203cfdac6022536b6)
[#3913](https://github.com/npm/cli/issues/3913)
`node-gyp@8.3.0`:
* feat(gyp): update gyp to v0.10.0
## v8.1.0 (2021-10-14)
### FEATURES
* [`24273a862`](https://github.com/npm/cli/commit/24273a862e54abfd022df9fc4b8c250bfe77817c)
[#3890](https://github.com/npm/cli/issues/3890)
feat(workspaces): add --include-workspace-root and explicit --no-workspaces
([@fritzy](https://github.com/fritzy))
* [`d559d6da8`](https://github.com/npm/cli/commit/d559d6da84c2dae960c6b7c89c6012fb31bcfa37)
[#3880](https://github.com/npm/cli/issues/3880)
feat(config): Add --lockfile-version config option
([@isaacs](https://github.com/isaacs))
### DEPENDENCIES
* [`ae4bf013d`](https://github.com/npm/cli/commit/ae4bf013d06d84b8600937a28cc7b4c4034f571c)
[#3883](https://github.com/npm/cli/issues/3883)
`pacote@12.0.2`:
* fix: preserve git+ssh url for non-hosted repos
* deps: update `npm-packlist@3.0.0`
* fix: no longer include ignored bundled link deps
* [`fbc5a3d08`](https://github.com/npm/cli/commit/fbc5a3d08231176b9d8a7b9dd3371fb40ba6abc9)
[#3889](https://github.com/npm/cli/issues/3889)
`@npmcli/ci-detect@1.4.0`
* [`b6bc279e5`](https://github.com/npm/cli/commit/b6bc279e55aa65afff09d9258f9df7168a7dbadb)
`@npmcli/arborist@4.0.1`
* [`0f69d295b`](https://github.com/npm/cli/commit/0f69d295bd5516f496af75ef29e7ae6304fa2ba5)
[#3893](https://github.com/npm/cli/issues/3893)
`@npmcli/map-workspaces@2.0.0`
### DOCUMENTATION
* [`f77932ca1`](https://github.com/npm/cli/commit/f77932ca1eafbece16fc249a7470f760d652bd94)
[#3861](https://github.com/npm/cli/issues/3861)
fix(docs): Update Node support in README
([@gfyoung](https://github.com/gfyoung))
* [`a190f422a`](https://github.com/npm/cli/commit/a190f422a2587a0e56afa5032175e57e55123ea2)
[#3878](https://github.com/npm/cli/issues/3878)
fix(docs): grammar fix
([@XhmikosR](https://github.com/XhmikosR))
## v8.0.0 (2021-10-07)
The purpose of this release is to drop support for old node versions and
to remove support for `require('npm')`. There are no other breaking
changes.
### BREAKING CHANGES
* Drop support for node 10 and 11
* Raise support ceiling in node 12 and 14 to LTS (^12.13.0/^14.15.0)
* Drop support to `require('npm')`
* Update subdependencies that also dropped node10 support
### DEPENDENCIES
* The following dependencies were updated to drop node10 support and
update to the latest node-gyp
* libnpmversion@2.0.1
* pacote@12.0.0
* libnpmpack@3.0.0
* @npmcli/arborist@3.0.0
* libnpmfund@2.0.0
* libnpmexec@3.0.0
* node-gyp@8.2.0
* [`8bd85cdae`](https://github.com/npm/cli/commit/8bd85cdae5eead60d5e92d6f1be27e88b480b1cb)
[#3813](https://github.com/npm/cli/issues/3813)
`cli-columns@4.0.0`
* The following workspace dependencies were updated
* dependencies
* @npmcli/arborist bumped from ^5.6.1 to ^6.0.0-pre.0
* libnpmaccess bumped from ^6.0.4 to ^7.0.0-pre.0
* libnpmdiff bumped from ^4.0.5 to ^5.0.0-pre.0
* libnpmexec bumped from ^4.0.12 to ^5.0.0-pre.0
* libnpmfund bumped from ^3.0.3 to ^4.0.0-pre.0
* libnpmhook bumped from ^8.0.4 to ^9.0.0-pre.0
* libnpmorg bumped from ^4.0.4 to ^5.0.0-pre.0
* libnpmpack bumped from ^4.1.3 to ^5.0.0-pre.0
* libnpmpublish bumped from ^6.0.5 to ^7.0.0-pre.0
* libnpmsearch bumped from ^5.0.4 to ^6.0.0-pre.0
* libnpmteam bumped from ^4.0.4 to ^5.0.0-pre.0
* libnpmversion bumped from ^3.0.7 to ^4.0.0-pre.0

7
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,7 @@
<!-- This file is automatically added by @npmcli/template-oss. Do not edit. -->
All interactions in this repo are covered by the [npm Code of
Conduct](https://docs.npmjs.com/policies/conduct)
The npm cli team may, at its own discretion, moderate, remove, or edit
any interactions such as pull requests, issues, and comments.

View File

@ -19,7 +19,7 @@ $ git clone git@github.com:npm/cli.git npm
**2. Navigate into project & install development-specific dependencies...**
```bash
$ cd ./npm && npm install
$ cd ./npm && node . install
```
**3. Write some code &/or add some tests...**
@ -30,20 +30,23 @@ $ cd ./npm && npm install
**4. Run tests & ensure they pass...**
```
$ npm run test
$ node . run test
```
**5. Open a [Pull Request](https://github.com/npm/cli/pulls) for your work & become the newest contributor to `npm`! 🎉**
## Pull Request Conventions
We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). When opening a pull request, please be sure that either the pull request title, or each commit in the pull request, has one of the following prefixes:
- `feat`: For when introducing a new feature. The result will be a new semver minor version of the package when it is next published.
- `fix`: For bug fixes. The result will be a new semver patch version of the package when it is next published.
- `docs`: For documentation updates. The result will be a new semver patch version of the package when it is next published.
- `chore`: For changes that do not affect the published module. Often these are changes to tests. The result will be *no* change to the version of the package when it is next published (as the commit does not affect the published version).
## Test Coverage
We use [`tap`](https://node-tap.org/) for testing & expect that every new feature or bug fix comes with corresponding tests that validate the solutions. We strive to have as close to, if not exactly, 100% code coverage.
**You can find out what the current test coverage percentage is by running...**
```bash
$ npm run check-coverage
```
We use [`tap`](https://node-tap.org/) for testing & expect that every new feature or bug fix comes with corresponding tests that validate the solutions. Tap also reports on code coverage and it will fail if that drops below 100%.
## Performance & Benchmarks

790
DEPENDENCIES.md Normal file
View File

@ -0,0 +1,790 @@
# npm dependencies
## `github.com/npm/` only
```mermaid
graph LR;
bin-links-->cmd-shim;
bin-links-->npm-normalize-package-bin;
bin-links-->read-cmd-shim;
bin-links-->write-file-atomic;
cacache-->fs-minipass;
cacache-->npmcli-fs["@npmcli/fs"];
cacache-->ssri;
cacache-->unique-filename;
init-package-json-->npm-package-arg;
init-package-json-->promzard;
init-package-json-->read-package-json;
init-package-json-->read;
init-package-json-->semver;
init-package-json-->validate-npm-package-name;
libnpmaccess-->npm-package-arg;
libnpmaccess-->npm-registry-fetch;
libnpmaccess-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmaccess-->npmcli-mock-registry["@npmcli/mock-registry"];
libnpmaccess-->npmcli-template-oss["@npmcli/template-oss"];
libnpmdiff-->npm-package-arg;
libnpmdiff-->npmcli-arborist["@npmcli/arborist"];
libnpmdiff-->npmcli-disparity-colors["@npmcli/disparity-colors"];
libnpmdiff-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmdiff-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
libnpmdiff-->npmcli-template-oss["@npmcli/template-oss"];
libnpmdiff-->pacote;
libnpmexec-->bin-links;
libnpmexec-->minify-registry-metadata;
libnpmexec-->npm-package-arg;
libnpmexec-->npmcli-arborist["@npmcli/arborist"];
libnpmexec-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmexec-->npmcli-mock-registry["@npmcli/mock-registry"];
libnpmexec-->npmcli-run-script["@npmcli/run-script"];
libnpmexec-->npmcli-template-oss["@npmcli/template-oss"];
libnpmexec-->npmlog;
libnpmexec-->pacote;
libnpmexec-->proc-log;
libnpmexec-->read-package-json-fast;
libnpmexec-->read;
libnpmexec-->semver;
libnpmfund-->npmcli-arborist["@npmcli/arborist"];
libnpmfund-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmfund-->npmcli-template-oss["@npmcli/template-oss"];
libnpmhook-->npm-registry-fetch;
libnpmhook-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmhook-->npmcli-template-oss["@npmcli/template-oss"];
libnpmorg-->npm-registry-fetch;
libnpmorg-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmorg-->npmcli-template-oss["@npmcli/template-oss"];
libnpmpack-->npm-package-arg;
libnpmpack-->npmcli-arborist["@npmcli/arborist"];
libnpmpack-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmpack-->npmcli-run-script["@npmcli/run-script"];
libnpmpack-->npmcli-template-oss["@npmcli/template-oss"];
libnpmpack-->pacote;
libnpmpublish-->libnpmpack;
libnpmpublish-->normalize-package-data;
libnpmpublish-->npm-package-arg;
libnpmpublish-->npm-registry-fetch;
libnpmpublish-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmpublish-->npmcli-template-oss["@npmcli/template-oss"];
libnpmpublish-->semver;
libnpmpublish-->ssri;
libnpmsearch-->npm-registry-fetch;
libnpmsearch-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmsearch-->npmcli-template-oss["@npmcli/template-oss"];
libnpmteam-->npm-registry-fetch;
libnpmteam-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmteam-->npmcli-template-oss["@npmcli/template-oss"];
libnpmversion-->json-parse-even-better-errors;
libnpmversion-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmversion-->npmcli-git["@npmcli/git"];
libnpmversion-->npmcli-run-script["@npmcli/run-script"];
libnpmversion-->npmcli-template-oss["@npmcli/template-oss"];
libnpmversion-->proc-log;
libnpmversion-->semver;
make-fetch-happen-->cacache;
make-fetch-happen-->minipass-fetch;
make-fetch-happen-->ssri;
nopt-->abbrev;
normalize-package-data-->hosted-git-info;
normalize-package-data-->semver;
npm-->abbrev;
npm-->cacache;
npm-->fs-minipass;
npm-->hosted-git-info;
npm-->ini;
npm-->init-package-json;
npm-->json-parse-even-better-errors;
npm-->libnpmaccess;
npm-->libnpmdiff;
npm-->libnpmexec;
npm-->libnpmfund;
npm-->libnpmhook;
npm-->libnpmorg;
npm-->libnpmpack;
npm-->libnpmpublish;
npm-->libnpmsearch;
npm-->libnpmteam;
npm-->libnpmversion;
npm-->make-fetch-happen;
npm-->nopt;
npm-->npm-audit-report;
npm-->npm-install-checks;
npm-->npm-package-arg;
npm-->npm-packlist;
npm-->npm-pick-manifest;
npm-->npm-profile;
npm-->npm-registry-fetch;
npm-->npm-user-validate;
npm-->npmcli-arborist["@npmcli/arborist"];
npm-->npmcli-config["@npmcli/config"];
npm-->npmcli-docs["@npmcli/docs"];
npm-->npmcli-eslint-config["@npmcli/eslint-config"];
npm-->npmcli-fs["@npmcli/fs"];
npm-->npmcli-git["@npmcli/git"];
npm-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npm-->npmcli-mock-registry["@npmcli/mock-registry"];
npm-->npmcli-package-json["@npmcli/package-json"];
npm-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npm-->npmcli-run-script["@npmcli/run-script"];
npm-->npmcli-smoke-tests["@npmcli/smoke-tests"];
npm-->npmcli-template-oss["@npmcli/template-oss"];
npm-->npmlog;
npm-->pacote;
npm-->parse-conflict-json;
npm-->proc-log;
npm-->read-package-json-fast;
npm-->read-package-json;
npm-->read;
npm-->semver;
npm-->ssri;
npm-->treeverse;
npm-->validate-npm-package-name;
npm-->write-file-atomic;
npm-bundled-->npm-normalize-package-bin;
npm-install-checks-->semver;
npm-package-arg-->hosted-git-info;
npm-package-arg-->proc-log;
npm-package-arg-->semver;
npm-package-arg-->validate-npm-package-name;
npm-packlist-->ignore-walk;
npm-pick-manifest-->npm-install-checks;
npm-pick-manifest-->npm-normalize-package-bin;
npm-pick-manifest-->npm-package-arg;
npm-pick-manifest-->semver;
npm-profile-->npm-registry-fetch;
npm-profile-->proc-log;
npm-registry-fetch-->make-fetch-happen;
npm-registry-fetch-->minipass-fetch;
npm-registry-fetch-->npm-package-arg;
npm-registry-fetch-->proc-log;
npmcli-arborist-->bin-links;
npmcli-arborist-->cacache;
npmcli-arborist-->hosted-git-info;
npmcli-arborist-->json-parse-even-better-errors;
npmcli-arborist-->minify-registry-metadata;
npmcli-arborist-->nopt;
npmcli-arborist-->npm-install-checks;
npmcli-arborist-->npm-package-arg;
npmcli-arborist-->npm-pick-manifest;
npmcli-arborist-->npm-registry-fetch;
npmcli-arborist-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-arborist-->npmcli-fs["@npmcli/fs"];
npmcli-arborist-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
npmcli-arborist-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npmcli-arborist-->npmcli-metavuln-calculator["@npmcli/metavuln-calculator"];
npmcli-arborist-->npmcli-name-from-folder["@npmcli/name-from-folder"];
npmcli-arborist-->npmcli-node-gyp["@npmcli/node-gyp"];
npmcli-arborist-->npmcli-package-json["@npmcli/package-json"];
npmcli-arborist-->npmcli-query["@npmcli/query"];
npmcli-arborist-->npmcli-run-script["@npmcli/run-script"];
npmcli-arborist-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-arborist-->npmlog;
npmcli-arborist-->pacote;
npmcli-arborist-->parse-conflict-json;
npmcli-arborist-->proc-log;
npmcli-arborist-->read-package-json-fast;
npmcli-arborist-->semver;
npmcli-arborist-->ssri;
npmcli-arborist-->treeverse;
npmcli-config-->ini;
npmcli-config-->nopt;
npmcli-config-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-config-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npmcli-config-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-config-->proc-log;
npmcli-config-->read-package-json-fast;
npmcli-config-->semver;
npmcli-docs-->ignore-walk;
npmcli-docs-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-docs-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-fs-->semver;
npmcli-git-->npm-pick-manifest;
npmcli-git-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-git-->proc-log;
npmcli-git-->semver;
npmcli-installed-package-contents-->npm-bundled;
npmcli-installed-package-contents-->npm-normalize-package-bin;
npmcli-map-workspaces-->npmcli-name-from-folder["@npmcli/name-from-folder"];
npmcli-map-workspaces-->read-package-json-fast;
npmcli-metavuln-calculator-->cacache;
npmcli-metavuln-calculator-->json-parse-even-better-errors;
npmcli-metavuln-calculator-->pacote;
npmcli-metavuln-calculator-->semver;
npmcli-mock-registry-->npm-package-arg;
npmcli-mock-registry-->npmcli-arborist["@npmcli/arborist"];
npmcli-mock-registry-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-mock-registry-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-mock-registry-->pacote;
npmcli-package-json-->json-parse-even-better-errors;
npmcli-run-script-->npmcli-node-gyp["@npmcli/node-gyp"];
npmcli-run-script-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-run-script-->read-package-json-fast;
npmcli-smoke-tests-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-smoke-tests-->npmcli-mock-registry["@npmcli/mock-registry"];
npmcli-smoke-tests-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-smoke-tests-->npmcli-template-oss["@npmcli/template-oss"];
npmlog-->are-we-there-yet;
npmlog-->gauge;
pacote-->cacache;
pacote-->fs-minipass;
pacote-->npm-package-arg;
pacote-->npm-packlist;
pacote-->npm-pick-manifest;
pacote-->npm-registry-fetch;
pacote-->npmcli-git["@npmcli/git"];
pacote-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
pacote-->npmcli-promise-spawn["@npmcli/promise-spawn"];
pacote-->npmcli-run-script["@npmcli/run-script"];
pacote-->proc-log;
pacote-->read-package-json-fast;
pacote-->read-package-json;
pacote-->ssri;
parse-conflict-json-->json-parse-even-better-errors;
promzard-->read;
read-->mute-stream;
read-package-json-->json-parse-even-better-errors;
read-package-json-->normalize-package-data;
read-package-json-->npm-normalize-package-bin;
read-package-json-fast-->json-parse-even-better-errors;
read-package-json-fast-->npm-normalize-package-bin;
unique-filename-->unique-slug;
```
## all dependencies
```mermaid
graph LR;
agent-base-->debug;
agentkeepalive-->debug;
agentkeepalive-->depd;
agentkeepalive-->humanize-ms;
aggregate-error-->clean-stack;
aggregate-error-->indent-string;
ansi-styles-->color-convert;
are-we-there-yet-->delegates;
are-we-there-yet-->readable-stream;
bin-links-->cmd-shim;
bin-links-->npm-normalize-package-bin;
bin-links-->read-cmd-shim;
bin-links-->write-file-atomic;
brace-expansion-->balanced-match;
builtins-->semver;
cacache-->chownr;
cacache-->fs-minipass;
cacache-->glob;
cacache-->infer-owner;
cacache-->lru-cache;
cacache-->minipass-collect;
cacache-->minipass-flush;
cacache-->minipass-pipeline;
cacache-->minipass;
cacache-->mkdirp;
cacache-->npmcli-fs["@npmcli/fs"];
cacache-->npmcli-move-file["@npmcli/move-file"];
cacache-->p-map;
cacache-->promise-inflight;
cacache-->rimraf;
cacache-->ssri;
cacache-->tar;
cacache-->unique-filename;
chalk-->ansi-styles;
chalk-->supports-color;
cidr-regex-->ip-regex;
cli-columns-->string-width;
cli-columns-->strip-ansi;
cli-table3-->colors-colors["@colors/colors"];
cli-table3-->string-width;
color-convert-->color-name;
columnify-->strip-ansi;
columnify-->wcwidth;
debug-->ms;
defaults-->clone;
encoding-->iconv-lite;
fs-minipass-->minipass;
gauge-->aproba;
gauge-->color-support;
gauge-->console-control-strings;
gauge-->has-unicode;
gauge-->signal-exit;
gauge-->string-width;
gauge-->strip-ansi;
gauge-->wide-align;
glob-->fs.realpath;
glob-->inflight;
glob-->inherits;
glob-->minimatch;
glob-->once;
glob-->path-is-absolute;
has-->function-bind;
hosted-git-info-->lru-cache;
http-proxy-agent-->agent-base;
http-proxy-agent-->debug;
http-proxy-agent-->tootallnate-once["@tootallnate/once"];
https-proxy-agent-->agent-base;
https-proxy-agent-->debug;
humanize-ms-->ms;
iconv-lite-->safer-buffer;
ignore-walk-->minimatch;
inflight-->once;
inflight-->wrappy;
init-package-json-->npm-package-arg;
init-package-json-->promzard;
init-package-json-->read-package-json;
init-package-json-->read;
init-package-json-->semver;
init-package-json-->validate-npm-package-license;
init-package-json-->validate-npm-package-name;
is-cidr-->cidr-regex;
is-core-module-->has;
libnpmaccess-->nock;
libnpmaccess-->npm-package-arg;
libnpmaccess-->npm-registry-fetch;
libnpmaccess-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmaccess-->npmcli-mock-registry["@npmcli/mock-registry"];
libnpmaccess-->npmcli-template-oss["@npmcli/template-oss"];
libnpmaccess-->tap;
libnpmdiff-->binary-extensions;
libnpmdiff-->diff;
libnpmdiff-->minimatch;
libnpmdiff-->npm-package-arg;
libnpmdiff-->npmcli-arborist["@npmcli/arborist"];
libnpmdiff-->npmcli-disparity-colors["@npmcli/disparity-colors"];
libnpmdiff-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmdiff-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
libnpmdiff-->npmcli-template-oss["@npmcli/template-oss"];
libnpmdiff-->pacote;
libnpmdiff-->tap;
libnpmdiff-->tar;
libnpmexec-->bin-links;
libnpmexec-->chalk;
libnpmexec-->ci-info;
libnpmexec-->just-extend;
libnpmexec-->just-safe-set;
libnpmexec-->minify-registry-metadata;
libnpmexec-->mkdirp;
libnpmexec-->npm-package-arg;
libnpmexec-->npmcli-arborist["@npmcli/arborist"];
libnpmexec-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmexec-->npmcli-mock-registry["@npmcli/mock-registry"];
libnpmexec-->npmcli-run-script["@npmcli/run-script"];
libnpmexec-->npmcli-template-oss["@npmcli/template-oss"];
libnpmexec-->npmlog;
libnpmexec-->pacote;
libnpmexec-->proc-log;
libnpmexec-->read-package-json-fast;
libnpmexec-->read;
libnpmexec-->semver;
libnpmexec-->tap;
libnpmexec-->walk-up-path;
libnpmfund-->npmcli-arborist["@npmcli/arborist"];
libnpmfund-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmfund-->npmcli-template-oss["@npmcli/template-oss"];
libnpmfund-->tap;
libnpmhook-->aproba;
libnpmhook-->nock;
libnpmhook-->npm-registry-fetch;
libnpmhook-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmhook-->npmcli-template-oss["@npmcli/template-oss"];
libnpmhook-->tap;
libnpmorg-->aproba;
libnpmorg-->minipass;
libnpmorg-->nock;
libnpmorg-->npm-registry-fetch;
libnpmorg-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmorg-->npmcli-template-oss["@npmcli/template-oss"];
libnpmorg-->tap;
libnpmpack-->nock;
libnpmpack-->npm-package-arg;
libnpmpack-->npmcli-arborist["@npmcli/arborist"];
libnpmpack-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmpack-->npmcli-run-script["@npmcli/run-script"];
libnpmpack-->npmcli-template-oss["@npmcli/template-oss"];
libnpmpack-->pacote;
libnpmpack-->spawk;
libnpmpack-->tap;
libnpmpublish-->libnpmpack;
libnpmpublish-->lodash.clonedeep;
libnpmpublish-->nock;
libnpmpublish-->normalize-package-data;
libnpmpublish-->npm-package-arg;
libnpmpublish-->npm-registry-fetch;
libnpmpublish-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmpublish-->npmcli-template-oss["@npmcli/template-oss"];
libnpmpublish-->semver;
libnpmpublish-->ssri;
libnpmpublish-->tap;
libnpmsearch-->nock;
libnpmsearch-->npm-registry-fetch;
libnpmsearch-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmsearch-->npmcli-template-oss["@npmcli/template-oss"];
libnpmsearch-->tap;
libnpmteam-->aproba;
libnpmteam-->nock;
libnpmteam-->npm-registry-fetch;
libnpmteam-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmteam-->npmcli-template-oss["@npmcli/template-oss"];
libnpmteam-->tap;
libnpmversion-->json-parse-even-better-errors;
libnpmversion-->npmcli-eslint-config["@npmcli/eslint-config"];
libnpmversion-->npmcli-git["@npmcli/git"];
libnpmversion-->npmcli-run-script["@npmcli/run-script"];
libnpmversion-->npmcli-template-oss["@npmcli/template-oss"];
libnpmversion-->proc-log;
libnpmversion-->require-inject;
libnpmversion-->semver;
libnpmversion-->tap;
lru-cache-->yallist;
make-fetch-happen-->agentkeepalive;
make-fetch-happen-->cacache;
make-fetch-happen-->http-cache-semantics;
make-fetch-happen-->http-proxy-agent;
make-fetch-happen-->https-proxy-agent;
make-fetch-happen-->is-lambda;
make-fetch-happen-->lru-cache;
make-fetch-happen-->minipass-collect;
make-fetch-happen-->minipass-fetch;
make-fetch-happen-->minipass-flush;
make-fetch-happen-->minipass-pipeline;
make-fetch-happen-->minipass;
make-fetch-happen-->negotiator;
make-fetch-happen-->promise-retry;
make-fetch-happen-->socks-proxy-agent;
make-fetch-happen-->ssri;
minimatch-->brace-expansion;
minipass-->yallist;
minipass-collect-->minipass;
minipass-fetch-->encoding;
minipass-fetch-->minipass-sized;
minipass-fetch-->minipass;
minipass-fetch-->minizlib;
minipass-flush-->minipass;
minipass-json-stream-->jsonparse;
minipass-json-stream-->minipass;
minipass-pipeline-->minipass;
minipass-sized-->minipass;
minizlib-->minipass;
minizlib-->yallist;
node-gyp-->env-paths;
node-gyp-->glob;
node-gyp-->graceful-fs;
node-gyp-->make-fetch-happen;
node-gyp-->nopt;
node-gyp-->npmlog;
node-gyp-->rimraf;
node-gyp-->semver;
node-gyp-->tar;
node-gyp-->which;
nopt-->abbrev;
normalize-package-data-->hosted-git-info;
normalize-package-data-->is-core-module;
normalize-package-data-->semver;
normalize-package-data-->validate-npm-package-license;
npm-->abbrev;
npm-->archy;
npm-->cacache;
npm-->chalk;
npm-->ci-info;
npm-->cli-columns;
npm-->cli-table3;
npm-->columnify;
npm-->fastest-levenshtein;
npm-->fs-minipass;
npm-->glob;
npm-->graceful-fs;
npm-->hosted-git-info;
npm-->ini;
npm-->init-package-json;
npm-->is-cidr;
npm-->isaacs-string-locale-compare["@isaacs/string-locale-compare"];
npm-->json-parse-even-better-errors;
npm-->libnpmaccess;
npm-->libnpmdiff;
npm-->libnpmexec;
npm-->libnpmfund;
npm-->libnpmhook;
npm-->libnpmorg;
npm-->libnpmpack;
npm-->libnpmpublish;
npm-->libnpmsearch;
npm-->libnpmteam;
npm-->libnpmversion;
npm-->licensee;
npm-->make-fetch-happen;
npm-->minimatch;
npm-->minipass-pipeline;
npm-->minipass;
npm-->mkdirp;
npm-->ms;
npm-->nock;
npm-->node-gyp;
npm-->nopt;
npm-->npm-audit-report;
npm-->npm-install-checks;
npm-->npm-package-arg;
npm-->npm-packlist;
npm-->npm-pick-manifest;
npm-->npm-profile;
npm-->npm-registry-fetch;
npm-->npm-user-validate;
npm-->npmcli-arborist["@npmcli/arborist"];
npm-->npmcli-config["@npmcli/config"];
npm-->npmcli-docs["@npmcli/docs"];
npm-->npmcli-eslint-config["@npmcli/eslint-config"];
npm-->npmcli-fs["@npmcli/fs"];
npm-->npmcli-git["@npmcli/git"];
npm-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npm-->npmcli-mock-registry["@npmcli/mock-registry"];
npm-->npmcli-package-json["@npmcli/package-json"];
npm-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npm-->npmcli-run-script["@npmcli/run-script"];
npm-->npmcli-smoke-tests["@npmcli/smoke-tests"];
npm-->npmcli-template-oss["@npmcli/template-oss"];
npm-->npmlog;
npm-->p-map;
npm-->pacote;
npm-->parse-conflict-json;
npm-->proc-log;
npm-->qrcode-terminal;
npm-->read-package-json-fast;
npm-->read-package-json;
npm-->read;
npm-->remark-gfm;
npm-->remark-github;
npm-->remark;
npm-->rimraf;
npm-->semver;
npm-->spawk;
npm-->ssri;
npm-->tap;
npm-->tar;
npm-->text-table;
npm-->tiny-relative-date;
npm-->treeverse;
npm-->validate-npm-package-name;
npm-->which;
npm-->write-file-atomic;
npm-audit-report-->chalk;
npm-bundled-->npm-normalize-package-bin;
npm-install-checks-->semver;
npm-package-arg-->hosted-git-info;
npm-package-arg-->proc-log;
npm-package-arg-->semver;
npm-package-arg-->validate-npm-package-name;
npm-packlist-->ignore-walk;
npm-pick-manifest-->npm-install-checks;
npm-pick-manifest-->npm-normalize-package-bin;
npm-pick-manifest-->npm-package-arg;
npm-pick-manifest-->semver;
npm-profile-->npm-registry-fetch;
npm-profile-->proc-log;
npm-registry-fetch-->make-fetch-happen;
npm-registry-fetch-->minipass-fetch;
npm-registry-fetch-->minipass-json-stream;
npm-registry-fetch-->minipass;
npm-registry-fetch-->minizlib;
npm-registry-fetch-->npm-package-arg;
npm-registry-fetch-->proc-log;
npmcli-arborist-->benchmark;
npmcli-arborist-->bin-links;
npmcli-arborist-->cacache;
npmcli-arborist-->chalk;
npmcli-arborist-->common-ancestor-path;
npmcli-arborist-->hosted-git-info;
npmcli-arborist-->isaacs-string-locale-compare["@isaacs/string-locale-compare"];
npmcli-arborist-->json-parse-even-better-errors;
npmcli-arborist-->json-stringify-nice;
npmcli-arborist-->minify-registry-metadata;
npmcli-arborist-->minimatch;
npmcli-arborist-->nock;
npmcli-arborist-->nopt;
npmcli-arborist-->npm-install-checks;
npmcli-arborist-->npm-package-arg;
npmcli-arborist-->npm-pick-manifest;
npmcli-arborist-->npm-registry-fetch;
npmcli-arborist-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-arborist-->npmcli-fs["@npmcli/fs"];
npmcli-arborist-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
npmcli-arborist-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npmcli-arborist-->npmcli-metavuln-calculator["@npmcli/metavuln-calculator"];
npmcli-arborist-->npmcli-name-from-folder["@npmcli/name-from-folder"];
npmcli-arborist-->npmcli-node-gyp["@npmcli/node-gyp"];
npmcli-arborist-->npmcli-package-json["@npmcli/package-json"];
npmcli-arborist-->npmcli-query["@npmcli/query"];
npmcli-arborist-->npmcli-run-script["@npmcli/run-script"];
npmcli-arborist-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-arborist-->npmlog;
npmcli-arborist-->pacote;
npmcli-arborist-->parse-conflict-json;
npmcli-arborist-->proc-log;
npmcli-arborist-->promise-all-reject-late;
npmcli-arborist-->promise-call-limit;
npmcli-arborist-->read-package-json-fast;
npmcli-arborist-->semver;
npmcli-arborist-->ssri;
npmcli-arborist-->tap;
npmcli-arborist-->tcompare;
npmcli-arborist-->treeverse;
npmcli-arborist-->walk-up-path;
npmcli-config-->ini;
npmcli-config-->nopt;
npmcli-config-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-config-->npmcli-map-workspaces["@npmcli/map-workspaces"];
npmcli-config-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-config-->proc-log;
npmcli-config-->read-package-json-fast;
npmcli-config-->semver;
npmcli-config-->tap;
npmcli-config-->walk-up-path;
npmcli-disparity-colors-->ansi-styles;
npmcli-docs-->front-matter;
npmcli-docs-->ignore-walk;
npmcli-docs-->isaacs-string-locale-compare["@isaacs/string-locale-compare"];
npmcli-docs-->jsdom;
npmcli-docs-->mkdirp;
npmcli-docs-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-docs-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-docs-->rehype-stringify;
npmcli-docs-->remark-gfm;
npmcli-docs-->remark-man;
npmcli-docs-->remark-parse;
npmcli-docs-->remark-rehype;
npmcli-docs-->tap;
npmcli-docs-->unified;
npmcli-docs-->yaml;
npmcli-fs-->semver;
npmcli-git-->lru-cache;
npmcli-git-->mkdirp;
npmcli-git-->npm-pick-manifest;
npmcli-git-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-git-->proc-log;
npmcli-git-->promise-inflight;
npmcli-git-->promise-retry;
npmcli-git-->semver;
npmcli-git-->which;
npmcli-installed-package-contents-->npm-bundled;
npmcli-installed-package-contents-->npm-normalize-package-bin;
npmcli-map-workspaces-->glob;
npmcli-map-workspaces-->minimatch;
npmcli-map-workspaces-->npmcli-name-from-folder["@npmcli/name-from-folder"];
npmcli-map-workspaces-->read-package-json-fast;
npmcli-metavuln-calculator-->cacache;
npmcli-metavuln-calculator-->json-parse-even-better-errors;
npmcli-metavuln-calculator-->pacote;
npmcli-metavuln-calculator-->semver;
npmcli-mock-registry-->nock;
npmcli-mock-registry-->npm-package-arg;
npmcli-mock-registry-->npmcli-arborist["@npmcli/arborist"];
npmcli-mock-registry-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-mock-registry-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-mock-registry-->pacote;
npmcli-mock-registry-->tap;
npmcli-move-file-->mkdirp;
npmcli-move-file-->rimraf;
npmcli-package-json-->json-parse-even-better-errors;
npmcli-promise-spawn-->which;
npmcli-query-->postcss-selector-parser;
npmcli-run-script-->node-gyp;
npmcli-run-script-->npmcli-node-gyp["@npmcli/node-gyp"];
npmcli-run-script-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-run-script-->read-package-json-fast;
npmcli-run-script-->which;
npmcli-smoke-tests-->http-proxy;
npmcli-smoke-tests-->just-extend;
npmcli-smoke-tests-->just-safe-set;
npmcli-smoke-tests-->npmcli-eslint-config["@npmcli/eslint-config"];
npmcli-smoke-tests-->npmcli-mock-registry["@npmcli/mock-registry"];
npmcli-smoke-tests-->npmcli-promise-spawn["@npmcli/promise-spawn"];
npmcli-smoke-tests-->npmcli-template-oss["@npmcli/template-oss"];
npmcli-smoke-tests-->tap;
npmcli-smoke-tests-->which;
npmlog-->are-we-there-yet;
npmlog-->console-control-strings;
npmlog-->gauge;
npmlog-->set-blocking;
once-->wrappy;
p-map-->aggregate-error;
pacote-->cacache;
pacote-->fs-minipass;
pacote-->minipass;
pacote-->npm-package-arg;
pacote-->npm-packlist;
pacote-->npm-pick-manifest;
pacote-->npm-registry-fetch;
pacote-->npmcli-git["@npmcli/git"];
pacote-->npmcli-installed-package-contents["@npmcli/installed-package-contents"];
pacote-->npmcli-promise-spawn["@npmcli/promise-spawn"];
pacote-->npmcli-run-script["@npmcli/run-script"];
pacote-->proc-log;
pacote-->promise-retry;
pacote-->read-package-json-fast;
pacote-->read-package-json;
pacote-->ssri;
pacote-->tar;
parse-conflict-json-->json-parse-even-better-errors;
parse-conflict-json-->just-diff-apply;
parse-conflict-json-->just-diff;
postcss-selector-parser-->cssesc;
postcss-selector-parser-->util-deprecate;
promise-retry-->err-code;
promise-retry-->retry;
promzard-->read;
read-->mute-stream;
read-package-json-->glob;
read-package-json-->json-parse-even-better-errors;
read-package-json-->normalize-package-data;
read-package-json-->npm-normalize-package-bin;
read-package-json-fast-->json-parse-even-better-errors;
read-package-json-fast-->npm-normalize-package-bin;
readable-stream-->inherits;
readable-stream-->string_decoder;
readable-stream-->util-deprecate;
rimraf-->glob;
semver-->lru-cache;
socks-->ip;
socks-->smart-buffer;
socks-proxy-agent-->agent-base;
socks-proxy-agent-->debug;
socks-proxy-agent-->socks;
spdx-correct-->spdx-expression-parse;
spdx-correct-->spdx-license-ids;
spdx-expression-parse-->spdx-exceptions;
spdx-expression-parse-->spdx-license-ids;
ssri-->minipass;
string-width-->emoji-regex;
string-width-->is-fullwidth-code-point;
string-width-->strip-ansi;
string_decoder-->safe-buffer;
strip-ansi-->ansi-regex;
supports-color-->has-flag;
tar-->chownr;
tar-->fs-minipass;
tar-->minipass;
tar-->minizlib;
tar-->mkdirp;
tar-->yallist;
unique-filename-->unique-slug;
unique-slug-->imurmurhash;
validate-npm-package-license-->spdx-correct;
validate-npm-package-license-->spdx-expression-parse;
validate-npm-package-name-->builtins;
wcwidth-->defaults;
which-->isexe;
wide-align-->string-width;
write-file-atomic-->imurmurhash;
write-file-atomic-->signal-exit;
```
## npm dependency heirarchy
These are the groups of dependencies in npm that depend on each other.
Each group depends on packages lower down the chain, nothing depends on
packages higher up the chain.
- npm
- @npmcli/smoke-tests, libnpmaccess, libnpmexec, libnpmpublish
- @npmcli/mock-registry, libnpmdiff, libnpmfund, libnpmpack
- @npmcli/arborist
- @npmcli/metavuln-calculator
- pacote, libnpmhook, libnpmorg, libnpmsearch, libnpmteam, npm-profile
- npm-registry-fetch, libnpmversion
- @npmcli/git, make-fetch-happen, @npmcli/config, init-package-json
- @npmcli/installed-package-contents, @npmcli/map-workspaces, cacache, npm-pick-manifest, @npmcli/run-script, read-package-json, promzard
- @npmcli/docs, @npmcli/fs, npm-bundled, read-package-json-fast, unique-filename, npm-install-checks, npm-package-arg, npm-packlist, normalize-package-data, @npmcli/package-json, bin-links, nopt, npmlog, parse-conflict-json, read
- @npmcli/eslint-config, @npmcli/template-oss, ignore-walk, semver, npm-normalize-package-bin, @npmcli/name-from-folder, json-parse-even-better-errors, fs-minipass, ssri, unique-slug, @npmcli/promise-spawn, hosted-git-info, proc-log, validate-npm-package-name, @npmcli/node-gyp, minipass-fetch, @npmcli/query, cmd-shim, read-cmd-shim, write-file-atomic, abbrev, are-we-there-yet, gauge, treeverse, minify-registry-metadata, ini, @npmcli/disparity-colors, mute-stream, npm-audit-report, npm-user-validate

123
Makefile
View File

@ -1,123 +0,0 @@
# vim: set softtabstop=2 shiftwidth=2:
SHELL = bash
PUBLISHTAG = $(shell node scripts/publish-tag.js)
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
markdowns = $(shell find docs -name '*.md' | grep -v 'index')
# these docs have the @VERSION@ tag in them, so they have to be rebuilt
# whenever the package.json is touched, in case the version changed.
version_mandocs = $(shell grep -rl '@VERSION@' docs/content \
|sed 's|.md|.1|g' \
|sed 's|docs/content/commands/|man/man1/|g' )
cli_mandocs = $(shell find docs/content/commands -name '*.md' \
|sed 's|.md|.1|g' \
|sed 's|docs/content/commands/|man/man1/|g' )
files_mandocs = $(shell find docs/content/configuring-npm -name '*.md' \
|sed 's|.md|.5|g' \
|sed 's|docs/content/configuring-npm/|man/man5/|g' ) \
misc_mandocs = $(shell find docs/content/using-npm -name '*.md' \
|sed 's|.md|.7|g' \
|sed 's|docs/content/using-npm/|man/man7/|g' ) \
mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs)
all: docs
docs: mandocs htmldocs
# don't regenerate the snapshot if we're generating
# snapshots, since presumably we just did that.
mandocs: $(mandocs)
@ ! [ $${npm_lifecycle_event} = "snap" ] && \
! [ $${npm_lifecycle_event} = "postsnap" ] && \
TAP_SNAPSHOT=1 node test/lib/utils/config/definitions.js || true
$(version_mandocs): package.json
htmldocs: dev-deps
node bin/npm-cli.js rebuild
node bin/npm-cli.js run -w docs build
clean: docs-clean gitclean
docsclean: docs-clean
docs-clean:
rm -rf man
## build-time dependencies for the documentation
dev-deps:
node bin/npm-cli.js install --no-audit --ignore-scripts
## targets for man files, these are encouraged to be only built by running `make docs` or `make mandocs`
man/man1/%.1: docs/content/commands/%.md scripts/docs-build.js
@[ -d man/man1 ] || mkdir -p man/man1
node scripts/docs-build.js $< $@
man/man5/npm-json.5: man/man5/package.json.5
cp $< $@
man/man5/npm-global.5: man/man5/folders.5
cp $< $@
man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js
@[ -d man/man5 ] || mkdir -p man/man5
node scripts/docs-build.js $< $@
man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js
@[ -d man/man7 ] || mkdir -p man/man7
node scripts/docs-build.js $< $@
# Any time the config definitions description changes, automatically
# update the documentation to account for it
docs/content/using-npm/config.md: scripts/config-doc.js lib/utils/config/*.js
node scripts/config-doc.js
docs/content/commands/npm-%.md: lib/%.js scripts/config-doc-command.js lib/utils/config/*.js
node scripts/config-doc-command.js $@ $<
freshdocs:
touch lib/utils/config/definitions.js
touch scripts/config-doc-command.js
touch scripts/config-doc.js
make docs
test: dev-deps
node bin/npm-cli.js test
smoke-tests: dev-deps
node bin/npm-cli.js run smoke-tests -- --no-check-coverage
ls-ok:
node . ls --production >/dev/null
gitclean:
git clean -fd
uninstall:
node bin/npm-cli.js rm -g -f npm
link: uninstall
node bin/npm-cli.js link -f --ignore-scripts
prune:
node bin/npm-cli.js run resetdeps
node bin/npm-cli.js prune --production --no-save --no-audit
@[[ "$(shell git status -s)" != "" ]] && echo "ERR: found unpruned files" && exit 1 || echo "git status is clean"
publish: gitclean ls-ok link test smoke-tests docs prune
@git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true
git push origin $(BRANCH) &&\
git push origin --tags &&\
node bin/npm-cli.js publish --tag=$(PUBLISHTAG)
release: gitclean ls-ok docs prune
@bash scripts/release.sh
.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok dev-deps prune freshdocs

View File

@ -1,14 +1,17 @@
[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/npm/cli/Node%20CI/latest)](https://github.com/npm/cli/actions?query=workflow%3A%22Node+CI%22+branch%3Alatest) [![Coveralls github branch](https://img.shields.io/coveralls/github/npm/cli/latest)](https://coveralls.io/github/npm/cli?branch=latest)
# npm - a JavaScript package manager
[![npm version](https://img.shields.io/npm/v/npm.svg)](https://npm.im/npm)
[![license](https://img.shields.io/npm/l/npm.svg)](https://npm.im/npm)
[![CI - cli](https://github.com/npm/cli/actions/workflows/ci.yml/badge.svg)](https://github.com/npm/cli/actions/workflows/ci.yml)
[![Benchmark Suite](https://github.com/npm/cli/actions/workflows/benchmark.yml/badge.svg)](https://github.com/npm/cli/actions/workflows/benchmark.yml)
### Requirements
One of the following versions of [Node.js](https://nodejs.org/en/download/) must be installed to run **`npm`**:
* `12.x.x` >= `12.13.0`
* `14.x.x` >= `14.15.0`
* `16.0.0` or higher
* `14.x.x` >= `14.17.0`
* `16.x.x` >= `16.13.0`
* `18.0.0` or higher
### Installation
@ -34,6 +37,7 @@ If you're looking to manage multiple versions of **`node`** &/or **`npm`**, cons
* [**`nodenv`**](https://github.com/nodenv/nodenv)
* [**`asdf-nodejs`**](https://github.com/asdf-vm/asdf-nodejs)
* [**`nvm-windows`**](https://github.com/coreybutler/nvm-windows)
* [**`fnm`**](https://github.com/Schniz/fnm)
### Usage
@ -46,7 +50,7 @@ npm <command>
* [**Documentation**](https://docs.npmjs.com/) - Official docs & how-tos for all things **npm**
* Note: you can also search docs locally with `npm help-search <query>`
* [**Bug Tracker**](https://github.com/npm/cli/issues) - Search or submit bugs against the CLI
* [**Roadmap**](https://github.com/npm/roadmap) - Track & follow along with our public roadmap
* [**Roadmap**](https://github.com/orgs/github/projects/4247/views/1?filterQuery=npm) - Track & follow along with our public roadmap
* [**Feedback**](https://github.com/npm/feedback) - Contribute ideas & discussion around the npm registry, website & CLI
* [**RFCs**](https://github.com/npm/rfcs) - Contribute ideas & specifications for the API/design of the npm CLI
* [**Service Status**](https://status.npmjs.org/) - Monitor the current status & see incident reports for the website & registry

View File

@ -1 +1,14 @@
Please send vulnerability reports through [hackerone](https://hackerone.com/github).
<!-- This file is automatically added by @npmcli/template-oss. Do not edit. -->
GitHub takes the security of our software products and services seriously, including the open source code repositories managed through our GitHub organizations, such as [GitHub](https://github.com/GitHub).
If you believe you have found a security vulnerability in this GitHub-owned open source repository, you can report it to us in one of two ways.
If the vulnerability you have found is *not* [in scope for the GitHub Bug Bounty Program](https://bounty.github.com/#scope) or if you do not wish to be considered for a bounty reward, please report the issue to us directly using [private vulnerability reporting](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability).
If the vulnerability you have found is [in scope for the GitHub Bug Bounty Program](https://bounty.github.com/#scope) and you would like for your finding to be considered for a bounty reward, please submit the vulnerability to us through [HackerOne](https://hackerone.com/github) in order to be eligible to receive a bounty award.
**Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.**
Thanks for helping make GitHub safe for everyone.

View File

@ -1,6 +1,6 @@
#!/usr/bin/env sh
if [ "x$npm_config_node_gyp" = "x" ]; then
/usr/bin/node-gyp "$@"
node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
else
"$npm_config_node_gyp" "$@"
fi

View File

@ -12,6 +12,9 @@ case `uname` in
esac
NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
NODE_EXE="$basedir/node"
fi
if ! [ -x "$NODE_EXE" ]; then
NODE_EXE=node
fi

View File

@ -98,6 +98,7 @@ for (i = 3; i < process.argv.length; i++) {
}
if (removed.has(key)) {
// eslint-disable-next-line no-console
console.error(`npx: the --${key} argument has been removed.`)
sawRemovedFlags = true
process.argv.splice(i, 1)
@ -122,6 +123,7 @@ for (i = 3; i < process.argv.length; i++) {
}
if (sawRemovedFlags) {
// eslint-disable-next-line no-console
console.error('See `npm help exec` for more information')
}

View File

@ -1,743 +0,0 @@
### v1.4.29 (2015-10-29):
#### THINGS ARE HAPPENING IN LTS LAND
In a special one-off release as part of the [strategy to get a version of npm
into Node LTS that works with the current
registry](https://github.com/nodejs/LTS/issues/37), modify npm to print out
this deprecation banner literally every time npm is invoked to do anything:
```
npm WARN deprecated This version of npm lacks support for important features,
npm WARN deprecated such as scoped packages, offered by the primary npm
npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
npm WARN deprecated latest stable version. To upgrade to npm@2, run:
npm WARN deprecated
npm WARN deprecated npm -g install npm@latest-2
npm WARN deprecated
npm WARN deprecated To upgrade to the latest stable version, run:
npm WARN deprecated
npm WARN deprecated npm -g install npm@latest
npm WARN deprecated
npm WARN deprecated (Depending on how Node.js was installed on your system, you
npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
npm WARN deprecated on Windows, run them from an Administrator prompt.)
npm WARN deprecated
npm WARN deprecated If you're running the version of npm bundled with
npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
npm WARN deprecated will be bundled with a version of npm@2, which has some small
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
```
The message basically tells the tale: Node 0.10 will finally be getting
`npm@2`, so those of you who haven't upgraded your build systems to deal with
its (relatively small) breaking changes should do so now.
Also, this version doesn't even pretend that it can deal with scoped packages,
which, given the confusing behavior of older versions of `npm@1.4`, where it
would sometimes try to install packages from GitHub, is a distinct improvement.
There is no good reason for you as an end user to upgrade to this version of
npm yourself.
* [`709e9b4`](https://github.com/npm/npm/commit/709e9b44f5df9817a1c4babfbf26a2329bd265fb)
Print 20-line deprecation banner on all command invocations.
([@othiym23](https://github.com/othiym23))
* [`0c29d09`](https://github.com/npm/npm/commit/0c29d0906608e8e174bd30a7a245e19795326051)
Crash out immediately with an exhortation to upgrade on attempts to use
scoped packages. ([@othiym23](https://github.com/othiym23))
### v1.5.0-alpha-4 (2014-07-18):
* fall back to `_auth` config as default auth when using default registry
([@isaacs](https://github.com/isaacs))
* support for 'init.version' for those who don't want to deal with semver 0.0.x
oddities ([@rvagg](https://github.com/rvagg))
* [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1)
remove residual support for `win` log level
([@aterris](https://github.com/aterris))
### v1.5.0-alpha-3 (2014-07-17):
* [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6)
`--save` scoped packages correctly ([@othiym23](https://github.com/othiym23))
* [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150)
`npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23))
* [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d)
invalid package names are an early error for optional deps
([@othiym23](https://github.com/othiym23))
* consistently use `node-package-arg` instead of arbitrary package spec
splitting ([@othiym23](https://github.com/othiym23))
### v1.5.0-alpha-2 (2014-07-01):
* [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283)
fix handling for 301s in `npm-registry-client@3.0.1`
([@Raynos](https://github.com/Raynos))
* [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d)
don't crash if no username set on `whoami`
([@isaacs](https://github.com/isaacs))
* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
respect `--json` for output ([@isaacs](https://github.com/isaacs))
* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
outdated: Don't show headings if there's nothing to output
([@isaacs](https://github.com/isaacs))
* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
outdated: Default to `latest` rather than `*` for unspecified deps
([@isaacs](https://github.com/isaacs))
### v1.5.0-alpha-1 (2014-07-01):
* [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa)
use the correct piece of the spec for GitHub shortcuts
([@othiym23](https://github.com/othiym23))
### v1.5.0-alpha-0 (2014-07-01):
* [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c)
install scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
([@othiym23](https://github.com/othiym23))
* [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac)
publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
([@othiym23](https://github.com/othiym23))
* [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501)
support (and save) --scope=@s config
([@othiym23](https://github.com/othiym23))
* [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7)
scope credentials to registry ([@othiym23](https://github.com/othiym23))
* [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da)
capture and store bearer tokens when sent by registry
([@othiym23](https://github.com/othiym23))
* [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6)
only delete files that are created by npm
([@othiym23](https://github.com/othiym23))
* [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e)
`npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23))
* [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44)
`read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23))
* [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554)
`fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23))
* [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec)
`async-some@1.0.0` ([@othiym23](https://github.com/othiym23))
* [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331)
`npmconf@2.0.1` ([@othiym23](https://github.com/othiym23))
* [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a)
`npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23))
### v1.4.28 (2014-09-12):
* [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14)
[#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
before the CLI exits ([@isaacs](https://github.com/isaacs))
* [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899)
[#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
callbacks have finished before proceeding
([@othiym23](https://github.com/othiym23))
### v1.4.27 (2014-09-04):
* [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e)
[#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set
headers on proxy requests ([@isaacs](https://github.com/isaacs))
* [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5)
[#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore
case-insensitivity of environmental config
([@iarna](https://github.com/iarna))
### v1.4.26 (2014-08-28):
* [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d)
`github-url-from-git@1.4.0`: add support for git+https and git+ssh
([@stefanbuck](https://github.com/stefanbuck))
* [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3)
`columnify@1.2.1` ([@othiym23](https://github.com/othiym23))
* [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e)
`cmd-shim@2.0.0`: upgrade to graceful-fs 3
([@ForbesLindesay](https://github.com/ForbesLindesay))
* [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4)
`github-url-from-username-repo@1.0.0`: accept slashes in branch names
([@robertkowalski](https://github.com/robertkowalski))
* [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1)
ensure lifecycle spawn errors caught properly
([@isaacs](https://github.com/isaacs))
* [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a)
`npm-registry-client@2.0.7`: properly encode % in passwords
([@isaacs](https://github.com/isaacs))
* [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8)
doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs))
### v1.4.25 (2014-08-21):
* [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e)
`npm-registry-client@2.0.6`: Print the notification header returned by the
registry, and make sure status codes are printed without gratuitous quotes
around them.
([@othiym23](https://github.com/othiym23))
* [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`:
Add test for removing an extract target immediately after unpacking.
([@isaacs](https://github.com/isaacs))
* [`70fd11d`](https://github.com/npm/npm/commit/70fd11d)
`lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`,
and `retries` options. Part 2 of race condition leading to `ENOENT`
errors.
([@isaacs](https://github.com/isaacs))
* [`0072c4d`](https://github.com/npm/npm/commit/0072c4d)
`fstream@1.0.2`: Fix a double-finish call which can result in excess
FS operations after the `close` event. Part 2 of race condition
leading to `ENOENT` errors.
([@isaacs](https://github.com/isaacs))
### v1.4.24 (2014-08-14):
* [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb)
doc: add new changelog ([@othiym23](https://github.com/othiym23))
* [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3)
doc: update version doc to include `pre-*` increment args
([@isaacs](https://github.com/isaacs))
* [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4)
build: add `make tag` to tag current release as `latest`
([@isaacs](https://github.com/isaacs))
* [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5)
build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
* [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6)
build: add script to output `v1.4-next` publish tag
([@isaacs](https://github.com/isaacs))
* [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568)
build: remove outdated `docpublish` make target
([@isaacs](https://github.com/isaacs))
* [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247)
build: remove unpublish step from `make publish`
([@isaacs](https://github.com/isaacs))
* [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7)
install: rename `.gitignore` when unpacking foreign tarballs
([@isaacs](https://github.com/isaacs))
* [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082)
cache: detect non-gzipped tar files more reliably
([@isaacs](https://github.com/isaacs))
### v1.4.23 (2014-07-31):
* [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several
dependencies to avoid using `semver`s starting with 0.
### v1.4.22 (2014-07-31):
* [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4`
([@isaacs](https://github.com/isaacs))
* [`86f0340`](https://github.com/npm/npm/commit/86f0340)
`github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs))
* [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29`
([@isaacs](https://github.com/isaacs))
* [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5`
([@isaacs](https://github.com/isaacs))
* [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2`
([@isaacs](https://github.com/isaacs))
* [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up
legalese with actual lawyer ([@isaacs](https://github.com/isaacs))
* [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0`
([@isaacs](https://github.com/isaacs))
### v1.4.21 (2014-07-14):
* [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110)
fix handling for 301s in `npm-registry-client@2.0.3`
([@Raynos](https://github.com/Raynos))
### v1.4.20 (2014-07-02):
* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
respect `--json` for output ([@isaacs](https://github.com/isaacs))
* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
outdated: Don't show headings if there's nothing to output
([@isaacs](https://github.com/isaacs))
* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
outdated: Default to `latest` rather than `*` for unspecified deps
([@isaacs](https://github.com/isaacs))
### v1.4.19 (2014-07-01):
* [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for
working non-root registry URLS ([@othiym23](https://github.com/othiym23))
* [`bea190c`](https://github.com/npm/npm/commit/bea190c)
[#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf
([@isaacs](https://github.com/isaacs))
### v1.4.18 (2014-06-29):
* Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when
available, increasing resilience to [various filesystem
errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module).
([@isaacs](https://github.com/isaacs))
### v1.4.17 (2014-06-27):
* replace escape codes with ansicolors
([@othiym23](https://github.com/othiym23))
* Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ))
* Use core.longpaths on win32 git - fixes
[#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck))
* `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs))
* Consolidate color sniffing in config/log loading process
([@isaacs](https://github.com/isaacs))
* add verbose log when project config file is ignored
([@isaacs](https://github.com/isaacs))
* npmconf: Float patch to remove 'scope' from config defs
([@isaacs](https://github.com/isaacs))
* doc: npm-explore can't handle a version
([@robertkowalski](https://github.com/robertkowalski))
* Add user-friendly errors for ENOSPC and EROFS.
([@voodootikigod](https://github.com/voodootikigod))
* bump tar and fstream deps ([@isaacs](https://github.com/isaacs))
* Run the npm-registry-couchapp tests along with npm tests
([@isaacs](https://github.com/isaacs))
### v1.2.8000 (2014-06-17):
* Same as v1.4.16, but with the spinner disabled, and a version number that
starts with v1.2.
### v1.4.16 (2014-06-17):
* `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs))
* `fstream@0.1.27` ([@isaacs](https://github.com/isaacs))
* `sha@1.2.4` ([@isaacs](https://github.com/isaacs))
* `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs))
* `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs))
* `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs))
* removed redundant dependency ([@othiym23](https://github.com/othiym23))
* `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs))
* Properly handle errors that can occur in the config-loading process
([@isaacs](https://github.com/isaacs))
### v1.4.15 (2014-06-10):
* cache: atomic de-race-ified package.json writing
([@isaacs](https://github.com/isaacs))
* `fstream@0.1.26` ([@isaacs](https://github.com/isaacs))
* `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs))
* `osenv@0.1.0` ([@isaacs](https://github.com/isaacs))
* Only spin the spinner when we're fetching stuff
([@isaacs](https://github.com/isaacs))
* Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder
([@robertkowalski](https://github.com/robertkowalski))
* `ini@1.2.1` ([@isaacs](https://github.com/isaacs))
* `graceful-fs@3` ([@isaacs](https://github.com/isaacs))
* Update glob and things depending on glob
([@isaacs](https://github.com/isaacs))
* github-url-from-username-repo and read-package-json updates
([@isaacs](https://github.com/isaacs))
* `editor@0.1.0` ([@isaacs](https://github.com/isaacs))
* `columnify@1.1.0` ([@isaacs](https://github.com/isaacs))
* bump ansi and associated deps ([@isaacs](https://github.com/isaacs))
### v1.4.14 (2014-06-05):
* char-spinner: update to not bork windows
([@isaacs](https://github.com/isaacs))
### v1.4.13 (2014-05-23):
* Fix `npm install` on a tarball.
([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6),
[#5330](https://github.com/npm/npm/issues/5330),
[@othiym23](https://github.com/othiym23))
* Fix an issue with the spinner on Node 0.8.
([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762),
[@isaacs](https://github.com/isaacs))
* Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and
document `npm.commands.cache.*` as npm-cache(3).
([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3),
[@isaacs](https://github.com/isaacs))
### v1.4.12 (2014-05-23):
* remove normalize-package-data from top level, de-^-ify inflight dep
([@isaacs](https://github.com/isaacs))
* Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs))
* add inflight to bundledDependencies
([@othiym23](https://github.com/othiym23))
### v1.4.11 (2014-05-22):
* fix `npm ls` labeling issue
* `node-gyp@0.13.1`
* default repository to https:// instead of git://
* addLocalTarball: Remove extraneous unpack
([@isaacs](https://github.com/isaacs))
* Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and
[@isaacs](https://github.com/isaacs))
* Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs))
* Per-project .npmrc file support ([@isaacs](https://github.com/isaacs))
* `npmconf@1.0.0`, Refactor config/uid/prefix loading process
([@isaacs](https://github.com/isaacs))
* Allow once-disallowed characters in passwords
([@isaacs](https://github.com/isaacs))
* Send npm version as 'version' header ([@isaacs](https://github.com/isaacs))
* fix cygwin encoding issue (Karsten Tinnefeld)
* Allow non-github repositories with `npm repo`
([@evanlucas](https://github.com/evanlucas))
* Allow peer deps to be satisfied by grandparent
* Stop optional deps moving into deps on `update --save`
([@timoxley](https://github.com/timoxley))
* Ensure only matching deps update with `update --save*`
([@timoxley](https://github.com/timoxley))
* Add support for `prerelease`, `preminor`, `prepatch` to `npm version`
### v1.4.10 (2014-05-05):
* Don't set referer if already set
* fetch: Send referer and npm-session headers
* `run-script`: Support `--parseable` and `--json`
* list runnable scripts ([@evanlucas](https://github.com/evanlucas))
* Use marked instead of ronn for html docs
### v1.4.9 (2014-05-01):
* Send referer header (with any potentially private stuff redacted)
* Fix critical typo bug in previous npm release
### v1.4.8 (2014-05-01):
* Check SHA before using files from cache
* adduser: allow change of the saved password
* Make `npm install` respect `config.unicode`
* Fix lifecycle to pass `Infinity` for config env value
* Don't return 0 exit code on invalid command
* cache: Handle 404s and other HTTP errors as errors
* Resolve ~ in path configs to env.HOME
* Include npm version in default user-agent conf
* npm init: Use ISC as default license, use save-prefix for deps
* Many test and doc fixes
### v1.4.7 (2014-04-15):
* Add `--save-prefix` option that can be used to override the default of `^`
when using `npm install --save` and its counterparts.
([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470),
[@thlorenz](https://github.com/thlorenz))
* Allow `--silent` to silence the echoing of commands that occurs with `npm
run`.
([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab),
[@Raynos](https://github.com/Raynos))
* Some speed improvements to the cache, which should improve install times.
([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744),
[`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d),
[`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33),
[@isaacs](https://github.com/isaacs))
* Improve ability to retry registry requests when a subset of the registry
servers are down.
([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e),
https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432,
[@isaacs](https://github.com/isaacs))
* Fix marking of peer dependencies as extraneous.
([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754),
https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc,
[@isaacs](https://github.com/isaacs))
* Fix npm crashing when doing `npm shrinkwrap` in the presence of a
`package.json` with no dependencies.
([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0),
[@kislyuk](https://github.com/kislyuk))
* Fix error when using `npm view` on packages that have no versions or have
been unpublished.
([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8),
[@juliangruber](https://github.com/juliangruber);
[`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3),
[@isaacs](https://github.com/isaacs))
### v1.4.6 (2014-03-19):
* Fix extraneous package detection to work in more cases.
([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20,
[@LaurentVB](https://github.com/LaurentVB))
### v1.4.5 (2014-03-18):
* Sort dependencies in `package.json` when doing `npm install --save` and all
its variants.
([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985),
[@domenic](https://github.com/domenic))
* Add `--save-exact` option, usable alongside `--save` and its variants, which
will write the exact version number into `package.json` instead of the
appropriate semver-compatibility range.
([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5),
[@timoxley](https://github.com/timoxley))
* Accept gzipped content from the registry to speed up downloads and save
bandwidth.
([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942),
npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2))
* Fix `npm ls`'s `--depth` and `--log` options.
([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91),
npm/read-installed#13, [@zertosh](https://github.com/zertosh))
* Fix "Adding a cache directory to the cache will make the world implode" in
certain cases.
([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834),
domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques))
* Fix readmes not being uploaded in certain rare cases.
([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b),
[@isaacs](https://github.com/isaacs))
### v1.4.4 (2014-02-20):
* Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run
test`, or even `npm run-script test`). We like making running your tests
easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs))
### v1.4.3 (2014-02-16):
* Add back `npm prune --production`, which was removed in 1.3.24.
([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83),
[@davglass](https://github.com/davglass))
* Default `npm install --save` and its counterparts to use the `^` version
specifier, instead of `~`.
([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc),
[@mikolalysenko](https://github.com/mikolalysenko))
* Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs
between shrinkwrap files should be saner now.
([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113),
[@Raynos](https://github.com/Raynos))
* Fix `npm dedupe` not correctly respecting dependency constraints.
([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc),
[@rafeca](https://github.com/rafeca))
* Fix `npm ls` giving spurious warnings when you used `"latest"` as a version
specifier.
(https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14,
[@bajtos](https://github.com/bajtos))
* Fixed a bug where using `npm link` on packages without a `name` value could
cause npm to delete itself.
([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87),
[@isaacs](https://github.com/isaacs))
* Fixed `npm install ./pkg@1.2.3` to actually install the directory at
`pkg@1.2.3`; before it would try to find version `1.2.3` of the package
`./pkg` in the npm registry.
([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739),
[@rlidwka](https://github.com/rlidwka); see also
[`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f))
* Fix `npm outdated` to respect the `color` configuration option.
([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1),
[@timoxley](https://github.com/timoxley))
* Fix `npm outdated --parseable`.
([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6),
[@yhpark](https://github.com/yhpark))
* Fix a lockfile-related errors when using certain Git URLs.
([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f),
[@nigelzor](https://github.com/nigelzor))
### v1.4.2 (2014-02-13):
* Fixed an issue related to mid-publish GET requests made against the registry.
(https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93,
[@isaacs](https://github.com/isaacs))
### v1.4.1 (2014-02-13):
* Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also
development dependencies.
([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd),
[@diwu1989](https://github.com/diwu1989))
* Fixed publishing of pre-existing packages with uppercase characters in their
name.
(https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad,
[@isaacs](https://github.com/isaacs))
### v1.4.0 (2014-02-12):
* Remove `npm publish --force`. See
https://github.com/npm/npmjs.org/issues/148.
([@isaacs](https://github.com/isaacs),
npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
* Other changes to the registry client related to saved configs and couch
logins. ([@isaacs](https://github.com/isaacs);
npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951,
npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde,
npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
* Show an error to the user when doing `npm update` and the `package.json`
specifies a version that does not exist.
([@evanlucas](https://github.com/evanlucas),
[`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32))
* Fix some issues with cache ownership in certain installation configurations.
([@outcoldman](https://github.com/outcoldman),
[`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e))
* Fix issues where GitHub shorthand dependencies `user/repo` were not always
treated the same as full Git URLs.
([@robertkowalski](https://github.com/robertkowalski),
https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240)
### v1.3.26 (2014-02-02):
* Fixes and updates to publishing code
([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2)
and
[`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5),
[@isaacs](https://github.com/isaacs))
* Fix `npm bugs` with no arguments.
([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091),
[@Hoops](https://github.com/Hoops))
### v1.3.25 (2014-01-25):
* Remove gubblebum blocky font from documentation headers.
([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2),
[@isaacs](https://github.com/isaacs))
### v1.3.24 (2014-01-19):
* Make the search output prettier, with nice truncated columns, and a `--long`
option to create wrapping columns.
([`20439b2`](https://github.com/npm/npm/commit/20439b2) and
[`3a6942d`](https://github.com/npm/npm/commit/3a6942d),
[@timoxley](https://github.com/timoxley))
* Support multiple packagenames in `npm docs`.
([`823010b`](https://github.com/npm/npm/commit/823010b),
[@timoxley](https://github.com/timoxley))
* Fix the `npm adduser` bug regarding "Error: default value must be string or
number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248),
[@isaacs](https://github.com/isaacs))
* Fix `scripts` entries containing whitespaces on Windows.
([`80282ed`](https://github.com/npm/npm/commit/80282ed),
[@robertkowalski](https://github.com/robertkowalski))
* Fix `npm update` for Git URLs that have credentials in them
([`93fc364`](https://github.com/npm/npm/commit/93fc364),
[@danielsantiago](https://github.com/danielsantiago))
* Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged
Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9),
[@evanlucas](https://github.com/evanlucas))
* Remove `npm prune --production` since it buggily removed some dependencies
that were necessary for production; see
[#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its
triumphant return, one day.
([`1101b6a`](https://github.com/npm/npm/commit/1101b6a),
[@isaacs](https://github.com/isaacs))
Dependency updates:
* [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6`
* [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6`
* [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3`
* [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2`
* [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3`
* [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12`
### v1.3.23 (2014-01-03):
* Properly handle installations that contained a certain class of circular
dependencies.
([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754),
[@substack](https://github.com/substack))
### v1.3.22 (2013-12-25):
* Fix a critical bug in `npm adduser` that would manifest in the error message
"Error: default value must be string or number."
([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce),
[@isaacs](https://github.com/isaacs))
* Allow `npm bugs` in the current directory to open the current package's bugs
URL.
([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af),
[@evanlucas](https://github.com/evanlucas))
* Several fixes to various error messages to include more useful or updated
information.
([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7),
[`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1),
[`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03);
[@rlidwka](https://github.com/rlidwka),
[@evanlucas](https://github.com/evanlucas))
### v1.3.21 (2013-12-17):
* Fix a critical bug that prevented publishing due to incorrect hash
calculation.
([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e),
[@dominictarr](https://github.com/dominictarr))
### v1.3.20 (2013-12-17):
* Fixes a critical bug in v1.3.19. Thankfully, due to that bug, no one could
install npm v1.3.19 :)
### v1.3.19 (2013-12-16):
* Adds atomic PUTs for publishing packages, which should result in far fewer
requests and less room for replication errors on the server-side.
### v1.3.18 (2013-12-16):
* Added an `--ignore-scripts` option, which will prevent `package.json` scripts
from being run. Most notably, this will work on `npm install`, so e.g. `npm
install --ignore-scripts` will not run preinstall and prepublish scripts.
([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6),
[@sqs](https://github.com/sqs))
* Fixed a bug introduced in 1.3.16 that would manifest with certain cache
configurations, by causing spurious errors saying "Adding a cache directory
to the cache will make the world implode."
([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865),
[@domenic](https://github.com/domenic))
* Re-fixed the multiple download of URL dependencies, whose fix was reverted in
1.3.17.
([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0),
[@spmason](https://github.com/spmason))
### v1.3.17 (2013-12-11):
* This release reverts
[`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
which avoided re-downloading URL and shinkwrap dependencies when doing `npm
install`. You can see the in-depth reasoning in
[`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba);
the problem was, that the patch changed the behavior of `npm install -f` to
reinstall all dependencies.
* A new version of the no-re-downloading fix has been submitted as
[#4303](https://github.com/npm/npm/issues/4303) and will hopefully be
included in the next release.
### v1.3.16 (2013-12-11):
* Git URL dependencies are now updated on `npm install`, fixing a two-year old
bug
([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b),
[@robertkowalski](https://github.com/robertkowalski)). Additional progress on
reducing the resulting Git-related I/O is tracked as
[#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a
big improvement.
* Added a `--json` mode to `npm outdated` to give a parseable output.
([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe),
[@yyx990803](https://github.com/yyx990803))
* Made `npm outdated` much prettier and more useful. It now outputs a
color-coded and easy-to-read table.
([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106),
[@quimcalpe](https://github.com/quimcalpe))
* Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm
outdated --depth=0` to show only top-level outdated dependencies.
([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c),
[@yyx990803](https://github.com/yyx990803))
* Added a `--no-git-tag-version` option to `npm version`, for doing the usual
job of `npm version` minus the Git tagging. This could be useful if you need
to increase the version in other related files before actually adding the
tag.
([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd),
[@evanlucas](https://github.com/evanlucas))
* Made `npm repo` and `npm docs` work without any arguments, adding them to the
list of npm commands that work on the package in the current directory when
invoked without arguments.
([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8),
[@robertkowalski](https://github.com/robertkowalski);
[`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67),
[@wilmoore](https://github.com/wilmoore)). There are a few other commands we
still want to implement this for; see
[#4204](https://github.com/npm/npm/issues/4204).
* Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is
set; we currently do this with a few other environment variables, but we
missed that one.
([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8),
[@arikon](https://github.com/arikon))
* Fixed `npm dedupe` on Windows due to incorrect path separators being used
([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161),
[@mcolyer](https://github.com/mcolyer)).
* Fixed the `npm help` command when multiple words were searched for; it
previously gave a `ReferenceError`.
([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c),
[@dereckson](https://github.com/dereckson))
* Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in
[#3463](https://github.com/npm/npm/issues/3463)
([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
[@spmason](https://github.com/spmason)). You can use the `--force` option to
force re-download and installation of all dependencies.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

11
debian/NEWS vendored
View File

@ -1,11 +0,0 @@
npm (1.1.4~dfsg-1) unstable; urgency=low
This release of npm does not support previous modules layouts.
Modules are now installed in ./node_modules when used in the default
local mode.
More information can be found in the nodejs Modules documentation,
/usr/share/doc/npm/README.Debian, and npm-folders(1) and npm-link(1)
man pages.
-- Jérémy Lal <kapouer@melix.org> Tue, 25 Oct 2011 15:19:32 +0200

50
debian/README.Debian vendored
View File

@ -1,50 +0,0 @@
npm for Debian
==============
nodejs Debian package provides /usr/bin/nodejs
----------------------------------------------
Modules installed by npm can ship executables.
These executables depend on /usr/bin/node, which is
provided by the nodejs-legacy Debian package.
More information:
/usr/share/doc/nodejs/README.Debian
global mode npm
---------------
When run in global mode, npm is configured like this :
prefix=/usr/local
globalconfig=/etc/npmrc
globalignorefile=/etc/npmignore
That means npm -g install mymodule will be installed in :
/usr/local/lib/node_modules/
If mymodule installs executables, they go to :
/usr/local/bin
And man pages to
/usr/local/share/man
Please read npm-config(1), npm-folders(1) and npm-link(1) man pages.
This global configuration is kept across a global self update of npm.
It is not guaranteed it will stay like this, so it's safer to update
npm debian package instead.
do not confuse with /usr/lib/nodejs
-----------------------------------
/usr/lib/nodejs directory is reserved for modules that are provided by a
debian package.
-- Jérémy Lal <kapouer@melix.org> Fri, 28 Jan 2011 00:33:28 +0200

24
debian/README.source vendored
View File

@ -1,24 +0,0 @@
git-buildpackage
================
CDBS+git-buildpackage
---------------------
This source package uses CDBS and git-buildpackage. NMUs need not (but
are encouraged to) make special use of these tools. In particular, the
debian/control.in file can be completely ignored.
More info here: http://wiki.debian.org/CDBS+git-buildpackage
symlinks to man pages
---------------------
npm searches for man pages in ./man/man1/*.1, and that is why symlinks
are there :
/usr/share/man/man1/npm-xxx.1.gz -> /usr/share/npm/man/man1/xxx.1
npm does not search for man pages with .gz extension, so we get :
E: npm: compressed-symlink-with-wrong-ext
This is just to avoid having to patch npm.

2
debian/TODO vendored
View File

@ -1,2 +0,0 @@
* Generate html and man pages from ronnjs. Exclude them too.
+ nodejs >= 0.6.12 ships node-marked. Check if npm will use that tool.

5
debian/changelog vendored
View File

@ -1,5 +0,0 @@
npm (8.5.1~ds-ok1) yangtze; urgency=medium
* Build for openKylin.
-- zhouganqing <zhouganqing@kylinos.cn> Thu, 16 Feb 2023 14:32:28 +0800

35
debian/clean vendored
View File

@ -1,35 +0,0 @@
.nyc_output/
debian/tests/test_modules/npm-registry-mock/.nyc_output/
doc/misc/npm-index.md
npmrc
man/
test/fixtures/config/userconfig-with-gc
test/npm_cache_adduser-always-auth/
test/npm_cache_anon-cli-metrics/
test/npm_cache_bugs/
test/npm_cache_ci-header/
test/npm_cache_circular-dep/
test/npm_cache_dedupe/
test/npm_cache_deprecate/
test/npm_cache_git-prepare/
test/npm_cache_peer-deps/
test/npm_cache_repo/
test/npm_cache_shrinkwrap-_auth/
test/tap/adduser-always-auth/
test/tap/audit-fix/
test/tap/bugs/
test/tap/ci-header/
test/tap/circular-dep/
test/tap/dist-tag/
test/tap/git-prepare/
test/tap/false-name/
test/tap/ignore-scripts/
test/tap/pack-files-and-ignores/
test/tap/pack/
test/tap/peer-deps/
test/tap/prepublish/
test/tap/prune-dev-dep-cycle/
test/tap/prune-dev-dep-with-bins/
test/tap/shrinkwrap-_auth/
test/tap/shrinkwrap-global-auth/
test/tap/shrinkwrap-scoped-auth/

155
debian/control vendored
View File

@ -1,155 +0,0 @@
Source: npm
Maintainer: OpenKylin Developers <packaging@lists.openkylin.top>
Section: javascript
Testsuite: autopkgtest-pkg-nodejs
Priority: optional
Build-Depends: debhelper-compat (= 13),
bash-completion,
dh-sequence-nodejs (>= 0.11.5~),
help2man <!nodoc>,
node-abbrev <!nocheck>,
node-agent-base <!nocheck>,
node-ansistyles <!nocheck>,
node-aproba <!nocheck>,
node-archy <!nocheck>,
node-asap <!nocheck>,
node-cacache <!nocheck>,
node-chalk <!nocheck>,
node-chownr <!nocheck>,
node-cli-table3 <!nocheck>,
node-colors <!nocheck>,
node-columnify <!nocheck>,
node-debug <!nocheck>,
node-depd <!nocheck>,
node-emoji-regex <!nocheck>,
node-encoding <!nocheck>,
node-glob <!nocheck>,
node-got <!nocheck>,
node-graceful-fs <!nocheck>,
node-gyp <!nocheck>,
node-hosted-git-info <!nocheck>,
node-https-proxy-agent <!nocheck>,
node-ini <!nocheck>,
node-ip <!nocheck>,
node-ip-regex <!nocheck>,
node-json-parse-better-errors <!nocheck>,
node-jsonparse <!nocheck>,
node-lru-cache <!nocheck>,
node-marked-man,
node-minimatch <!nocheck>,
node-minipass <!nocheck>,
node-mkdirp <!nocheck>,
node-ms <!nocheck>,
node-negotiator <!nocheck>,
node-nopt <!nocheck>,
node-normalize-package-data <!nocheck>,
node-npm-bundled <!nocheck>,
node-npm-package-arg <!nocheck>,
node-npmlog <!nocheck>,
node-once <!nocheck>,
node-opener <!nocheck>,
node-promise-retry <!nocheck>,
node-promzard <!nocheck>,
node-read <!nocheck>,
node-read-package-json <!nocheck>,
node-rimraf <!nocheck>,
node-semver <!nocheck>,
node-ssri <!nocheck>,
node-string-width <!nocheck>,
node-strip-ansi <!nocheck>,
node-tap <!nodoc>,
node-tar <!nocheck>,
node-text-table <!nocheck>,
node-validate-npm-package-license <!nocheck>,
node-validate-npm-package-name <!nocheck>,
node-which <!nocheck>,
node-wrappy <!nocheck>,
node-write-file-atomic <!nocheck>,
node-yallist
Standards-Version: 4.6.0
Vcs-Browser: https://gitee.com/openkylin/npm
Vcs-Git: https://gitee.com/openkylin/npm.git
Homepage: https://docs.npmjs.com/
Rules-Requires-Root: no
Package: npm
Architecture: all
Depends: ${misc:Depends},
ca-certificates,
node-abbrev,
node-agent-base,
node-ansistyles,
node-aproba,
node-archy,
node-asap,
node-cacache,
node-chalk,
node-chownr,
node-cli-table3,
node-colors,
node-columnify,
node-debug,
node-depd,
node-emoji-regex,
node-encoding,
node-glob,
node-got,
node-graceful-fs,
node-gyp,
node-hosted-git-info,
node-https-proxy-agent,
node-ini,
node-ip,
node-ip-regex,
node-json-parse-better-errors,
node-jsonparse,
node-lru-cache,
node-minimatch,
node-minipass,
node-mkdirp,
node-ms,
node-negotiator,
node-nopt,
node-normalize-package-data,
node-npm-bundled,
node-npm-package-arg,
node-npmlog,
node-once,
node-promise-retry,
node-promzard,
node-read,
node-read-package-json,
node-rimraf,
node-semver,
node-ssri,
node-string-width,
node-strip-ansi,
node-tar,
node-text-table,
node-validate-npm-package-license,
node-validate-npm-package-name,
node-which,
node-wrappy,
node-write-file-atomic,
node-yallist,
nodejs:any (>= 10),
Recommends: git
, node-tap
Suggests: node-opener
Provides: ${nodejs:Provides}
, arborist (= ${arborist:Version})
, npm-packlist (= ${npmpl:Version})
, pacote (= ${pacote:Version})
, qrcode-terminal (= ${qrt:Version})
Description: package manager for Node.js
Node.js is an event-based server-side javascript engine.
.
npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
conflicts intelligently.
.
It is extremely configurable to support a wide variety of use cases.
Most commonly, it is used to publish, discover, install, and develop
node programs.
.
Install also node-opener to have full npm features enabled.

501
debian/copyright vendored
View File

@ -1,501 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: npm
Upstream-Contact: https://github.com/npm/cli/issues
Source: https://github.com/npm/cli
Repackaged for easier copyright maintainability - note also that underscore contains a minified file.
Either external modules are available as debian packages, in which case
they are removed; or they are not good candidates for being packaged
at the moment, in which case they are kept.
Files-Excluded:
node_modules/abbrev
node_modules/agent-base
node_modules/aggregate-error
node_modules/ansi-regex
node_modules/ansi-styles
node_modules/ansistyles
node_modules/aproba
node_modules/archy
node_modules/are-we-there-yet
node_modules/asap
node_modules/balanced-match
node_modules/binary-extensions
node_modules/brace-expansion
node_modules/builtins
node_modules/cacache
node_modules/chalk
node_modules/chownr
node_modules/clean-stack
node_modules/cli-table3
node_modules/clone
node_modules/color-convert
node_modules/color-name
node_modules/colors
node_modules/color-support
node_modules/columnify
node_modules/concat-map
node_modules/console-control-strings
node_modules/debug
node_modules/defaults
node_modules/delegates
node_modules/depd
node_modules/diff
node_modules/emoji-regex
node_modules/encoding
node_modules/err-code
node_modules/fs.realpath
node_modules/function-bind
node_modules/gauge
node_modules/glob
node_modules/graceful-fs
node_modules/has
node_modules/has-flag
node_modules/has-unicode
node_modules/hosted-git-info
node_modules/http-cache-semantics
node_modules/http-proxy-agent
node_modules/https-proxy-agent
node_modules/iconv-lite
node_modules/imurmurhash
node_modules/indent-string
node_modules/inflight
node_modules/inherits
node_modules/ini
node_modules/ip
node_modules/ip-regex
node_modules/is-core-module
node_modules/is-fullwidth-code-point
node_modules/isexe
node_modules/is-typedarray
node_modules/jsonparse
node_modules/json-parse-even-better-errors
node_modules/lru-cache
node_modules/minimatch
node_modules/minipass-collect
node_modules/minipass-fetch
node_modules/minipass-flush
node_modules/minipass-json-stream
node_modules/minipass-pipeline
node_modules/minipass-sized
node_modules/minipass
node_modules/minizlib
node_modules/mkdirp
node_modules/ms
node_modules/mute-stream
node_modules/negotiator
node_modules/node-gyp
node_modules/nopt
node_modules/normalize-package-data
node_modules/npm-bundled
node_modules/@npmcli/move-file
node_modules/npmlog
node_modules/npm-package-arg
node_modules/once
node_modules/opener
node_modules/path-is-absolute
node_modules/p-map
node_modules/promise-inflight
node_modules/promise-retry
node_modules/promzard
node_modules/read
node_modules/readable-stream
node_modules/read-package-json
node_modules/retry
node_modules/rimraf
node_modules/safe-buffer
node_modules/safer-buffer
node_modules/semver
node_modules/set-blocking
node_modules/signal-exit
node_modules/spdx-correct
node_modules/spdx-exceptions
node_modules/spdx-expression-parse
node_modules/spdx-license-ids
node_modules/ssri
node_modules/string_decoder
node_modules/string-width
node_modules/strip-ansi
node_modules/supports-color
node_modules/tar
node_modules/text-table
node_modules/@tootallnate/once
node_modules/typedarray-to-buffer
node_modules/unique-filename
node_modules/util-deprecate
node_modules/validate-npm-package-license
node_modules/validate-npm-package-name
node_modules/wcwidth
node_modules/which
node_modules/wide-align
node_modules/wrappy
node_modules/write-file-atomic
node_modules/yallist
Files: *
Copyright: npm, Inc. and Contributors
License: Artistic-2.0
Files: docs/*
Copyright: 2015, gatsbyjs
License: Expat
Files: node_modules/*
Copyright: npm, Inc.
License: ISC
Files: node_modules/agentkeepalive/*
Copyright: 2012-2015, fengmk2 <fengmk2@gmail.com>
Joyent, Inc. and other Node contributors
License: Expat
Files: node_modules/ansicolors/*
Copyright: 2013, Thorsten Lorenz
License: Expat
Files: node_modules/fastest-levenshtein/*
Copyright: 2020 Kasper Unn Weihe
License: Expat
Files: node_modules/cidr-regex/*
node_modules/is-cidr/*
Copyright: silverwind
License: Expat
Files: node_modules/cli-columns/*
Copyright: Shannon Moeller <me@shannonmoeller.com>
License: Expat
Files: node_modules/common-ancestor-path/*
node_modules/dezalgo/*
node_modules/fs-minipass/*
node_modules/ignore-walk/*
node_modules/json-stringify-nice/*
node_modules/mkdirp-infer-owner/*
node_modules/npm-packlist/*
node_modules/pacote/*
node_modules/promise-all-reject-late/*
node_modules/promise-call-limit/*
node_modules/readdir-scoped-modules/*
node_modules/walk-up-path/*
Copyright: Isaac Z. Schlueter
License: ISC
Files: node_modules/debuglog/*
Copyright: Joyent, Inc. and other Node contributors
License: Expat
Files: node_modules/humanize-ms/*
Copyright: dead-horse <dead_horse@qq.com>
License: Expat
Files: node_modules/is-lambda/*
Copyright: 2016-2017 Thomas Watson Steen
License: Expat
Files: node_modules/just-diff-apply/*
node_modules/just-diff/*
Copyright: 2016 angus croll
License: Expat
Files: node_modules/npm-install-checks/*
Copyright: Robert Kowalski <rok@kowalski.gd>
Isaac Z. Schlueter
License: BSD-2-Clause
Files: node_modules/npm-user-validate/*
Copyright: Robert Kowalski <rok@kowalski.gd>
License: BSD-2-Clause
Files: node_modules/qrcode-terminal/*
Copyright: Unknown
License: Apache-2.0
Files: node_modules/qrcode-terminal/vendor/QRCode/*
Copyright: 2009 Kazuhiko Arase
License: Expat
Files: node_modules/read-cmd-shim/*
Copyright: 2015 Rebecca Turner
License: ISC
Files: node_modules/smart-buffer/*
node_modules/socks/*
Copyright: 2013-2017, Josh Glazebrook
License: Expat
Files: node_modules/tiny-relative-date/*
Copyright: 2017, Joseph Wynn
License: Expat
Files: debian/*
Copyright: 2011-2019, Jérémy Lal <kapouer@melix.org>
2011-2012, Jonas Smedegaard <dr@jones.dk>
2018-2020, Pirate Praveen <praveen@debian.org>
2019, Manas Kashyap <manaskashyaptech@gmail.com>
2019-2021, Yadd <yadd@debian.org>
License: Artistic-2.0
License: Apache-2.0
On Debian systems, the complete text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
License: Artistic-2.0
The Artistic License 2.0
.
Copyright (c) 2000-2006, The Perl Foundation.
.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
.
Preamble
.
This license establishes the terms under which a given free software
Package may be copied, modified, distributed, and/or redistributed.
The intent is that the Copyright Holder maintains some artistic
control over the development of that Package while still keeping the
Package available as open source and free software.
.
You are always permitted to make arrangements wholly outside of this
license directly with the Copyright Holder of a given Package. If the
terms of this license do not permit the full use that you propose to
make of the Package, you should contact the Copyright Holder and seek
a different licensing arrangement.
.
Definitions
.
"Copyright Holder" means the individual(s) or organization(s)
named in the copyright notice for the entire Package.
.
"Contributor" means any party that has contributed code or other
material to the Package, in accordance with the Copyright Holder's
procedures.
.
"You" and "your" means any person who would like to copy,
distribute, or modify the Package.
.
"Package" means the collection of files distributed by the
Copyright Holder, and derivatives of that collection and/or of
those files. A given Package may consist of either the Standard
Version, or a Modified Version.
.
"Distribute" means providing a copy of the Package or making it
accessible to anyone else, or in the case of a company or
organization, to others outside of your company or organization.
.
"Distributor Fee" means any fee that you charge for Distributing
this Package or providing support for this Package to another
party. It does not mean licensing fees.
.
"Standard Version" refers to the Package if it has not been
modified, or has been modified only in ways explicitly requested
by the Copyright Holder.
.
"Modified Version" means the Package, if it has been changed, and
such changes were not explicitly requested by the Copyright
Holder.
.
"Original License" means this Artistic License as Distributed with
the Standard Version of the Package, in its current version or as
it may be modified by The Perl Foundation in the future.
.
"Source" form means the source code, documentation source, and
configuration files for the Package.
.
"Compiled" form means the compiled bytecode, object code, binary,
or any other form resulting from mechanical transformation or
translation of the Source form.
.
.
Permission for Use and Modification Without Distribution
.
(1) You are permitted to use the Standard Version and create and use
Modified Versions for any purpose without restriction, provided that
you do not Distribute the Modified Version.
.
.
Permissions for Redistribution of the Standard Version
.
(2) You may Distribute verbatim copies of the Source form of the
Standard Version of this Package in any medium without restriction,
either gratis or for a Distributor Fee, provided that you duplicate
all of the original copyright notices and associated disclaimers. At
your discretion, such verbatim copies may or may not include a
Compiled form of the Package.
.
(3) You may apply any bug fixes, portability changes, and other
modifications made available from the Copyright Holder. The resulting
Package will still be considered the Standard Version, and as such
will be subject to the Original License.
.
.
Distribution of Modified Versions of the Package as Source
.
(4) You may Distribute your Modified Version as Source (either gratis
or for a Distributor Fee, and with or without a Compiled form of the
Modified Version) provided that you clearly document how it differs
from the Standard Version, including, but not limited to, documenting
any non-standard features, executables, or modules, and provided that
you do at least ONE of the following:
.
(a) make the Modified Version available to the Copyright Holder
of the Standard Version, under the Original License, so that the
Copyright Holder may include your modifications in the Standard
Version.
.
(b) ensure that installation of your Modified Version does not
prevent the user installing or running the Standard Version. In
addition, the Modified Version must bear a name that is different
from the name of the Standard Version.
.
(c) allow anyone who receives a copy of the Modified Version to
make the Source form of the Modified Version available to others
under
.
(i) the Original License or
.
(ii) a license that permits the licensee to freely copy,
modify and redistribute the Modified Version using the same
licensing terms that apply to the copy that the licensee
received, and requires that the Source form of the Modified
Version, and of any works derived from it, be made freely
available in that license fees are prohibited but Distributor
Fees are allowed.
.
.
Distribution of Compiled Forms of the Standard Version
or Modified Versions without the Source
.
(5) You may Distribute Compiled forms of the Standard Version without
the Source, provided that you include complete instructions on how to
get the Source of the Standard Version. Such instructions must be
valid at the time of your distribution. If these instructions, at any
time while you are carrying out such distribution, become invalid, you
must provide new instructions on demand or cease further distribution.
If you provide valid instructions or cease distribution within thirty
days after you become aware that the instructions are invalid, then
you do not forfeit any of your rights under this license.
.
(6) You may Distribute a Modified Version in Compiled form without
the Source, provided that you comply with Section 4 with respect to
the Source of the Modified Version.
.
.
Aggregating or Linking the Package
.
(7) You may aggregate the Package (either the Standard Version or
Modified Version) with other packages and Distribute the resulting
aggregation provided that you do not charge a licensing fee for the
Package. Distributor Fees are permitted, and licensing fees for other
components in the aggregation are permitted. The terms of this license
apply to the use and Distribution of the Standard or Modified Versions
as included in the aggregation.
.
(8) You are permitted to link Modified and Standard Versions with
other works, to embed the Package in a larger work of your own, or to
build stand-alone binary or bytecode versions of applications that
include the Package, and Distribute the result without restriction,
provided the result does not expose a direct interface to the Package.
.
.
Items That are Not Considered Part of a Modified Version
.
(9) Works (including, but not limited to, modules and scripts) that
merely extend or make use of the Package, do not, by themselves, cause
the Package to be a Modified Version. In addition, such works are not
considered parts of the Package itself, and are not subject to the
terms of this license.
.
.
General Provisions
.
(10) Any use, modification, and distribution of the Standard or
Modified Versions is governed by this Artistic License. By using,
modifying or distributing the Package, you accept this license. Do not
use, modify, or distribute the Package, if you do not accept this
license.
.
(11) If your Modified Version has been derived from a Modified
Version made by someone other than you, you are nevertheless required
to ensure that your Modified Version complies with the requirements of
this license.
.
(12) This license does not grant you the right to use any trademark,
service mark, tradename, or logo of the Copyright Holder.
.
(13) This license includes the non-exclusive, worldwide,
free-of-charge patent license to make, have made, use, offer to sell,
sell, import and otherwise transfer the Package with respect to any
patent claims licensable by the Copyright Holder that are necessarily
infringed by the Package. If you institute patent litigation
(including a cross-claim or counterclaim) against any party alleging
that the Package constitutes direct or contributory patent
infringement, then this Artistic License to you shall terminate on the
date that such litigation is filed.
.
(14) Disclaimer of Warranty:
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: BSD-2-Clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
.
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License: ISC
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted, provided that the
above copyright notice and this permission notice appear in all
copies.
.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

1394
debian/copyright_hints vendored

File diff suppressed because it is too large Load Diff

3
debian/docs vendored
View File

@ -1,3 +0,0 @@
CONTRIBUTING.md
README.md
changelogs/*

1
debian/install vendored
View File

@ -1 +0,0 @@
debian/npmrc usr/share/nodejs/npm

3
debian/links vendored
View File

@ -1,3 +0,0 @@
usr/share/man usr/share/nodejs/npm/man
usr/share/nodejs/npm usr/share/npm
usr/share/man/man1/npm-arborist.1.gz usr/share/man/man1/arborist.1.gz

3
debian/manpages vendored
View File

@ -1,3 +0,0 @@
man/man1/*.1
man/man5/n*.5
man/man5/p*.5

View File

@ -1,3 +0,0 @@
node_modules/*
node_modules/@*/*
packages/*

2
debian/nodejs/files vendored
View File

@ -1,2 +0,0 @@
bin
lib

10
debian/nodejs/links vendored
View File

@ -1,10 +0,0 @@
npm/node_modules @npmcli/node_modules
npm/node_modules npm-packlist/node_modules
npm/node_modules pacote/node_modules
npm/bin/npm-cli.js /usr/bin/npm
npm/bin/npx-cli.js /usr/bin/npx
@npmcli/arborist/bin/index.js /usr/bin/arborist
@npmcli/arborist/bin/index.js /usr/bin/npm-arborist
npm-packlist/bin/index.js /usr/bin/npm-packlist
pacote/lib/bin.js /usr/bin/pacote
qrcode-terminal/bin/qrcode-terminal.js /usr/bin/qrcode-terminal

View File

@ -1,5 +0,0 @@
node_modules/@npmcli/*
node_modules/npm-packlist
packages/*
node_modules/pacote
node_modules/qrcode-terminal

View File

@ -1 +0,0 @@
lib/utils/completion.sh npm

View File

@ -1,6 +0,0 @@
# False positive
executable-not-elf-or-script usr/share/nodejs/@npmcli/run-script/lib/node-gyp-bin/node-gyp.cmd
extra-license-file usr/share/nodejs/@npmcli/arborist/bin/license.js
repeated-path-segment arborist usr/share/nodejs/@npmcli/arborist/lib/arborist/
# Unneeded chmod +x
script-not-executable usr/share/nodejs/npm/node_modules/*

View File

@ -1,3 +0,0 @@
rm_conffile /etc/bash_completion.d/npm 5.8.0+ds6-4~
dir_to_symlink /usr/share/npm nodejs/npm 7.0.8+ds-2~
symlink_to_dir /usr/share/nodejs/npm ../npm 7.0.8+ds-2~

5
debian/npmrc vendored
View File

@ -1,5 +0,0 @@
# DO NOT MODIFY THIS FILE - use /etc/npmrc instead.
globalconfig=/etc/npmrc
globalignorefile=/etc/npmignore
prefix=/usr/local

View File

@ -1,11 +0,0 @@
Description: remove shebang from completion script
Forwarded: not-needed
Author: Jérémy Lal <kapouer@melix.org>
Last-Update: 2012-04-07
--- a/lib/utils/completion.sh
+++ b/lib/utils/completion.sh
@@ -1,4 +1,3 @@
-#!/bin/bash
###-begin-npm-completion-###
#
# npm command completion script

View File

@ -1,17 +0,0 @@
Author: Diane Trout <diane@ghic.org>
Forwarded: not-needed
Description: Use the Debian packaged version of node-gyp instead
of the convenience copy that was removed on repack.
Reviewed-By: Xavier Guimard <yadd@debian.org>
Last-Update: 2020-10-08
--- a/bin/node-gyp-bin/node-gyp
+++ b/bin/node-gyp-bin/node-gyp
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
if [ "x$npm_config_node_gyp" = "x" ]; then
- node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
+ /usr/bin/node-gyp "$@"
else
"$npm_config_node_gyp" "$@"
fi

View File

@ -1,16 +0,0 @@
Description: don't install dependencies during build
Author: Xavier Guimard <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2021-09-22
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@
# don't regenerate the snapshot if we're generating
# snapshots, since presumably we just did that.
-mandocs: dev-deps $(mandocs)
+mandocs: $(mandocs)
@ ! [ $${npm_lifecycle_event} = "snap" ] && \
! [ $${npm_lifecycle_event} = "postsnap" ] && \
TAP_SNAPSHOT=1 node test/lib/utils/config/definitions.js || true

View File

@ -1,19 +0,0 @@
Description: Use source-date-epoch as timestamp source for documentation
Author: James Addison <jay+salsa@jp-hosting.net>
Origin: https://salsa.debian.org/js-team/npm/-/merge_requests/7
Forwarded: no
Reviewed-By: Yadd <yadd@debian.org>
Last-Update: 2021-11-27
--- a/scripts/docs-build.js
+++ b/scripts/docs-build.js
@@ -36,7 +36,8 @@
.replace(/\[([^\]]+)\]\(\/using-npm\/([^)]+)\)/g, replacer)
.trim()
- fs.writeFile(dest, marked(result), 'utf8', function (err) {
+ var date = new Date(process.env.SOURCE_DATE_EPOCH)
+ fs.writeFile(dest, marked(result, {date}), 'utf8', function (err) {
if (err) {
return console.log(err)
}

View File

@ -1,95 +0,0 @@
Description: don't check for last version
Author: Yadd <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2021-12-13
--- a/lib/utils/update-notifier.js
+++ b/lib/utils/update-notifier.js
@@ -35,85 +35,8 @@
}
const updateNotifier = async (npm, spec = 'latest') => {
- // never check for updates in CI, when updating npm already, or opted out
- if (!npm.config.get('update-notifier') ||
- isGlobalNpmUpdate(npm) ||
- ciDetect()) {
- return null
- }
-
- // if we're on a prerelease train, then updates are coming fast
- // check for a new one daily. otherwise, weekly.
- const { version } = npm
- const current = semver.parse(version)
-
- // if we're on a beta train, always get the next beta
- if (current.prerelease.length) {
- spec = `^${version}`
- }
-
- // while on a beta train, get updates daily
- const duration = spec !== 'latest' ? DAILY : WEEKLY
-
- // if we've already checked within the specified duration, don't check again
- if (!(await checkTimeout(npm, duration))) {
- return null
- }
-
- // if they're currently using a prerelease, nudge to the next prerelease
- // otherwise, nudge to latest.
- const useColor = log.useColor()
-
- const mani = await pacote.manifest(`npm@${spec}`, {
- // always prefer latest, even if doing --tag=whatever on the cmd
- defaultTag: 'latest',
- ...npm.flatOptions,
- }).catch(() => null)
-
- // if pacote failed, give up
- if (!mani) {
- return null
- }
-
- const latest = mani.version
-
- // if the current version is *greater* than latest, we're on a 'next'
- // and should get the updates from that release train.
- // Note that this isn't another http request over the network, because
- // the packument will be cached by pacote from previous request.
- if (semver.gt(version, latest) && spec === 'latest') {
- return updateNotifier(npm, `^${version}`)
- }
-
- // if we already have something >= the desired spec, then we're done
- if (semver.gte(version, latest)) {
- return null
- }
-
- // ok! notify the user about this update they should get.
- // The message is saved for printing at process exit so it will not get
- // lost in any other messages being printed as part of the command.
- const update = semver.parse(mani.version)
- const type = update.major !== current.major ? 'major'
- : update.minor !== current.minor ? 'minor'
- : update.patch !== current.patch ? 'patch'
- : 'prerelease'
- const typec = !useColor ? type
- : type === 'major' ? chalk.red(type)
- : type === 'minor' ? chalk.yellow(type)
- : chalk.green(type)
- const oldc = !useColor ? current : chalk.red(current)
- const latestc = !useColor ? latest : chalk.green(latest)
- const changelog = `https://github.com/npm/cli/releases/tag/v${latest}`
- const changelogc = !useColor ? `<${changelog}>` : chalk.cyan(changelog)
- const cmd = `npm install -g npm@${latest}`
- const cmdc = !useColor ? `\`${cmd}\`` : chalk.green(cmd)
- const message = `\nNew ${typec} version of npm available! ` +
- `${oldc} -> ${latestc}\n` +
- `Changelog: ${changelogc}\n` +
- `Run ${cmdc} to update!\n`
-
- return message
+ // Maintained by Debian JS Team
+ return null
}
// only update the notification timeout if we actually finished checking

View File

@ -1,64 +0,0 @@
Description: fix test
Author: Yadd <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2021-10-06
--- a/test/lib/edit.js
+++ b/test/lib/edit.js
@@ -52,11 +52,11 @@
editorOpts = null
})
- return edit.exec(['semver'], (err) => {
+ return edit.exec(['init-package-json'], (err) => {
if (err)
throw err
- const path = resolve(__dirname, '../../node_modules/semver')
+ const path = resolve(__dirname, '../../node_modules/init-package-json')
t.strictSame(editorBin, EDITOR, 'used the correct editor')
t.strictSame(editorArgs, [path], 'edited the correct directory')
t.strictSame(editorOpts, { stdio: 'inherit' }, 'passed the correct opts')
@@ -75,8 +75,8 @@
})
rebuildFail = new Error('test error')
- return edit.exec(['semver'], (err) => {
- const path = resolve(__dirname, '../../node_modules/semver')
+ return edit.exec(['init-package-json'], (err) => {
+ const path = resolve(__dirname, '../../node_modules/init-package-json')
t.strictSame(editorBin, EDITOR, 'used the correct editor')
t.strictSame(editorArgs, [path], 'edited the correct directory')
t.strictSame(editorOpts, { stdio: 'inherit' }, 'passed the correct opts')
@@ -96,11 +96,11 @@
EDITOR = 'vim'
})
- return edit.exec(['semver'], (err) => {
+ return edit.exec(['init-package-json'], (err) => {
if (err)
throw err
- const path = resolve(__dirname, '../../node_modules/semver')
+ const path = resolve(__dirname, '../../node_modules/init-package-json')
t.strictSame(editorBin, 'code', 'used the correct editor')
t.strictSame(editorArgs, ['-w', path], 'edited the correct directory, keeping flags')
t.strictSame(editorOpts, { stdio: 'inherit' }, 'passed the correct opts')
@@ -125,7 +125,7 @@
gracefulFs.lstat = _lstat
})
- return edit.exec(['semver'], (err) => {
+ return edit.exec(['init-package-json'], (err) => {
t.match(err, /lstat failed/, 'user received correct error')
t.end()
})
@@ -137,7 +137,7 @@
EDITOR_CODE = 0
})
- return edit.exec(['semver'], (err) => {
+ return edit.exec(['init-package-json'], (err) => {
t.match(err, /exited with code: 137/, 'user received correct error')
t.end()
})

View File

@ -1,70 +0,0 @@
Description: remove some tests (needs tap ≥ 14)
Author: Xavier Guimard <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2021-03-15
--- a/test/lib/utils/config.js
+++ b/test/lib/utils/config.js
@@ -65,28 +65,6 @@
const os = { networkInterfaces, tmpdir }
const pkg = { version: '7.0.0' }
-t.test('working network interfaces, not windows', t => {
- const config = requireInject('../../../lib/utils/config.js', {
- os,
- '@npmcli/ci-detect': () => false,
- '../../../lib/utils/is-windows.js': false,
- '../../../package.json': pkg,
- })
- t.matchSnapshot(config)
- t.end()
-})
-
-t.test('no working network interfaces, on windows', t => {
- const config = requireInject('../../../lib/utils/config.js', {
- os: { tmpdir, networkInterfaces: networkInterfacesThrow },
- '@npmcli/ci-detect': () => false,
- '../../../lib/utils/is-windows.js': true,
- '../../../package.json': pkg,
- })
- t.matchSnapshot(config)
- t.end()
-})
-
t.test('no comspec on windows', t => {
delete process.env.ComSpec
const config = requireInject('../../../lib/utils/config.js', {
--- a/test/lib/utils/flat-options.js
+++ b/test/lib/utils/flat-options.js
@@ -142,7 +142,6 @@
npmSession: '12345',
cache: generatedFlat.cache.replace(/\\/g, '/'),
}
- t.matchSnapshot(clean, 'flat options')
t.equal(generatedFlat.npmCommand, null, 'command not set yet')
npm.command = 'view'
t.equal(generatedFlat.npmCommand, 'view', 'command updated via getter')
--- a/test/lib/utils/reify-finish.js
+++ b/test/lib/utils/reify-finish.js
@@ -63,21 +63,6 @@
})
})
-t.test('should write if everything above passes', async t => {
- expectWrite = true
- delete builtinConfMock.loadError
- const path = t.testdir()
- await reifyFinish(npm, {
- options: { global: true },
- actualTree: {
- inventory: new Map([['node_modules/npm', {path}]]),
- },
- })
- // windowwwwwwssss!!!!!
- const data = fs.readFileSync(`${path}/npmrc`, 'utf8').replace(/\r\n/g, '\n')
- t.matchSnapshot(data, 'written config')
-})
-
t.test('works without fs.promises', async t => {
t.doesNotThrow(() => requireInject('../../../lib/utils/reify-finish.js', {
fs: { ...fs, promises: null },

View File

@ -1,6 +0,0 @@
2004_remove_shebang.patch
2011_node-gyp-path.patch
2012_dont_install_man_deps.patch
2020_reproducible_documentation_build.patch
dont-check-for-last-version.patch
#fix-test.patch

57
debian/rules vendored
View File

@ -1,57 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1
export HOME=/tmp
ARBORIST_VERSION=$(shell pkgjs-pjson node_modules/@npmcli/arborist version)
NPM_PACKLIST_VERSION=$(shell pkgjs-pjson node_modules/npm-packlist version)
PACOTE_VERSION=$(shell pkgjs-pjson node_modules/pacote version)
QRT_VERSION=$(shell pkgjs-pjson node_modules/qrcode-terminal version)
%:
dh $@ --with bash-completion
override_dh_auto_build:
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
prefix=/usr make mandocs
help2man --no-discard-stderr -n "the npm tree doctor" -N \
--version-string $(ARBORIST_VERSION) \
node_modules/@npmcli/arborist/bin/index.js \
>man/man1/npm-arborist.1
node_modules/qrcode-terminal/bin/qrcode-terminal.js --help
help2man -N -n 'The JavaScript Package Handler' --version-string $(PACOTE_VERSION) \
node_modules/pacote/lib/bin.js >man/man1/pacote.1
help2man -N -n 'List files to embed in npm package' --version-string $(NPM_PACKLIST_VERSION) \
node_modules/npm-packlist/bin/index.js >man/man1/npm-packlist.1
endif
override_dh_fixperms:
dh_fixperms
chmod a-x debian/npm/usr/share/nodejs/npm/lib/utils/completion.sh
chmod a+x debian/npm/usr/share/nodejs/npm/bin/npm-cli.js
chmod a+x debian/npm/usr/share/nodejs/npm/bin/npx-cli.js
chmod a+x debian/npm/usr/share/nodejs/@npmcli/arborist/bin/index.js
chmod a+x debian/npm/usr/share/nodejs/npm-packlist/bin/index.js
chmod a+x debian/npm/usr/share/nodejs/pacote/lib/bin.js
chmod a+x debian/npm/usr/share/nodejs/qrcode-terminal/bin/qrcode-terminal.js
override_dh_auto_test:
# Test are lauched only during autopkgtest
override_dh_auto_install:
dh_auto_install --buildsystem=nodejs
rm -vf debian/npm/usr/share/nodejs/npm/bin/node-gyp-bin/node-gyp.cmd \
debian/npm/usr/share/nodejs/npm/bin/*.cmd \
debian/npm/usr/share/nodejs/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp.cmd
override_dh_link:
rm -rf debian/npm/usr/share/nodejs/npm/man
dh_link
override_dh_gencontrol:
dh_gencontrol -- -Vpacote:Version="$(PACOTE_VERSION)" \
-Vqrt:Version="$(QRT_VERSION)" \
-Vnpmpl:Version="$(NPM_PACKLIST_VERSION)" \
-Varborist:Version="$(ARBORIST_VERSION)"

View File

@ -1 +0,0 @@
3.0 (native)

View File

@ -1,30 +0,0 @@
# False positives
source-is-missing node_modules/emoji-regex/index.js
source-is-missing node_modules/emoji-regex/text.js
source-is-missing workspaces/*/test/fixtures/*
source-contains-prebuilt-javascript-object node_modules/emoji-regex/es2015/index.js
source-contains-prebuilt-javascript-object node_modules/emoji-regex/es2015/text.js
source-contains-prebuilt-javascript-object node_modules/emoji-regex/index.js
source-contains-prebuilt-javascript-object node_modules/emoji-regex/text.js
source-contains-prebuilt-javascript-object workspaces/*/test/fixtures/*
very-long-line-length-in-source-file *.md line *
very-long-line-length-in-source-file *.json line *
very-long-line-length-in-source-file changelogs/CHANGELOG-* line *
very-long-line-length-in-source-file node_modules/emoji-regex/es2015/index.js line 5 is 11033 characters long (>512)
very-long-line-length-in-source-file node_modules/emoji-regex/es2015/text.js line 5 is 11034 characters long (>512)
very-long-line-length-in-source-file node_modules/emoji-regex/index.js line 5 is 10209 characters long (>512)
very-long-line-length-in-source-file node_modules/emoji-regex/text.js line 5 is 10210 characters long (>512)
very-long-line-length-in-source-file node_modules/smart-buffer/build/smartbuffer.js.map line 1 is 20978 characters long (>512)
very-long-line-length-in-source-file node_modules/smart-buffer/build/utils.js.map line 1 is 2024 characters long (>512)
very-long-line-length-in-source-file node_modules/socks-proxy-agent/dist/agent.js.map line 1 is 4149 characters long (>512)
very-long-line-length-in-source-file node_modules/socks/build/client/socksclient.js.map line 1 is 22601 characters long (>512)
very-long-line-length-in-source-file node_modules/socks/build/common/constants.js.map line 1 is 2402 characters long (>512)
very-long-line-length-in-source-file node_modules/socks/build/common/helpers.js.map line 1 is 3584 characters long (>512)
very-long-line-length-in-source-file node_modules/socks/build/common/receivebuffer.js.map line 1 is 1605 characters long (>512)
very-long-line-length-in-source-file node_modules/socks/build/common/util.js.map line 1 is 662 characters long (>512)
very-long-line-length-in-source-file smoke-tests/content/abbrev.json line 442 is 547 characters long (>512)
very-long-line-length-in-source-file smoke-tests/content/promise-all-reject-late.json line *
very-long-line-length-in-source-file smoke-tests/content/promise-all-reject-late.min.json line *
very-long-line-length-in-source-file tap-snapshots/test/lib/commands/search.js.test.cjs line 19 is 1110 characters long (>512)
very-long-line-length-in-source-file workspaces/*/test/fixtures/* line *
very-long-line-length-in-source-file workspaces/arborist/docs/*.svg line *

View File

@ -1,8 +0,0 @@
Tests: install-test, no-duplication
Depends: @
Restrictions: allow-stderr, needs-internet, skippable
Test-Command: npm --version
Depends: @
Restrictions: superficial
Features: test-name=npm-version

View File

@ -1,9 +0,0 @@
set -ex
export HOME=${AUTOPKGTEST_TMP:-${TMPDIR:-/tmp}}
/usr/bin/npm outdated || true
cd "$AUTOPKGTEST_TMP"
/usr/bin/npm list
/usr/bin/npm init --yes
/usr/bin/npm install --save-prod --production -q pretty-ms
/usr/bin/npm view babel-core
/usr/bin/npm search pretty-ms

View File

@ -1,10 +0,0 @@
#!/bin/sh
RE=`grep node_modules/ debian/nodejs/root_modules | perl -ne 'chomp;m#^node_modules/(.*?)(?:/.*)?$# && push @a,$1;END{print "(",join("|",@a).")"}'`
if pkgjs-ls|grep DUPLICATE|egrep -v "$RE"; then
echo "code duplication found" >&2
exit 77
else
echo "no duplication found"
exit 0
fi

View File

@ -1 +0,0 @@
require

View File

@ -1 +0,0 @@
test/lib/utils/update-notifier.js

10
debian/watch vendored
View File

@ -1,10 +0,0 @@
version=4
opts=\
repacksuffix=~ds,\
repack,compression=xz,\
filenamemangle=s/.*?(\d[\d\.-]*@ARCHIVE_EXT@)/npm-$1/,\
dversionmangle=auto \
https://github.com/npm/cli/tags .*/archive/.*/v?([\d\.]+).tar.gz
# Experimental releases
# https://github.com/npm/cli/tags .*/archive/.*/v?([\d\.]+(?:\-[\w\.]+)?).tar.gz

17
docs/.eslintrc.js Normal file
View File

@ -0,0 +1,17 @@
/* This file is automatically added by @npmcli/template-oss. Do not edit. */
'use strict'
const { readdirSync: readdir } = require('fs')
const localConfigs = readdir(__dirname)
.filter((file) => file.startsWith('.eslintrc.local.'))
.map((file) => `./${file}`)
module.exports = {
root: true,
extends: [
'@npmcli',
...localConfigs,
],
}

21
docs/.gitignore vendored Normal file
View File

@ -0,0 +1,21 @@
# This file is automatically added by @npmcli/template-oss. Do not edit.
# ignore everything in the root
/*
# keep these
!**/.gitignore
!/.eslintrc.js
!/.eslintrc.local.*
!/.gitignore
!/bin/
!/CHANGELOG*
!/docs/
!/lib/
!/LICENSE*
!/map.js
!/package.json
!/README*
!/scripts/
!/tap-snapshots/
!/test/

5
docs/README.md Normal file
View File

@ -0,0 +1,5 @@
# docs
[![CI - docs](https://github.com/npm/cli/actions/workflows/ci-docs.yml/badge.svg)](https://github.com/npm/cli/actions/workflows/ci-docs.yml)
Scripts to build the npm docs.

9
docs/bin/build.js Normal file
View File

@ -0,0 +1,9 @@
const run = require('../lib/build.js')
const { paths } = require('../lib/index')
run(paths)
.then((res) => console.log(`Wrote ${res.length} files`))
.catch((err) => {
process.exitCode = 1
console.error(err)
})

View File

@ -1,5 +0,0 @@
{
"github_repo": "npm/cli",
"github_branch": "latest",
"github_path": "docs/content"
}

View File

@ -1,94 +0,0 @@
---
title: npm-adduser
section: 1
description: Add a registry user account
---
### Synopsis
```bash
npm adduser [--registry=url] [--scope=@orgname] [--auth-type=legacy]
aliases: login, add-user
```
Note: This command is unaware of workspaces.
### Description
Create or verify a user named `<username>` in the specified registry, and
save the credentials to the `.npmrc` file. If no registry is specified,
the default registry will be used (see [`config`](/using-npm/config)).
The username, password, and email are read in from prompts.
To reset your password, go to <https://www.npmjs.com/forgot>
To change your email address, go to <https://www.npmjs.com/email-edit>
You may use this command multiple times with the same user account to
authorize on a new machine. When authenticating on a new machine,
the username, password and email address must all match with
your existing record.
`npm login` is an alias to `adduser` and behaves exactly the same way.
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `registry`
* Default: "https://registry.npmjs.org/"
* Type: URL
The base URL of the npm registry.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `scope`
* Default: the scope of the current project, if any, or ""
* Type: String
Associate an operation with a scope for a scoped registry.
Useful when logging in to or out of a private registry:
```
# log in, linking the scope to the custom registry
npm login --scope=@mycorp --registry=https://registry.mycorp.com
# log out, removing the link and the auth token
npm logout --scope=@mycorp
```
This will cause `@mycorp` to be mapped to the registry for future
installation of packages specified according to the pattern
`@mycorp/package`.
This will also cause `npm init` to create a scoped package.
```
# accept all defaults, and create a package named "@foo/whatever",
# instead of just named "whatever"
npm init --scope=@foo --yes
```
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm registry](/using-npm/registry)
* [npm config](/commands/npm-config)
* [npmrc](/configuring-npm/npmrc)
* [npm owner](/commands/npm-owner)
* [npm whoami](/commands/npm-whoami)
* [npm token](/commands/npm-token)
* [npm profile](/commands/npm-profile)

View File

@ -1,49 +0,0 @@
---
title: npm-bin
section: 1
description: Display npm bin folder
---
### Synopsis
```bash
npm bin [-g|--global]
```
Note: This command is unaware of workspaces.
### Description
Print the folder where npm will install executables.
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `global`
* Default: false
* Type: Boolean
Operates in "global" mode, so that packages are installed into the `prefix`
folder instead of the current working directory. See
[folders](/configuring-npm/folders) for more on the differences in behavior.
* packages are installed into the `{prefix}/lib/node_modules` folder, instead
of the current working directory.
* bin files are linked to `{prefix}/bin`
* man pages are linked to `{prefix}/share/man`
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm prefix](/commands/npm-prefix)
* [npm root](/commands/npm-root)
* [npm folders](/configuring-npm/folders)
* [npm config](/commands/npm-config)
* [npmrc](/configuring-npm/npmrc)

View File

@ -1,62 +0,0 @@
---
title: npm-bugs
section: 1
description: Report bugs for a package in a web browser
---
### Synopsis
```bash
npm bugs [<pkgname> [<pkgname> ...]]
aliases: issues
```
### Description
This command tries to guess at the likely location of a package's bug
tracker URL or the `mailto` URL of the support email, and then tries to
open it using the `--browser` config param. If no package name is provided, it
will search for a `package.json` in the current folder and use the `name` property.
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `browser`
* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
* Type: null, Boolean, or String
The browser that is called by npm commands to open websites.
Set to `false` to suppress browser behavior and instead print urls to
terminal.
Set to `true` to use default system URL opener.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `registry`
* Default: "https://registry.npmjs.org/"
* Type: URL
The base URL of the npm registry.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm docs](/commands/npm-docs)
* [npm view](/commands/npm-view)
* [npm publish](/commands/npm-publish)
* [npm registry](/using-npm/registry)
* [npm config](/commands/npm-config)
* [npmrc](/configuring-npm/npmrc)
* [package.json](/configuring-npm/package-json)

View File

@ -1,117 +0,0 @@
---
title: npm-ci
section: 1
description: Install a project with a clean slate
---
### Synopsis
```bash
npm ci
```
### Description
This command is similar to [`npm install`](/commands/npm-install), except
it's meant to be used in automated environments such as test platforms,
continuous integration, and deployment -- or any situation where you want
to make sure you're doing a clean install of your dependencies.
`npm ci` will be significantly faster when:
- There is a `package-lock.json` or `npm-shrinkwrap.json` file.
- The `node_modules` folder is missing or empty.
In short, the main differences between using `npm install` and `npm ci` are:
* The project **must** have an existing `package-lock.json` or
`npm-shrinkwrap.json`.
* If dependencies in the package lock do not match those in `package.json`,
`npm ci` will exit with an error, instead of updating the package lock.
* `npm ci` can only install entire projects at a time: individual
dependencies cannot be added with this command.
* If a `node_modules` is already present, it will be automatically removed
before `npm ci` begins its install.
* It will never write to `package.json` or any of the package-locks:
installs are essentially frozen.
### Example
Make sure you have a package-lock and an up-to-date install:
```bash
$ cd ./my/npm/project
$ npm install
added 154 packages in 10s
$ ls | grep package-lock
```
Run `npm ci` in that project
```bash
$ npm ci
added 154 packages in 5s
```
Configure Travis to build using `npm ci` instead of `npm install`:
```bash
# .travis.yml
install:
- npm ci
# keep the npm cache around to speed up installs
cache:
directories:
- "$HOME/.npm"
```
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `audit`
* Default: true
* Type: Boolean
When "true" submit audit reports alongside the current npm command to the
default registry and all registries configured for scopes. See the
documentation for [`npm audit`](/commands/npm-audit) for details on what is
submitted.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `ignore-scripts`
* Default: false
* Type: Boolean
If true, npm does not run scripts specified in package.json files.
Note that commands explicitly intended to run a particular script, such as
`npm start`, `npm stop`, `npm restart`, `npm test`, and `npm run-script`
will still run their intended script if `ignore-scripts` is set, but they
will *not* run any pre- or post-scripts.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `script-shell`
* Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows
* Type: null or String
The shell to use for scripts run with the `npm exec`, `npm run` and `npm
init <pkg>` commands.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm install](/commands/npm-install)
* [package-lock.json](/configuring-npm/package-lock-json)

View File

@ -1,173 +0,0 @@
---
title: npm-config
section: 1
description: Manage the npm configuration files
---
### Synopsis
```bash
npm config set <key>=<value> [<key>=<value> ...]
npm config get [<key> [<key> ...]]
npm config delete <key> [<key> ...]
npm config list [--json]
npm config edit
npm set <key>=<value> [<key>=<value> ...]
npm get [<key> [<key> ...]]
alias: c
```
Note: This command is unaware of workspaces.
### Description
npm gets its config settings from the command line, environment
variables, `npmrc` files, and in some cases, the `package.json` file.
See [npmrc](/configuring-npm/npmrc) for more information about the npmrc
files.
See [config(7)](/using-npm/config) for a more thorough explanation of the
mechanisms involved, and a full list of config options available.
The `npm config` command can be used to update and edit the contents
of the user and global npmrc files.
### Sub-commands
Config supports the following sub-commands:
#### set
```bash
npm config set key=value [key=value...]
npm set key=value [key=value...]
```
Sets each of the config keys to the value provided.
If value is omitted, then it sets it to an empty string.
Note: for backwards compatibility, `npm config set key value` is supported
as an alias for `npm config set key=value`.
#### get
```bash
npm config get [key ...]
npm get [key ...]
```
Echo the config value(s) to stdout.
If multiple keys are provided, then the values will be prefixed with the
key names.
If no keys are provided, then this command behaves the same as `npm config
list`.
#### list
```bash
npm config list
```
Show all the config settings. Use `-l` to also show defaults. Use `--json`
to show the settings in json format.
#### delete
```bash
npm config delete key [key ...]
```
Deletes the specified keys from all configuration files.
#### edit
```bash
npm config edit
```
Opens the config file in an editor. Use the `--global` flag to edit the
global config.
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `json`
* Default: false
* Type: Boolean
Whether or not to output JSON data, rather than the normal output.
* In `npm pkg set` it enables parsing set values with JSON.parse() before
saving them to your `package.json`.
Not supported by all npm commands.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `global`
* Default: false
* Type: Boolean
Operates in "global" mode, so that packages are installed into the `prefix`
folder instead of the current working directory. See
[folders](/configuring-npm/folders) for more on the differences in behavior.
* packages are installed into the `{prefix}/lib/node_modules` folder, instead
of the current working directory.
* bin files are linked to `{prefix}/bin`
* man pages are linked to `{prefix}/share/man`
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `editor`
* Default: The EDITOR or VISUAL environment variables, or 'notepad.exe' on
Windows, or 'vim' on Unix systems
* Type: String
The command to run for `npm edit` and `npm config edit`.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `location`
* Default: "user" unless `--global` is passed, which will also set this value
to "global"
* Type: "global", "user", or "project"
When passed to `npm config` this refers to which config file to use.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `long`
* Default: false
* Type: Boolean
Show extended information in `ls`, `search`, and `help-search`.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm folders](/configuring-npm/folders)
* [npm config](/commands/npm-config)
* [package.json](/configuring-npm/package-json)
* [npmrc](/configuring-npm/npmrc)
* [npm](/commands/npm)

View File

@ -1,310 +0,0 @@
---
title: npm-dedupe
section: 1
description: Reduce duplication in the package tree
---
### Synopsis
```bash
npm dedupe
npm ddp
aliases: ddp
```
### Description
Searches the local package tree and attempts to simplify the overall
structure by moving dependencies further up the tree, where they can
be more effectively shared by multiple dependent packages.
For example, consider this dependency graph:
```
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
```
In this case, `npm dedupe` will transform the tree to:
```bash
a
+-- b
+-- d
`-- c@1.0.10
```
Because of the hierarchical nature of node's module lookup, b and d
will both get their dependency met by the single c package at the root
level of the tree.
In some cases, you may have a dependency graph like this:
```
a
+-- b <-- depends on c@1.0.x
+-- c@1.0.3
`-- d <-- depends on c@1.x
`-- c@1.9.9
```
During the installation process, the `c@1.0.3` dependency for `b` was
placed in the root of the tree. Though `d`'s dependency on `c@1.x` could
have been satisfied by `c@1.0.3`, the newer `c@1.9.0` dependency was used,
because npm favors updates by default, even when doing so causes
duplication.
Running `npm dedupe` will cause npm to note the duplication and
re-evaluate, deleting the nested `c` module, because the one in the root is
sufficient.
To prefer deduplication over novelty during the installation process, run
`npm install --prefer-dedupe` or `npm config set prefer-dedupe true`.
Arguments are ignored. Dedupe always acts on the entire tree.
Note that this operation transforms the dependency tree, but will never
result in new modules being installed.
Using `npm find-dupes` will run the command in `--dry-run` mode.
Note that by default `npm dedupe` will not update the semver values of direct
dependencies in your project `package.json`, if you want to also update
values in `package.json` you can run: `npm dedupe --save` (or add the
`save=true` option to a [configuration file](/configuring-npm/npmrc)
to make that the default behavior).
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `global-style`
* Default: false
* Type: Boolean
Causes npm to install the package into your local `node_modules` folder with
the same layout it uses with the global `node_modules` folder. Only your
direct dependencies will show in `node_modules` and everything they depend
on will be flattened in their `node_modules` folders. This obviously will
eliminate some deduping. If used with `legacy-bundling`, `legacy-bundling`
will be preferred.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `legacy-bundling`
* Default: false
* Type: Boolean
Causes npm to install the package such that versions of npm prior to 1.4,
such as the one included with node 0.8, can install the package. This
eliminates all automatic deduping. If used with `global-style` this option
will be preferred.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `strict-peer-deps`
* Default: false
* Type: Boolean
If set to `true`, and `--legacy-peer-deps` is not set, then _any_
conflicting `peerDependencies` will be treated as an install failure, even
if npm could reasonably guess the appropriate resolution based on non-peer
dependency relationships.
By default, conflicting `peerDependencies` deep in the dependency graph will
be resolved using the nearest non-peer dependency specification, even if
doing so will result in some packages receiving a peer dependency outside
the range set in their package's `peerDependencies` object.
When such and override is performed, a warning is printed, explaining the
conflict and the packages involved. If `--strict-peer-deps` is set, then
this warning is treated as a failure.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `package-lock`
* Default: true
* Type: Boolean
If set to false, then ignore `package-lock.json` files when installing. This
will also prevent _writing_ `package-lock.json` if `save` is true.
When package package-locks are disabled, automatic pruning of extraneous
modules will also be disabled. To remove extraneous modules with
package-locks disabled use `npm prune`.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `omit`
* Default: 'dev' if the `NODE_ENV` environment variable is set to
'production', otherwise empty.
* Type: "dev", "optional", or "peer" (can be set multiple times)
Dependency types to omit from the installation tree on disk.
Note that these dependencies _are_ still resolved and added to the
`package-lock.json` or `npm-shrinkwrap.json` file. They are just not
physically installed on disk.
If a package type appears in both the `--include` and `--omit` lists, then
it will be included.
If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment
variable will be set to `'production'` for all lifecycle scripts.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `ignore-scripts`
* Default: false
* Type: Boolean
If true, npm does not run scripts specified in package.json files.
Note that commands explicitly intended to run a particular script, such as
`npm start`, `npm stop`, `npm restart`, `npm test`, and `npm run-script`
will still run their intended script if `ignore-scripts` is set, but they
will *not* run any pre- or post-scripts.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `audit`
* Default: true
* Type: Boolean
When "true" submit audit reports alongside the current npm command to the
default registry and all registries configured for scopes. See the
documentation for [`npm audit`](/commands/npm-audit) for details on what is
submitted.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `bin-links`
* Default: true
* Type: Boolean
Tells npm to create symlinks (or `.cmd` shims on Windows) for package
executables.
Set to false to have it not do this. This can be used to work around the
fact that some file systems don't support symlinks, even on ostensibly Unix
systems.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `fund`
* Default: true
* Type: Boolean
When "true" displays the message at the end of each `npm install`
acknowledging the number of dependencies looking for funding. See [`npm
fund`](/commands/npm-fund) for details.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `dry-run`
* Default: false
* Type: Boolean
Indicates that you don't want npm to make any changes and that it should
only report what it would have done. This can be passed into any of the
commands that modify your local installation, eg, `install`, `update`,
`dedupe`, `uninstall`, as well as `pack` and `publish`.
Note: This is NOT honored by other network related commands, eg `dist-tags`,
`owner`, etc.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `workspace`
* Default:
* Type: String (can be set multiple times)
Enable running a command in the context of the configured workspaces of the
current project while filtering by running only the workspaces defined by
this configuration option.
Valid values for the `workspace` config are either:
* Workspace names
* Path to a workspace directory
* Path to a parent workspace directory (will result in selecting all
workspaces within that folder)
When set for the `npm init` command, this may be set to the folder of a
workspace which does not yet exist, to create the folder and set it up as a
brand new workspace within the project.
This value is not exported to the environment for child processes.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `workspaces`
* Default: null
* Type: null or Boolean
Set to true to run the command in the context of **all** configured
workspaces.
Explicitly setting this to false will cause commands like `install` to
ignore workspaces altogether. When not set explicitly:
- Commands that operate on the `node_modules` tree (install, update, etc.)
will link workspaces into the `node_modules` folder. - Commands that do
other things (test, exec, publish, etc.) will operate on the root project,
_unless_ one or more workspaces are specified in the `workspace` config.
This value is not exported to the environment for child processes.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `include-workspace-root`
* Default: false
* Type: Boolean
Include the workspace root when workspaces are enabled for a command.
When false, specifying individual workspaces via the `workspace` config, or
all workspaces via the `workspaces` flag, will cause npm to operate only on
the specified workspaces, and not on the root project.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm find-dupes](/commands/npm-find-dupes)
* [npm ls](/commands/npm-ls)
* [npm update](/commands/npm-update)
* [npm install](/commands/npm-install)

View File

@ -1,122 +0,0 @@
---
title: npm-docs
section: 1
description: Open documentation for a package in a web browser
---
### Synopsis
```bash
npm docs [<pkgname> [<pkgname> ...]]
aliases: home
```
### Description
This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the `--browser` config
param. You can pass multiple package names at once. If no package name is
provided, it will search for a `package.json` in the current folder and use
the `name` property.
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `browser`
* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
* Type: null, Boolean, or String
The browser that is called by npm commands to open websites.
Set to `false` to suppress browser behavior and instead print urls to
terminal.
Set to `true` to use default system URL opener.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `registry`
* Default: "https://registry.npmjs.org/"
* Type: URL
The base URL of the npm registry.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `workspace`
* Default:
* Type: String (can be set multiple times)
Enable running a command in the context of the configured workspaces of the
current project while filtering by running only the workspaces defined by
this configuration option.
Valid values for the `workspace` config are either:
* Workspace names
* Path to a workspace directory
* Path to a parent workspace directory (will result in selecting all
workspaces within that folder)
When set for the `npm init` command, this may be set to the folder of a
workspace which does not yet exist, to create the folder and set it up as a
brand new workspace within the project.
This value is not exported to the environment for child processes.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `workspaces`
* Default: null
* Type: null or Boolean
Set to true to run the command in the context of **all** configured
workspaces.
Explicitly setting this to false will cause commands like `install` to
ignore workspaces altogether. When not set explicitly:
- Commands that operate on the `node_modules` tree (install, update, etc.)
will link workspaces into the `node_modules` folder. - Commands that do
other things (test, exec, publish, etc.) will operate on the root project,
_unless_ one or more workspaces are specified in the `workspace` config.
This value is not exported to the environment for child processes.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `include-workspace-root`
* Default: false
* Type: Boolean
Include the workspace root when workspaces are enabled for a command.
When false, specifying individual workspaces via the `workspace` config, or
all workspaces via the `workspaces` flag, will cause npm to operate only on
the specified workspaces, and not on the root project.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm view](/commands/npm-view)
* [npm publish](/commands/npm-publish)
* [npm registry](/using-npm/registry)
* [npm config](/commands/npm-config)
* [npmrc](/configuring-npm/npmrc)
* [package.json](/configuring-npm/package-json)

View File

@ -1,112 +0,0 @@
---
title: npm-explain
section: 1
description: Explain installed packages
---
### Synopsis
```bash
npm explain <folder | specifier>
alias: why
```
### Description
This command will print the chain of dependencies causing a given package
to be installed in the current project.
Positional arguments can be either folders within `node_modules`, or
`name@version-range` specifiers, which will select the dependency
relationships to explain.
For example, running `npm explain glob` within npm's source tree will show:
```bash
glob@7.1.6
node_modules/glob
glob@"^7.1.4" from the root project
glob@7.1.1 dev
node_modules/tacks/node_modules/glob
glob@"^7.0.5" from rimraf@2.6.2
node_modules/tacks/node_modules/rimraf
rimraf@"^2.6.2" from tacks@1.3.0
node_modules/tacks
dev tacks@"^1.3.0" from the root project
```
To explain just the package residing at a specific folder, pass that as the
argument to the command. This can be useful when trying to figure out
exactly why a given dependency is being duplicated to satisfy conflicting
version requirements within the project.
```bash
$ npm explain node_modules/nyc/node_modules/find-up
find-up@3.0.0 dev
node_modules/nyc/node_modules/find-up
find-up@"^3.0.0" from nyc@14.1.1
node_modules/nyc
nyc@"^14.1.1" from tap@14.10.8
node_modules/tap
dev tap@"^14.10.8" from the root project
```
### Configuration
<!-- AUTOGENERATED CONFIG DESCRIPTIONS START -->
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `json`
* Default: false
* Type: Boolean
Whether or not to output JSON data, rather than the normal output.
* In `npm pkg set` it enables parsing set values with JSON.parse() before
saving them to your `package.json`.
Not supported by all npm commands.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
#### `workspace`
* Default:
* Type: String (can be set multiple times)
Enable running a command in the context of the configured workspaces of the
current project while filtering by running only the workspaces defined by
this configuration option.
Valid values for the `workspace` config are either:
* Workspace names
* Path to a workspace directory
* Path to a parent workspace directory (will result in selecting all
workspaces within that folder)
When set for the `npm init` command, this may be set to the folder of a
workspace which does not yet exist, to create the folder and set it up as a
brand new workspace within the project.
This value is not exported to the environment for child processes.
<!-- automatically generated, do not edit manually -->
<!-- see lib/utils/config/definitions.js -->
<!-- AUTOGENERATED CONFIG DESCRIPTIONS END -->
### See Also
* [npm config](/commands/npm-config)
* [npmrc](/configuring-npm/npmrc)
* [npm folders](/configuring-npm/folders)
* [npm ls](/commands/npm-ls)
* [npm install](/commands/npm-install)
* [npm link](/commands/npm-link)
* [npm prune](/commands/npm-prune)
* [npm outdated](/commands/npm-outdated)
* [npm update](/commands/npm-update)

Some files were not shown because too many files have changed in this diff Show More