
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
diff-lockfiles
Advanced tools
Note: this is a fork of https://github.com/mxweaver/lock-diff, but it operates on Git commit ranges rather than on files.
Install diff-lockfiles globally:
npm install -g diff-lockfiles
Try it out:
diff-lockfiles --color origin/main dependabot/branch
diff-lockfiles --color HEAD~1 HEAD
diff-lockfiles --help
Usage: diff-lockfiles [options] <from> <to>
diff all changed package-lock.json files in repo
Options:
-V, --version output the version number
-f, --format <format> changes the output format (default: "table")
-m, --max-buffer maximum read buffer size
-c, --color colorizes certain output formats (default: false)
-s, --shallow only include direct dependencies of the project (default: false)
-h, --help display help for command
--format=table (default)$ diff-lockfiles HEAD~1 HEAD
╔═══════════════════════════════════════════════════════════════════╤═════════════╤═════════════╗
║ package-lock.json │ │ ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ package │ old version │ new version ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/console │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/core │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/environment │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/expect │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/expect-utils │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/fake-timers │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/globals │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/reporters │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/schemas │ 29.6.0 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/source-map │ 29.6.0 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/test-result │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/test-sequencer │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/transform │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/types │ 29.6.1 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@types/babel__core │ 7.20.0 │ 7.20.1 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@types/babel__traverse │ 7.18.2 │ 7.20.1 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/babel-jest │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/babel-plugin-jest-hoist │ 29.5.0 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/babel-preset-jest │ 29.5.0 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/dedent │ 1.3.0 │ 1.5.1 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/diff-sequences │ 29.4.3 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/expect │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/fsevents │ 2.3.2 │ 2.3.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/is-core-module │ 2.12.1 │ 2.13.0 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-changed-files │ 29.5.0 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-circus │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-cli │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-config │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-diff │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-docblock │ 29.4.3 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-each │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-environment-node │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-get-type │ 29.4.3 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-haste-map │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-leak-detector │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-matcher-utils │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-message-util │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-mock │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-regex-util │ 29.4.3 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-resolve │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-resolve-dependencies │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-runner │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-runtime │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-snapshot │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-util │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-validate │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-watcher │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/jest-worker │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/pretty-format │ 29.6.2 │ 29.6.3 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/resolve │ 1.22.2 │ 1.22.4 ║
╟───────────────────────────────────────────────────────────────────┼─────────────┼─────────────╢
║ node_modules/@jest/reporters/node_modules/istanbul-lib-instrument │ null │ 6.0.0 ║
╚═══════════════════════════════════════════════════════════════════╧═════════════╧═════════════╝
--format=jsondiff-lockfiles --format json HEAD~1 HEAD
{
"node_modules/@jest/console": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/core": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/environment": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/expect": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/expect-utils": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/fake-timers": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/globals": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/reporters": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/schemas": [
"29.6.0",
"29.6.3"
],
"node_modules/@jest/source-map": [
"29.6.0",
"29.6.3"
],
"node_modules/@jest/test-result": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/test-sequencer": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/transform": [
"29.6.2",
"29.6.3"
],
"node_modules/@jest/types": [
"29.6.1",
"29.6.3"
],
"node_modules/@types/babel__core": [
"7.20.0",
"7.20.1"
],
"node_modules/@types/babel__traverse": [
"7.18.2",
"7.20.1"
],
"node_modules/babel-jest": [
"29.6.2",
"29.6.3"
],
"node_modules/babel-plugin-jest-hoist": [
"29.5.0",
"29.6.3"
],
"node_modules/babel-preset-jest": [
"29.5.0",
"29.6.3"
],
"node_modules/dedent": [
"1.3.0",
"1.5.1"
],
"node_modules/diff-sequences": [
"29.4.3",
"29.6.3"
],
"node_modules/expect": [
"29.6.2",
"29.6.3"
],
"node_modules/fsevents": [
"2.3.2",
"2.3.3"
],
"node_modules/is-core-module": [
"2.12.1",
"2.13.0"
],
"node_modules/jest": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-changed-files": [
"29.5.0",
"29.6.3"
],
"node_modules/jest-circus": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-cli": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-config": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-diff": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-docblock": [
"29.4.3",
"29.6.3"
],
"node_modules/jest-each": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-environment-node": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-get-type": [
"29.4.3",
"29.6.3"
],
"node_modules/jest-haste-map": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-leak-detector": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-matcher-utils": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-message-util": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-mock": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-regex-util": [
"29.4.3",
"29.6.3"
],
"node_modules/jest-resolve": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-resolve-dependencies": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-runner": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-runtime": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-snapshot": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-util": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-validate": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-watcher": [
"29.6.2",
"29.6.3"
],
"node_modules/jest-worker": [
"29.6.2",
"29.6.3"
],
"node_modules/pretty-format": [
"29.6.2",
"29.6.3"
],
"node_modules/resolve": [
"1.22.2",
"1.22.4"
],
"node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": [
null,
"6.0.0"
]
}
--format=text$ diff-lockfiles --format text HEAD~1 HEAD
node_modules/@jest/console 29.6.2 -> 29.6.3
node_modules/@jest/core 29.6.2 -> 29.6.3
node_modules/@jest/environment 29.6.2 -> 29.6.3
node_modules/@jest/expect 29.6.2 -> 29.6.3
node_modules/@jest/expect-utils 29.6.2 -> 29.6.3
node_modules/@jest/fake-timers 29.6.2 -> 29.6.3
node_modules/@jest/globals 29.6.2 -> 29.6.3
node_modules/@jest/reporters 29.6.2 -> 29.6.3
node_modules/@jest/schemas 29.6.0 -> 29.6.3
node_modules/@jest/source-map 29.6.0 -> 29.6.3
node_modules/@jest/test-result 29.6.2 -> 29.6.3
node_modules/@jest/test-sequencer 29.6.2 -> 29.6.3
node_modules/@jest/transform 29.6.2 -> 29.6.3
node_modules/@jest/types 29.6.1 -> 29.6.3
node_modules/@types/babel__core 7.20.0 -> 7.20.1
node_modules/@types/babel__traverse 7.18.2 -> 7.20.1
node_modules/babel-jest 29.6.2 -> 29.6.3
node_modules/babel-plugin-jest-hoist 29.5.0 -> 29.6.3
node_modules/babel-preset-jest 29.5.0 -> 29.6.3
node_modules/dedent 1.3.0 -> 1.5.1
node_modules/diff-sequences 29.4.3 -> 29.6.3
node_modules/expect 29.6.2 -> 29.6.3
node_modules/fsevents 2.3.2 -> 2.3.3
node_modules/is-core-module 2.12.1 -> 2.13.0
node_modules/jest 29.6.2 -> 29.6.3
node_modules/jest-changed-files 29.5.0 -> 29.6.3
node_modules/jest-circus 29.6.2 -> 29.6.3
node_modules/jest-cli 29.6.2 -> 29.6.3
node_modules/jest-config 29.6.2 -> 29.6.3
node_modules/jest-diff 29.6.2 -> 29.6.3
node_modules/jest-docblock 29.4.3 -> 29.6.3
node_modules/jest-each 29.6.2 -> 29.6.3
node_modules/jest-environment-node 29.6.2 -> 29.6.3
node_modules/jest-get-type 29.4.3 -> 29.6.3
node_modules/jest-haste-map 29.6.2 -> 29.6.3
node_modules/jest-leak-detector 29.6.2 -> 29.6.3
node_modules/jest-matcher-utils 29.6.2 -> 29.6.3
node_modules/jest-message-util 29.6.2 -> 29.6.3
node_modules/jest-mock 29.6.2 -> 29.6.3
node_modules/jest-regex-util 29.4.3 -> 29.6.3
node_modules/jest-resolve 29.6.2 -> 29.6.3
node_modules/jest-resolve-dependencies 29.6.2 -> 29.6.3
node_modules/jest-runner 29.6.2 -> 29.6.3
node_modules/jest-runtime 29.6.2 -> 29.6.3
node_modules/jest-snapshot 29.6.2 -> 29.6.3
node_modules/jest-util 29.6.2 -> 29.6.3
node_modules/jest-validate 29.6.2 -> 29.6.3
node_modules/jest-watcher 29.6.2 -> 29.6.3
node_modules/jest-worker 29.6.2 -> 29.6.3
node_modules/pretty-format 29.6.2 -> 29.6.3
node_modules/resolve 1.22.2 -> 1.22.4
node_modules/@jest/reporters/node_modules/istanbul-lib-instrument added
--format=markdown$ diff-lockfiles --format markdown HEAD~1 HEAD
| package | old version | new version |
|---|---|---|
| node_modules/@jest/console | 29.6.2 | 29.6.3 |
| node_modules/@jest/core | 29.6.2 | 29.6.3 |
| node_modules/@jest/environment | 29.6.2 | 29.6.3 |
| node_modules/@jest/expect | 29.6.2 | 29.6.3 |
| node_modules/@jest/expect-utils | 29.6.2 | 29.6.3 |
| node_modules/@jest/fake-timers | 29.6.2 | 29.6.3 |
| node_modules/@jest/globals | 29.6.2 | 29.6.3 |
| node_modules/@jest/reporters | 29.6.2 | 29.6.3 |
| node_modules/@jest/schemas | 29.6.0 | 29.6.3 |
| node_modules/@jest/source-map | 29.6.0 | 29.6.3 |
| node_modules/@jest/test-result | 29.6.2 | 29.6.3 |
| node_modules/@jest/test-sequencer | 29.6.2 | 29.6.3 |
| node_modules/@jest/transform | 29.6.2 | 29.6.3 |
| node_modules/@jest/types | 29.6.1 | 29.6.3 |
| node_modules/@types/babel__core | 7.20.0 | 7.20.1 |
| node_modules/@types/babel__traverse | 7.18.2 | 7.20.1 |
| node_modules/babel-jest | 29.6.2 | 29.6.3 |
| node_modules/babel-plugin-jest-hoist | 29.5.0 | 29.6.3 |
| node_modules/babel-preset-jest | 29.5.0 | 29.6.3 |
| node_modules/dedent | 1.3.0 | 1.5.1 |
| node_modules/diff-sequences | 29.4.3 | 29.6.3 |
| node_modules/expect | 29.6.2 | 29.6.3 |
| node_modules/fsevents | 2.3.2 | 2.3.3 |
| node_modules/is-core-module | 2.12.1 | 2.13.0 |
| node_modules/jest | 29.6.2 | 29.6.3 |
| node_modules/jest-changed-files | 29.5.0 | 29.6.3 |
| node_modules/jest-circus | 29.6.2 | 29.6.3 |
| node_modules/jest-cli | 29.6.2 | 29.6.3 |
| node_modules/jest-config | 29.6.2 | 29.6.3 |
| node_modules/jest-diff | 29.6.2 | 29.6.3 |
| node_modules/jest-docblock | 29.4.3 | 29.6.3 |
| node_modules/jest-each | 29.6.2 | 29.6.3 |
| node_modules/jest-environment-node | 29.6.2 | 29.6.3 |
| node_modules/jest-get-type | 29.4.3 | 29.6.3 |
| node_modules/jest-haste-map | 29.6.2 | 29.6.3 |
| node_modules/jest-leak-detector | 29.6.2 | 29.6.3 |
| node_modules/jest-matcher-utils | 29.6.2 | 29.6.3 |
| node_modules/jest-message-util | 29.6.2 | 29.6.3 |
| node_modules/jest-mock | 29.6.2 | 29.6.3 |
| node_modules/jest-regex-util | 29.4.3 | 29.6.3 |
| node_modules/jest-resolve | 29.6.2 | 29.6.3 |
| node_modules/jest-resolve-dependencies | 29.6.2 | 29.6.3 |
| node_modules/jest-runner | 29.6.2 | 29.6.3 |
| node_modules/jest-runtime | 29.6.2 | 29.6.3 |
| node_modules/jest-snapshot | 29.6.2 | 29.6.3 |
| node_modules/jest-util | 29.6.2 | 29.6.3 |
| node_modules/jest-validate | 29.6.2 | 29.6.3 |
| node_modules/jest-watcher | 29.6.2 | 29.6.3 |
| node_modules/jest-worker | 29.6.2 | 29.6.3 |
| node_modules/pretty-format | 29.6.2 | 29.6.3 |
| node_modules/resolve | 1.22.2 | 1.22.4 |
| node_modules/@jest/reporters/node_modules/istanbul-lib-instrument | 6.0.0 |
NODE_OPTIONS=--experimental-vm-modules npm test
FAQs
a diff for package-lock.json files
We found that diff-lockfiles demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.