Files
kucherenko__jscpd/benchmark/tools/package-lock.json
apk ba6b1cb326 benchmark: add CPD tool comparison benchmark
Benchmark 7 copy/paste detection tools against the fixtures directory:

- jscpd@5 (Rust, local build)
- jscpd@4 (Node.js, local build)
- jscpd-rs (npm package)
- Fallow dupes (npm package)
- PMD CPD (34 languages, summed)
- Duplo (pre-built binary)
- Simian (JAR)

All tools built/installed locally (no npx at runtime).
Results, comparison table, and methodology in BENCHMARK.md.
2026-06-14 07:35:10 +02:00

259 lines
7.9 KiB
JSON

{
"name": "benchmark",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "benchmark",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"fallow": "^2.96.0",
"jscpd-rs": "^0.1.12"
}
},
"node_modules/@fallow-cli/darwin-arm64": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/darwin-arm64/-/darwin-arm64-2.96.0.tgz",
"integrity": "sha512-y5zqGloIyeDnLXtrmCDSaANK+jrEXIR9an3UokkIhtCvztq2/Oi4ha2kWgBuNDQhrT8dk9tXTYX/+lBV9a7Yhg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@fallow-cli/darwin-x64": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/darwin-x64/-/darwin-x64-2.96.0.tgz",
"integrity": "sha512-ofN1Y4MoGV2bO19j0p7REZBdflZJ7oSAAel8DOQkrcoAqa5rEu2iJAFO0u9I0gSDxQG/g++GawojPK2jWsGz7Q==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@fallow-cli/linux-arm64-gnu": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/linux-arm64-gnu/-/linux-arm64-gnu-2.96.0.tgz",
"integrity": "sha512-GlHpuXQhrK/BpDLV2GahGHSL+LawzufDLGfFujdrLCsOsCHggqWr0T3NR6fuzHgapel/nhtjBRzWJSYAMz0PLg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@fallow-cli/linux-arm64-musl": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/linux-arm64-musl/-/linux-arm64-musl-2.96.0.tgz",
"integrity": "sha512-EAKnmAxvALNiSomznrT/UwGOSI3B/V2ISFoJFaIOcd+K2tVr9rbxNyv40gPWgzECWukiDn+u+vWMO+ul7fpd4A==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@fallow-cli/linux-x64-gnu": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/linux-x64-gnu/-/linux-x64-gnu-2.96.0.tgz",
"integrity": "sha512-gobVZ9J1rhPanZyPkVHT0T9SmPHgC+C46IPPcjdjC0C655X7pAGV6CysVjvIBAo+pAIcUWVvkD5DiDa1OFYwgw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@fallow-cli/linux-x64-musl": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/linux-x64-musl/-/linux-x64-musl-2.96.0.tgz",
"integrity": "sha512-SjeU14V5SYUhXzYjKOVo2oijpxYSbMxKoiKzeiKNK+hmMGC7SoCPruP9jD8IdsTr1NmgR+MdkKafxuGmWBvWKw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@fallow-cli/win32-arm64-msvc": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/win32-arm64-msvc/-/win32-arm64-msvc-2.96.0.tgz",
"integrity": "sha512-KL6Xf/J/XPOhK0VfIURFYCyJ11tfa4pn6+HzKc8hKa4DucwJlvpO+Pk4937hEQgCkLC/HmCzZWPn3rE7WiIvNQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@fallow-cli/win32-x64-msvc": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/@fallow-cli/win32-x64-msvc/-/win32-x64-msvc-2.96.0.tgz",
"integrity": "sha512-WXrNyYxqW4A1jMAZuMLInGuzL4E35kQlaDfLtGqkbC3vbbq36eMPmdoXuK8trtllqg0NA8Cd+KYQwN8xA8zzNA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=8"
}
},
"node_modules/fallow": {
"version": "2.96.0",
"resolved": "https://registry.npmjs.org/fallow/-/fallow-2.96.0.tgz",
"integrity": "sha512-fNEj+b/LUVXwfyxZPnr+SJjdQHCKjUbWgluW/wC7Q5kcJENHNEJtmFDgpHEqKY6gY257xRCgyg1AlSC8YQgROA==",
"license": "MIT",
"dependencies": {
"detect-libc": "2.1.2"
},
"bin": {
"fallow": "bin/fallow",
"fallow-lsp": "bin/fallow-lsp",
"fallow-mcp": "bin/fallow-mcp"
},
"engines": {
"node": ">=16"
},
"optionalDependencies": {
"@fallow-cli/darwin-arm64": "2.96.0",
"@fallow-cli/darwin-x64": "2.96.0",
"@fallow-cli/linux-arm64-gnu": "2.96.0",
"@fallow-cli/linux-arm64-musl": "2.96.0",
"@fallow-cli/linux-x64-gnu": "2.96.0",
"@fallow-cli/linux-x64-musl": "2.96.0",
"@fallow-cli/win32-arm64-msvc": "2.96.0",
"@fallow-cli/win32-x64-msvc": "2.96.0"
}
},
"node_modules/jscpd-rs": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs/-/jscpd-rs-0.1.12.tgz",
"integrity": "sha512-74Yt24NYgtREk68z3Lr6ztVwjlYVek88ZYHJIvXTnCmw3cPzwHI28smiYiyFwXJQInd8VYGqdY3NuPsq4z0OOA==",
"license": "MIT",
"bin": {
"jscpd": "npm/bin/jscpd-rs.js",
"jscpd-rs": "npm/bin/jscpd-rs.js",
"jscpd-server": "npm/bin/jscpd-server.js"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"jscpd-rs-darwin-arm64": "0.1.12",
"jscpd-rs-darwin-x64": "0.1.12",
"jscpd-rs-linux-arm64-gnu": "0.1.12",
"jscpd-rs-linux-x64-gnu": "0.1.12",
"jscpd-rs-win": "0.1.12"
}
},
"node_modules/jscpd-rs-darwin-arm64": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs-darwin-arm64/-/jscpd-rs-darwin-arm64-0.1.12.tgz",
"integrity": "sha512-aMTvyeMIiP3dl3Hi7RiyPT4BkHoq3VyopB0powoiEJfzVFGKnWghlCgQpkACthqUAfg3lDY4kYuF0uZVu3JYjg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/jscpd-rs-darwin-x64": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs-darwin-x64/-/jscpd-rs-darwin-x64-0.1.12.tgz",
"integrity": "sha512-Sgb1F9vwi0iEg5p7cOIPZkd+dmGqZ6mHuHwD2Kzy3X/ISs/b+aHXj8YB+uDq5fn0oUU2v90beALINHJECqNQSQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/jscpd-rs-linux-arm64-gnu": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs-linux-arm64-gnu/-/jscpd-rs-linux-arm64-gnu-0.1.12.tgz",
"integrity": "sha512-I9C+BVwFGVMkK6eQSeQf5rpqT0SBVTQ2bH5fBF5P1n43q/t/YPd9hU2JN3fEKBSttaptyKLnvk29qsarZ9if0g==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/jscpd-rs-linux-x64-gnu": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs-linux-x64-gnu/-/jscpd-rs-linux-x64-gnu-0.1.12.tgz",
"integrity": "sha512-uFtOQb2ON7xKeGLD4wTbFlxUiIC7E3QBKn/Ee5B5eq8pZoxmlXQ24XUlH7jAa99j4W/oVaqy0M7pJYJRm1NCQw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/jscpd-rs-win": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/jscpd-rs-win/-/jscpd-rs-win-0.1.12.tgz",
"integrity": "sha512-mOuThcE0HEs2UBSdp3oeWReQtTRLb55e5PbbjHgoTk77dB3o4M71mbOR573tz/LkMT2BvpWH2bjfjdIEZ7l1WQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
}
}
}