{"_id":"worm-sign","_rev":"35-6096fa84d3e20bc3c05ba24ac04d4973","name":"worm-sign","dist-tags":{"latest":"4.2.0"},"versions":{"1.0.0":{"name":"worm-sign","version":"1.0.0","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@1.0.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/branislav-lang/banned-packages-scanner#readme","bugs":{"url":"https://github.com/branislav-lang/banned-packages-scanner/issues"},"bin":{"worm-sign":"bin/scan.js"},"dist":{"shasum":"8b5018f1dafd200b427f32e9a6c86e984db4bafc","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-1.0.0.tgz","fileCount":14,"integrity":"sha512-9wMo7DZn3uIgYhaNxKmpyI3+mqVGvrACWYxB4i98uunKPGNCSavMDTFDIw/Iw7jk7XcVizOS7TTm99iY/Hn9eQ==","signatures":[{"sig":"MEYCIQDqIKF0iN8wxp9c4DttwcHk3ziATo6rVG1PAbGG9QN/QQIhAJM4oAfBg+I4UZdq1Fz16KdkbqyqSKUWFPM+1YKtwt6L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110930},"main":"src/index.js","gitHead":"9784633da7190a81561c8732856435c35ed971c4","scripts":{"lint":"eslint src bin tests","test":"jest","format":"prettier --write src bin tests"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/branislav-lang/banned-packages-scanner.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^9.0.0","boxen":"^8.0.1","chalk":"^5.6.2","commander":"^14.0.2","cli-table3":"^0.6.5","gradient-string":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_1.0.0_1764262320758_0.2105428825505289","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"worm-sign","version":"1.0.1","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@1.0.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/branislav-lang/banned-packages-scanner#readme","bugs":{"url":"https://github.com/branislav-lang/banned-packages-scanner/issues"},"bin":{"worm-sign":"bin/scan.js"},"dist":{"shasum":"b5d0cc37ea6991c012836e02d2fd4f0d3ad2b5d7","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-1.0.1.tgz","fileCount":14,"integrity":"sha512-ZzEk/SUknARWuShDSYB+XKc4MVDPePvv1YKiGkg5FTKIh237bmbcJpc+YXM2XbVGaWgjB198xpYJ8a5mPG0VFA==","signatures":[{"sig":"MEYCIQCd+mo3PCb/6RCauIF0DIlf03QUBwhWhER5X5ZcEFN1DgIhAKNbUOsL1dTZJFOOFVASAcMOhfFE1i+Pwq9xoWFyRYhl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110833},"main":"src/index.js","gitHead":"0f396ca9c00f38d4c758a1a42e16003d1775e883","scripts":{"lint":"eslint src bin tests","test":"jest","format":"prettier --write src bin tests"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/branislav-lang/banned-packages-scanner.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^9.0.0","boxen":"^8.0.1","chalk":"^5.6.2","commander":"^14.0.2","cli-table3":"^0.6.5","gradient-string":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_1.0.1_1764263220604_0.7768935904680223","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"worm-sign","version":"1.0.2","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@1.0.2","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"bin/scan.js"},"dist":{"shasum":"17fc438bcfe3aba0d7a71332063037a63efd0656","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-1.0.2.tgz","fileCount":14,"integrity":"sha512-KrShqgeN+3JwqfY2lAGGLLmzTT5t1Jb/gBoMyj9CAgkmV4VVzNSagla9kTO0e6pYLQz/thDhjsiikzz+7oZLSw==","signatures":[{"sig":"MEQCIDT+LT0+ONOCpDyx8VuP0k4blYAaeByILakB1ydCpvNtAiAT9vXk+clCQevQB5H6fzDTv8yHe5IgtGRN8D3PiCPUqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110753},"main":"src/index.js","gitHead":"c8028dd8e1667c27d5aba1764552f153f62485de","scripts":{"lint":"eslint src bin tests","test":"jest","format":"prettier --write src bin tests"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^9.0.0","boxen":"^8.0.1","chalk":"^5.6.2","commander":"^14.0.2","cli-table3":"^0.6.5","gradient-string":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_1.0.2_1764263766206_0.9844615566757116","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"worm-sign","version":"1.0.3","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@1.0.3","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"bin/scan.js"},"dist":{"shasum":"999753c619aec9b21f4fdf46ca261e92092845ce","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-1.0.3.tgz","fileCount":15,"integrity":"sha512-2SblZsSLaX8BelN8a8Y+7v7MUsPr6T2P7NgSRScA14RElQf28EatBxbauVUuuBxW55cWJTZh04L+JQVbErcgyg==","signatures":[{"sig":"MEYCIQDbuFQkCEVdJRS3V0lYOx/F3bN7RLxRF0Pge5aoxR28YQIhAMvFAnrmTDJJMu3H3d2uD6izwMl4Aa5LdggoEr+9EWiW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110694},"main":"src/index.js","gitHead":"87103b4f130cb61be98f370e1d221534ac95d827","scripts":{"lint":"eslint src bin tests","test":"jest","format":"prettier --write src bin tests"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^9.0.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","prettier":"^3.7.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_1.0.3_1764264488281_0.45477191324270105","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"worm-sign","version":"2.0.1","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"f464ebfe6225590a91c03a419f62ded28b96015f","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.1.tgz","fileCount":16,"integrity":"sha512-vBZmb4tTDO7ZUjAPFXdFnoei7MkVrrlCC75FDBS1sxxSMr/3lHQdoZfJCBGUjIFV8w1BsQODC6F9nJzFr5pWkQ==","signatures":[{"sig":"MEQCIGs/zrqDr1RywC/cOsP7u6XjlMxhuDcRwyfWXPRgWEVQAiAOougo0Xefxa8qfAksH8L0BzQAjZBAIS+YRHhyOYVipg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64870},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.1_1764281289213_0.34331269398509634","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"worm-sign","version":"2.0.2","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.2","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"556816e9f7d81137074248dfcc2ae6026e7aba8d","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.2.tgz","fileCount":16,"integrity":"sha512-UazlBJLbQQE+bcA6LQL5L64xnPGF47IXeiKLnl2P4KAeoSjVUwGrZ85dMrD7wc5iTqGRXWNNpy91QIcHErg2pA==","signatures":[{"sig":"MEUCIQDdbOLSOIUZE/LqyKEkHrNRyL+NeOQFoS/95ShXuXjjfgIgfb2wAbYnSIJldQSOh5cVlwphcWW/gwCzebt0pYOxWSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64870},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.2_1764281407170_0.15142996753853","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"worm-sign","version":"2.0.3","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.3","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"1f25bd730bc4404da813292611903c7451c7ecbb","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.3.tgz","fileCount":16,"integrity":"sha512-zAMdi7C/z6aXpW/jP9Afc9BdbDh1UQMPfWDJ5RcbrGL3ujbUBUHbFV7Gf17SO8WKDg8Zd6xeCBDOslxsMBLZAQ==","signatures":[{"sig":"MEUCIEkY2vO+JQTfekDvEdJINebZJFKMFgRtYM3RTn0kb0HYAiEA0Ku+/o99oVZNikjtFV4wkb3ifzm7d6oq9FpS0xPqdjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64866},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.3_1764281790800_0.14463727066955956","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"worm-sign","version":"2.0.4","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.4","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"fc68af97fab873b16198ea76f8470df554d50e3f","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.4.tgz","fileCount":19,"integrity":"sha512-bTbZAQ4QsrLunhR6RWBJzImsfyttXNB2K+Ne0RGkJgCVcq+PFRSHAm4NVx3z7qfyhdazgWXER+iFlhLmHznolw==","signatures":[{"sig":"MEUCIGJ9aUctCnQHttUJ+S/aRArySFEdwB9HJF0sbd/IHde+AiEA82UNyZbVF1vUJxSFJHL+FpkPXfzTBxk3nhxE4hNFk8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166498},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.4_1764282222186_0.7340645326257738","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"worm-sign","version":"2.0.5","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.5","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"28fb642c60acfcb19d17e3b71c9fcb2de4e132f3","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.5.tgz","fileCount":20,"integrity":"sha512-geNZq/4XJOUuq1z8DgnU0KTvDWSvsRCE2AYVngh2mPQVF/sKhnzRBNCzJF549oQ/IYNsaRJQtIH81BSIEvxTJA==","signatures":[{"sig":"MEUCIQCI3hMKHwb1PXq722AeXA3UhqR7OjmqCDkE5WAmK3vVIgIgPYT8UvSApBubrP/OUUfAfLSfPTCOqz89dsldeQClXZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182475},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.5_1764282394034_0.5075646731350407","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"worm-sign","version":"2.0.6","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.6","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"2b6e046d46bfe5f10009388d3888e2c4056f6fd0","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.6.tgz","fileCount":21,"integrity":"sha512-9cde3oi9+LoakEmHySVggPiIIs9LwRvFhLF6WCe71fQpypzlQVb2Cq45fqgbQHCpnTaKdG6LxnUVG/BKTLXw7w==","signatures":[{"sig":"MEYCIQDq5fO1w2mOO1VI6mimlohj22X6RgepLpQzX/A5GPXAWAIhAJ5sMJzveLhu4EjqtUNpgAdwIkL3vREFg8JYA/IbuhaS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182906},"main":"dist/src/index.js","gitHead":"0fc7cba32e9a119e622fa05dc6c9723c46f3866d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.6_1764282765040_0.779384654703887","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"worm-sign","version":"2.0.7","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.7","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"c8e9deb2d8b3e7c603c61fda27518e9acf703a3e","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.7.tgz","fileCount":21,"integrity":"sha512-5MCUTUCkUDBkwgd5OpVD4Gmk9QTAh4CniLYKePkErU0+DX/XFKCcPV4REsL55tpgtHGeZ6L8Jdtqs2X1qJA+OQ==","signatures":[{"sig":"MEUCIAuodAt6ydZyUMqUOq3uAOyjkiZ0jG+sPN1qIbXwcqxNAiEAx2RzgjtY7FqhcXfOyQBSyTAAU6EYL6aTx3O2sK+saV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225829},"main":"dist/src/index.js","gitHead":"2eb3215ab6dcde505baf26c6e44f464d1e80dc08","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.7_1764282913594_0.28221221471731295","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"worm-sign","version":"2.0.8","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.8","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"d58d96eab25d745d8f3298094c72ed834e3e7301","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.8.tgz","fileCount":21,"integrity":"sha512-Uw7vKm9YalLEaCctWUjYqRvntLVYotpbsclpmAUHI7Kk1wGRufvN5MITHDUUySBKXER68zIBxIh3kVe0NR98xQ==","signatures":[{"sig":"MEQCIGMpLNc0XVHORsHUP1OVKcfgv/4T04yLDjAd2WAp8mzwAiA4gw0jrJlRfPmjE9UqGXzIXPqiuRPyfhwni6CSzvy1zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226369},"main":"dist/src/index.js","gitHead":"e84e541c9bddae920efec4d771c9d7473b769282","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.8_1764283428006_0.17536406001854865","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"worm-sign","version":"2.0.9","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.9","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"7bf6ccaed35806c7d71258b9d06fdfd61e615366","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.9.tgz","fileCount":21,"integrity":"sha512-y6cS7iHrvc4KPHz1N0JFsDzamGE+rWJs+vxbTf6NawB9t/lo92oZraqFnnhgsscdT9nepnIJAncCjrCVpkaWLw==","signatures":[{"sig":"MEYCIQCgkeTmwm5Rihn4UhtbQSwpYJTNz84Mv/NDX0Lp51/kQQIhAPLgcegCLNe3s/pWGh9PPLK0nCX83377/a7/LAZUNYFp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226369},"main":"dist/src/index.js","gitHead":"6a224a7ecf0585ac8cf1cd62a2aeff3a15ad266b","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A tool to scan for banned packages in your project.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.9_1764283795560_0.6438134902875494","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"worm-sign","version":"2.0.10","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.0.10","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"cea8a408107bf9e8df52b1e2e5cd30a1f8811f25","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.0.10.tgz","fileCount":21,"integrity":"sha512-KwkKyM21vrAnAXQ1vpPewRdOIsZoQcOWlNM0W2p8h1b1Vwgq5WL/e3qm6VycL4N2M7eQczkPOYoOc4Ew2alF4A==","signatures":[{"sig":"MEYCIQD1XETYMZSWHXRUwB0b5LsZKlKMIEsWFy7+FIbCh87HLAIhAKOBDLse77dKhZAkcLsgi+iCokoZSdXLLd8xL1rHXezd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226402},"main":"dist/src/index.js","gitHead":"6a224a7ecf0585ac8cf1cd62a2aeff3a15ad266b","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.0.10_1764283889451_0.6180952200130594","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"worm-sign","version":"2.1.0","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"602a780e9d9facd21e39d0c20776759fb8743b5e","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.0.tgz","fileCount":25,"integrity":"sha512-+zLdsCbpXDRDysHv4w8Ap/kcDTcuZTMsPxeSxpBzFmTk1UhNnjPjy6xf2c+oxOV956lip6ein6rxeV+lagcakg==","signatures":[{"sig":"MEUCIE/ywiB5Yv4zqzVYipPxbKkX65CK+CkHYUlOpFjTxY/pAiEA1ipU8M2YqK9X0KhYVYoPYBnU7ZcZ2azCZPMrDZob79I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274834},"main":"dist/src/index.js","gitHead":"4fd60e130265e2caebf56fb179f79499d5f37f5c","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","worm-sign":"^2.0.3","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.0_1764322998270_0.9671970357049762","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"worm-sign","version":"2.1.1","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"05799b7c254055f72f9cb71eff538bad04881224","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.1.tgz","fileCount":25,"integrity":"sha512-Trn2qBbpw5enlfidyB17UQ10zRVmtJyO6/sCbRXFEbuxaVxsCBNqrunRNsZeRX0L1n+TMcuf8KpN04HoicGPZg==","signatures":[{"sig":"MEYCIQCKoZDlimlgYNLEHy4vb5v33DC5GgjOUK8sRaxOTkJz9gIhAPIajJ/joiDvwkw5s0yyF1sBa0Bc5CGFTwAHsCGK7eT8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274772},"main":"dist/src/index.js","gitHead":"4fd60e130265e2caebf56fb179f79499d5f37f5c","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.1_1764323442982_0.33218479728222117","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"worm-sign","version":"2.1.2","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.2","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"0b47ccb02b0381b5760fbc8499dbcc276f0e68e9","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.2.tgz","fileCount":25,"integrity":"sha512-WaL7DWm/tDJTN4xaxsmqHcR1vU4HOYbfEcfiV96C5yZXdBROxUfLSGZrqElku10vnBD6Se2lm4fxIzwkGNjPRA==","signatures":[{"sig":"MEUCIQCQ1zOGyrRcU5o4IexyNG0I5Sr00OImFKBlmMopQGg2zAIgNKl2V1P4AaMHJvEtQATV8b+UNE7KSXXrmSQ7zhvKLpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275026},"main":"dist/src/index.js","gitHead":"4fd60e130265e2caebf56fb179f79499d5f37f5c","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.2_1764323850749_0.4759548567244696","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"worm-sign","version":"2.1.3","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.3","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"5282da7f43b8f422ba884722071e290fddb48ebf","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.3.tgz","fileCount":25,"integrity":"sha512-LCXKjBcOStNL9vBxO3rx6Pt8UHVj1S+rGbeIyIMx8dZVpAtYTjFAL0yrk+D9JBcFsLVHEUJZt2RXFaumnu5Y9g==","signatures":[{"sig":"MEUCIBoWKZgLNJRsyY7U8eLglaDULDNox4sdkvznPg2Ogq+6AiEAvsAybmd9WBRj/EwC2XIs+3nD+u2iir8sw28duF0ICR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275467},"main":"dist/src/index.js","gitHead":"1a33aa91636173f790424c1ad5423f7c4290b201","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.3_1764324885052_0.6311443923041686","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"worm-sign","version":"2.1.4","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.4","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"257a5525ff2d476acb6ae3ee545325a981ba577c","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.4.tgz","fileCount":25,"integrity":"sha512-YF/mYNmynV5M26iWsDvDIBTLXfAcONUuKZtAxxeTL615qGUqz8LVeI+lpA53FSU8rAmizg03Cm6Kj5FpfAxNjw==","signatures":[{"sig":"MEYCIQCvwCzrrnoDOxtbz59LrcGv77lyZCTblny5VLDsE41TSQIhAIXpxP7cZtd6q6xnHW3IOITNsP/+ekB4TOZqsEP1upem","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275525},"main":"dist/src/index.js","gitHead":"59bb104b8420cfe207a136ea98678f77e2ea1d08","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc && chmod +x dist/bin/scan.js","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.4_1764325161765_0.515399235185974","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"worm-sign","version":"2.1.5","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.5","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"d5770f1a91057d68a53cecc7d6131fa21ab7a7e0","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.5.tgz","fileCount":25,"integrity":"sha512-ftcXFSUpI2JAKd2Psz7h3ID2lrCwgoUfNDh4ATqOjkoBrp/GyJ4Q31NiaAmJQbwK9AutZy6uIUCt4U7etRlHbg==","signatures":[{"sig":"MEUCIQCb9lQWpklFKXmxEIB6ysbw3n6PG5PXen3MRBnSQTtaTQIgXkhYXEvOQMLj4fE60LURHvjY2e+L1NJficE6x2loQbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275579},"main":"dist/src/index.js","gitHead":"55963f27fc8b7cdd62cf823c5b780d683b8bad81","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc && chmod +x dist/bin/scan.js","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.5_1764326133643_0.21844106054186985","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"worm-sign","version":"2.1.6","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.6","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"380b460e997f47fe222ed80065500ff7d377b176","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.6.tgz","fileCount":25,"integrity":"sha512-37d6ehEurYbBJ2b2zJePPKfj7T6sUkX/NlWus0E8wKk8RchRUoy6/Z68GkHYVpvAO3rYJFDdXSTCa+dRAxgnTw==","signatures":[{"sig":"MEQCICJmxHAOexQQr6jqLsLL/2tNp5NERYxWFoqqEgM8pjS3AiBy9B8+NagzAA9e3xeoO8SizOljDYhUgbe5uK/ZyoSB5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276458},"main":"dist/src/index.js","gitHead":"55963f27fc8b7cdd62cf823c5b780d683b8bad81","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc && chmod +x dist/bin/scan.js","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.6_1764327222830_0.21219782938397214","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"worm-sign","version":"2.1.7","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.1.7","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"9bf746aea81bd75d992f926069208fa151700dc4","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.1.7.tgz","fileCount":26,"integrity":"sha512-rg5EsACq4Rw44vJauBw8ZsAhziYhat15tauryQ0vFLeJ9X69OowFv4XhGlcDdENcLt5eBpUz+jpryPB/1vuZOQ==","signatures":[{"sig":"MEYCIQD1KwB56O+YeuJSMwHZpe5Ejbg9+S1KNEgbJBiCVndvOQIhAJnV0QzgqzYZwdZFp24+YFDpT94JVow8hv3QQlGtP1DI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300717},"main":"dist/src/index.js","gitHead":"1cfb91c999b99459dde4f6608db20ab9efbe43b0","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc && chmod +x dist/bin/scan.js","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.1.7_1764329940182_0.3567764103202222","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"worm-sign","version":"2.2.0","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.2.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"b050f89f1fa2b343f52092167b6f9dc6eb197eb0","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.2.0.tgz","fileCount":26,"integrity":"sha512-g7wigfD46+nL0u+qjiP/6ZKfoaKnDrXOepMS993HrNXhJNme5JMMwSC0+BaOxuneeSDYHuuUT8w0eEfgVHLUkw==","signatures":[{"sig":"MEYCIQCbIzMv9ZVzAzsRi1ePvbhQuLyHcCDKnHe9/KHkerlFYQIhAKQVLsWo2F27idKIi3UBew+7JYpVkgIugII2p4rC8cDS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303343},"main":"dist/src/index.js","gitHead":"2f6992da00670a72daf1836796b0a21bda3fedea","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc && chmod +x dist/bin/scan.js","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.9.3","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.2.0_1764335740137_0.8611455239614094","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"worm-sign","version":"2.3.0","keywords":["security","scanner","banned-packages","npm","yarn","pnpm"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.3.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"e8c17f23df2519546a410e0caf1ec144a91fa6b0","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.3.0.tgz","fileCount":30,"integrity":"sha512-KOyx3pa/nS8YWgy+8LJ4OPkvwPA5MfnaOG5rJj6orraDzZQ+W+Hq+KFwHjinfy1BPMiXd69baLs/fWcphylsyQ==","signatures":[{"sig":"MEUCIEgXjF0RjaF/FrXrRcg2u0sjMqJSUmOa8WF6kjbEdz8MAiEAmmjI29ok2Lpk61y9ppItZdrkjoZDWC6wHAIiw3r63zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415466},"main":"dist/src/index.js","gitHead":"7d31da50a8b29803835b0d930c3bb1785a288083","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.3.0_1764498002245_0.1113033671676078","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"worm-sign","version":"2.3.1","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@2.3.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"9cb5e515349084e18c0be2309d862bfec637c3c1","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-2.3.1.tgz","fileCount":30,"integrity":"sha512-X43OUoNLWvmfgb1yaN2YlsJ2D/vjNWyWrasFVYPrMjhri2nDWi39BGBVpUYap0XSfUbOVRkxXJeM8jLAP8mS9Q==","signatures":[{"sig":"MEQCIAObJbeXehRB6lRU0eMUDBI6ri1xmwEGzf7db4w7MjoAAiAlaWxPu7rSS+MdVSZiEEVtQd922YcvWF42Cp9ocX7D0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416212},"main":"dist/src/index.js","gitHead":"f56fb8d903f7c91dd0f53914718ddd4805c7191f","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","test:smoke":"ts-node smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"11.4.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"22.13.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_2.3.1_1764499356376_0.39263303458716803","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"worm-sign","version":"3.0.0","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@3.0.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"627925cff18346c13e45d98ecee7f7ab6dbc4fdd","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-3.0.0.tgz","fileCount":24,"integrity":"sha512-XBtxJU9+jrv9aTg0g0pMz7hWpD1NRSN4qtlHRTMV6TL+0z+2SL26QLuL/h3IUIlwoFElGVgwWS8MP1TDSLlmpg==","signatures":[{"sig":"MEUCIDaK50iuyZxzBlbPgXdZHFkKWXB4r7PHpJGtOJPCkzh7AiEA/Hw6EgznpUxZtAsLfb1wtl5el88CuHPbg3ByCuyql5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147965},"main":"dist/src/index.js","gitHead":"4c6fdc0bf778e431d27738f1005d72312b815311","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_3.0.0_1764533974613_0.4395589340109416","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"worm-sign","version":"3.0.1","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@3.0.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"25471b39d05b4d41d7c9d7e98823ea3539184c78","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-3.0.1.tgz","fileCount":24,"integrity":"sha512-QS6I66pf+zxfgWwXoIoO9F8rflOQTQDfrx6tZYebdDj2L/eiT0IeEuJJka3dIfckKTyajtziJUM/1Buh4bsONA==","signatures":[{"sig":"MEUCICGaOViUfQT5AJHOueWkgCHGPGMeWxjV20uXssaJufpeAiEA7Zz/E/RtdIu2hezEvQ8rJiwa6xTcOOI0pA0q6Rr/vmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152277},"main":"dist/src/index.js","gitHead":"0bf34fb4d88cb8ae27b1a59a4a66f4fb7f3470d8","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"deprecated":"Critical security update: Versions <3.1.0 contained obfuscated code and test fixtures. Please upgrade to v3.1.0+ for full transparency.","repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_3.0.1_1764537216485_0.8776486476374763","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"worm-sign","version":"3.1.0","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@3.1.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"5c0ff0090f238aa2871e478440000fb359de6aed","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-3.1.0.tgz","fileCount":23,"integrity":"sha512-HfPYUifRld9Zr7YnfY6tRnh/c7Lpefcpw1wXTDSUncukW0lqkVU4P76VshCtu89ACM817SrCpZw849eg5MaokQ==","signatures":[{"sig":"MEYCIQCQD972s3Hs/i554ULGm/y0vzRdOH0FK96mVzxLsc6dlQIhAO/P1ryhd6xcy3NedAchSZfCSGCCn9NKrZSujalRpiuA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149960},"main":"dist/src/index.js","gitHead":"76093a003bc23b81f83320fc6ef47bee6c72877e","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_3.1.0_1764541540129_0.32048563740930214","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"worm-sign","version":"3.1.1","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@3.1.1","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"5d5603f9142e2660128808a15c7cfb5128462912","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-3.1.1.tgz","fileCount":24,"integrity":"sha512-YRNdWlCd+N0YkaUix1bvFbbwyBvHvhMxN7u3tneisECj8t3iGbj1q1yWJCob2qqJI34aecgDFXdjleKHKbaqKA==","signatures":[{"sig":"MEUCIQCje/e5jlpEAQ3/IU9CZ0Pbmtvsd2FD2x/tIaE0xdd6CQIgL76bi1X7X4iWPHjyxmx7ff1Dqzq3fhMF8QWZ9cXIrvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154035},"main":"dist/src/index.js","gitHead":"c8b0de98bba1f8067317d06ebbc92efc3df4f35d","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","cosmiconfig":"^9.0.0","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/cosmiconfig":"^5.0.3","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_3.1.1_1764544954966_0.1548620035190369","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"worm-sign","version":"3.1.2","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@3.1.2","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"f4c32be4d8ab7a98925adec2062bc8143804e6f1","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-3.1.2.tgz","fileCount":24,"integrity":"sha512-8C7m0SJjPPpLO94uiaAoLCXGKrzD0OCafE8WwUrVVZOtKY8nmq53gT6q1FmzfJoleRFPWNQK0O0skWgfSbTtKA==","signatures":[{"sig":"MEUCIB27ryPvPIp4JmudsRmg59rQO0qiK1SJ3VC5TXPnTHuwAiEAj6vEymas9B1TD028SwzNyOmSvPWhAyviwKvMeJm1g/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":140521},"main":"dist/src/index.js","gitHead":"4c4aff79e964ab1b37e4208331382ece43f77306","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A prescient scanner to detect and banish Shai Hulud malware from your dependencies.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","cosmiconfig":"^9.0.0","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/cosmiconfig":"^5.0.3","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_3.1.2_1764768813525_0.41612855188797093","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"worm-sign","version":"4.0.0","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@4.0.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"a2080f75b6f7513422c676ffd2edfacbd1d37ac6","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-4.0.0.tgz","fileCount":24,"integrity":"sha512-7WDlnBtuXxFWGMtlqdAku+67O2nUWRBIRzlmGamwveJDe49zh386OpSnoHXtZyEzz2nAaPJJnJcfu1oviXC9AQ==","signatures":[{"sig":"MEUCIHwxkZ3Ck44bsdPIiTtFTDDEUE8mhQl1Ep64ZHI+CDUhAiEA1CuHdBMwqA7lkBrqvCa34iYClQ0Pdt6ub2fnxnekB+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144753},"main":"dist/src/index.js","gitHead":"607ca9e82d31ddf1396c2b66f0b0cc7a2f96b2db","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A security scanner that detects npm packages compromised by supply chain attacks, including the Axios attack (March 2026) and Shai Hulud malware.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","cosmiconfig":"^9.0.0","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/cosmiconfig":"^5.0.3","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_4.0.0_1775034127683_0.7774270365704967","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"worm-sign","version":"4.1.0","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","_id":"worm-sign@4.1.0","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"homepage":"https://github.com/BranLang/worm-sign#readme","bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"bin":{"worm-sign":"dist/bin/scan.js"},"dist":{"shasum":"9641895f1ce1d36a9a2b5d95848d4909a9333991","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-4.1.0.tgz","fileCount":24,"integrity":"sha512-ZFpHzguGZzffTBc2j2gekwH9jpV2dxGfoeTmV5shPjI//6q45/DOTnGnIilRk0O+cVf/vjnDA8Nl9fHxu8NMNg==","signatures":[{"sig":"MEUCIDcwlaYDeRGaIAneAjphn8G2Jcu/7QnSfgT/YZtBP4LEAiEAq3Mi3MXgShiuDGRxQDmb9VK8uc87RW3uE2K10nomk3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161404},"main":"dist/src/index.js","gitHead":"2cc3fee785b44128dc186afc385249368cc01b5e","scripts":{"dev":"ts-node bin/scan.ts","lint":"eslint src bin tests","test":"jest","build":"tsc","start":"node dist/bin/scan.js","format":"prettier --write src bin tests","prepare":"husky","prebuild":"ts-node scripts/encrypt-signatures.ts","test:smoke":"ts-node scripts/smoke_test.ts"},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"overrides":{"ip-address":">=10.1.1"},"repository":{"url":"git+https://github.com/BranLang/worm-sign.git","type":"git"},"_npmVersion":"10.8.2","description":"A security scanner that detects npm packages compromised by supply chain attacks, including the TanStack wave 4 attack (May 2026), the Axios attack (March 2026), and Shai-Hulud malware.","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix"],"*.{ts,js,json,md}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"ora":"^8.1.0","boxen":"^8.0.1","chalk":"^5.6.2","js-yaml":"^4.1.1","commander":"^14.0.2","csv-parse":"^5.5.6","cli-table3":"^0.6.5","cosmiconfig":"^9.0.0","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.5","ts-node":"^10.9.2","prettier":"^3.7.1","@eslint/js":"^9.39.1","@types/ora":"^3.1.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","lint-staged":"^16.2.7","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.48.0","@types/cosmiconfig":"^5.0.3","@types/gradient-string":"^1.1.6","@types/npmcli__arborist":"^6.3.1"},"_npmOperationalInternal":{"tmp":"tmp/worm-sign_4.1.0_1779116172521_0.9203425223805843","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"worm-sign","version":"4.2.0","description":"A security scanner that detects npm packages compromised by supply chain attacks, including the TanStack wave 4 attack (May 2026), the Axios attack (March 2026), and Shai-Hulud malware.","main":"dist/src/index.js","bin":{"worm-sign":"dist/bin/scan.js"},"scripts":{"test":"jest","test:smoke":"ts-node scripts/smoke_test.ts","lint":"eslint src bin tests","format":"prettier --write src bin tests","prebuild":"ts-node scripts/encrypt-signatures.ts","build":"tsc","start":"node dist/bin/scan.js","dev":"ts-node bin/scan.ts","prepare":"husky"},"keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"author":{"name":"Branislav Lang"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BranLang/worm-sign.git"},"bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"homepage":"https://github.com/BranLang/worm-sign#readme","dependencies":{"@npmcli/arborist":"^9.1.8","@yarnpkg/lockfile":"^1.1.0","boxen":"^8.0.1","chalk":"^5.6.2","cli-table3":"^0.6.5","commander":"^14.0.2","cosmiconfig":"^9.0.0","csv-parse":"^5.5.6","csv-stringify":"^6.6.0","gradient-string":"^3.0.0","js-yaml":"^4.1.1","ora":"^8.1.0"},"devDependencies":{"@eslint/js":"^9.39.1","@types/boxen":"^2.1.0","@types/chalk":"^0.4.31","@types/cosmiconfig":"^5.0.3","@types/gradient-string":"^1.1.6","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.10.1","@types/npmcli__arborist":"^6.3.1","@types/ora":"^3.1.0","eslint":"^9.39.1","globals":"^16.5.0","husky":"^9.1.7","jest":"^30.2.0","lint-staged":"^16.2.7","prettier":"^3.7.1","ts-jest":"^29.4.5","ts-node":"^10.9.2","typescript":"^5.9.3","typescript-eslint":"^8.48.0"},"lint-staged":{"*.{ts,js,json,md}":["prettier --write"],"*.{ts,js}":["eslint --fix"]},"overrides":{"ip-address":">=10.1.1"},"_id":"worm-sign@4.2.0","gitHead":"23cd70bd40c5efd397b0ad47d3eab80821115522","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-l5EMplXqoeZau6BpXcAbH4DLQfDzSKejWW1ttqMsVdXOK1YPrDqWFWKF6DGneBmX3+DxbKC9rVMJUGT+x1d7Bg==","shasum":"dc1ede8397a3c4d3345188250f863d3305677b71","tarball":"https://registry.npmjs.org/worm-sign/-/worm-sign-4.2.0.tgz","fileCount":24,"unpackedSize":165846,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/worm-sign@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCVPFmHT+f7Tuxcb9gCLc5a0xkjEpV4Mvy6l7txQfh63AIhALRA+mykVolkiMBzJUf/rnhAFJ9V5jp+gFARE03wTfTV"}]},"_npmUser":{"name":"branislav-lang","email":"branislavlang@gmail.com"},"directories":{},"maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/worm-sign_4.2.0_1779119582971_0.19333477811608812"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-27T16:52:00.650Z","modified":"2026-05-18T15:53:03.440Z","1.0.0":"2025-11-27T16:52:00.958Z","1.0.1":"2025-11-27T17:07:00.791Z","1.0.2":"2025-11-27T17:16:06.443Z","1.0.3":"2025-11-27T17:28:08.466Z","2.0.1":"2025-11-27T22:08:09.398Z","2.0.2":"2025-11-27T22:10:07.372Z","2.0.3":"2025-11-27T22:16:30.975Z","2.0.4":"2025-11-27T22:23:42.385Z","2.0.5":"2025-11-27T22:26:34.227Z","2.0.6":"2025-11-27T22:32:45.227Z","2.0.7":"2025-11-27T22:35:13.775Z","2.0.8":"2025-11-27T22:43:48.201Z","2.0.9":"2025-11-27T22:49:55.732Z","2.0.10":"2025-11-27T22:51:29.635Z","2.1.0":"2025-11-28T09:43:18.498Z","2.1.1":"2025-11-28T09:50:43.188Z","2.1.2":"2025-11-28T09:57:30.969Z","2.1.3":"2025-11-28T10:14:45.244Z","2.1.4":"2025-11-28T10:19:21.964Z","2.1.5":"2025-11-28T10:35:33.834Z","2.1.6":"2025-11-28T10:53:43.032Z","2.1.7":"2025-11-28T11:39:00.376Z","2.2.0":"2025-11-28T13:15:40.335Z","2.3.0":"2025-11-30T10:20:02.457Z","2.3.1":"2025-11-30T10:42:36.563Z","3.0.0":"2025-11-30T20:19:34.811Z","3.0.1":"2025-11-30T21:13:36.708Z","3.1.0":"2025-11-30T22:25:40.321Z","3.1.1":"2025-11-30T23:22:35.166Z","3.1.2":"2025-12-03T13:33:33.722Z","4.0.0":"2026-04-01T09:02:07.837Z","4.1.0":"2026-05-18T14:56:12.664Z","4.2.0":"2026-05-18T15:53:03.144Z"},"bugs":{"url":"https://github.com/BranLang/worm-sign/issues"},"author":{"name":"Branislav Lang"},"license":"MIT","homepage":"https://github.com/BranLang/worm-sign#readme","keywords":["security","scanner","malware","shai-hulud","worm","vulnerabilities","npm","yarn","pnpm","supply-chain","devsecops","audit","lockfile","integrity","analysis","heuristics","entropy","ci","github-actions"],"repository":{"type":"git","url":"git+https://github.com/BranLang/worm-sign.git"},"description":"A security scanner that detects npm packages compromised by supply chain attacks, including the TanStack wave 4 attack (May 2026), the Axios attack (March 2026), and Shai-Hulud malware.","maintainers":[{"name":"branislav-lang","email":"branislavlang@gmail.com"}],"readme":"# Worm Sign 🪱🚫\n\n[![CI Status](https://github.com/BranLang/worm-sign/actions/workflows/ci.yml/badge.svg)](https://github.com/BranLang/worm-sign/actions/workflows/ci.yml)\n[![npm version](https://badge.fury.io/js/worm-sign.svg)](https://badge.fury.io/js/worm-sign)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![npm provenance](https://img.shields.io/badge/provenance-verified-green)](https://docs.npmjs.com/generating-provenance-statements)\n\n> \"We have wormsign the likes of which even God has never seen.\"\n\n**Worm Sign** is a static-analysis scanner that finds npm supply-chain worms in your `package.json` and lockfile — focused on what `npm audit` misses: install-time manifest tampering, dropped-file hashes, campaign IOC strings, and suspicious binary-fetch hosts.\n\n### Coverage in numbers\n\n- **~100 currently-actionable IOCs** across the three active campaigns covered (TanStack wave 4, Axios, Shai-Hulud 2.0).\n- **~1,700 historical Shai-Hulud entries** also bundled for archival/forensic scans. Most of these versions have already been unpublished from npm; their value is in detecting old `package-lock.json` files that were committed before the unpublish.\n- **17 heuristic rules** covering script-level patterns (network calls, code obfuscation, reverse shells, RAT droppers), manifest tampering (malicious git refs, phantom `optionalDependencies`, commit-pinned deps), and install-time vectors (non-standard `binary.host`).\n\nThe package count alone isn't a strong differentiator — `npm audit` already covers the GHSA-listed name@versions. Worm Sign's value is the **heuristic layer** that catches install-time vectors before they're catalogued.\n\n> **Now detecting the [May 2026 TanStack supply chain attack](#tanstack-supply-chain-attack-may-2026)** — the fourth wave of the Shai-Hulud worm, which republished 42 `@tanstack/*` packages (84 versions) with valid SLSA provenance after extracting an OIDC token via GitHub Actions cache poisoning.\n\n## TanStack Supply Chain Attack (May 2026)\n\nOn May 11, 2026, attacker group **TeamPCP** poisoned the `tanstack/router` GitHub Actions cache via a fork pull request, extracted the legitimate OIDC publishing token, and republished 42 `@tanstack/*` packages with malware — **producing valid SLSA Build Level 3 attestations**. The worm then propagated to 170+ secondary victim packages (including `@mistralai/mistralai`, `@uipath/*`, `@draftlab/*`, `@squawk/*`, `safe-action`, `cmux-agent-mcp`, `nextmove-mcp`, `ts-dna`, `cross-stitch`).\n\nTracked as **CVE-2026-45321** / **GHSA-g7cv-rxg3-hmpx**.\n\n**If you installed any `@tanstack/*` package between 11:29 UTC and 19:15 UTC on May 11, 2026, run `worm-sign` immediately.**\n\nWorm Sign detects this attack through multiple layers:\n\n- **84 Compromised Versions**: All 42 affected `@tanstack/*` packages × 2 versions each from GHSA-g7cv-rxg3-hmpx, plus secondary victim `@mistralai/mistralai@2.2.2–2.2.4`.\n- **Payload Hashes**: SHA-256 verification of `router_init.js` (`ab4fcadaec…`) and `tanstack_runner.js` (`2ec78d556d…`).\n- **Manifest Tampering**: New `analyzeManifest` heuristic flags the malicious `optionalDependencies` entry `\"@tanstack/setup\": \"github:tanstack/router#79ac49eedf…\"`, including the truncated form and any commit-pinned git ref in `optionalDependencies`.\n- **Campaign Strings**: Detects `EveryBoiWeBuildIsAWormyBoi` (campaign ID), `IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner` (dead-man's-switch trigger that runs `rm -rf ~/` on token revocation), `OhNoWhatsGoingOnWithGitHub` (token-recovery magic string), and the unique PBKDF2 salt `svksjrhjkcejg`.\n- **C2 Infrastructure**: Detects `filev2.getsession.org`, `api.masscan.cloud`, `git-tanstack.com`, and second-stage payload URLs at `litter.catbox.moe/h8nc9u.js` / `litter.catbox.moe/7rrc6l.mjs`.\n- **Persistence Files**: Flags dropped files `router_init.js`, `tanstack_runner.js`, `router_runtime.js`, `gh-token-monitor.sh`, `gh-token-monitor.service`, and `com.user.gh-token-monitor.plist`.\n- **Worm Forensics**: Detects `dependabout/` branch impersonation and `claude@users.noreply.github.com` spoofed commit author used by the worm to push exfiltration commits.\n\n## Axios Supply Chain Attack (March 2026)\n\nOn March 31, 2026, the `axios` HTTP client was compromised after the primary maintainer's npm account was hijacked. Two malicious versions (`1.14.1` and `0.30.4`) injected `plain-crypto-js` as a phantom dependency — a package whose sole purpose was to execute a `postinstall` script that drops a cross-platform RAT targeting macOS, Windows, and Linux.\n\n**If you installed axios between ~00:21 and ~03:30 UTC on March 31, run `worm-sign` immediately.**\n\nWorm Sign detects this attack through multiple layers:\n\n- **Compromised Packages**: Flags `axios@1.14.1`, `axios@0.30.4`, `plain-crypto-js@4.2.1`/`4.2.0`, and related attacker packages (`@shadanai/openclaw`, `@qqbrowser/openclaw-qbot`).\n- **C2 Infrastructure**: Detects C2 domains (`sfrclak.com`, `calltan.com`, `callnrwise.com`) and IP (`142.11.206.73`).\n- **RAT Payload Hashes**: SHA-256 verification of stage-2 payloads for macOS (`com.apple.act.mond`), Windows (`6202033.ps1`), and Linux (`ld.py`).\n- **Dropper Patterns**: Identifies `execSync`+`nohup` background execution, self-deleting `setup.js` scripts, XOR obfuscation with key `OrDeR_7077`, and the spoofed IE8 User-Agent string.\n- **PowerShell Vectors**: Catches `irm|iex` remote execution patterns used in Windows payload delivery.\n\n## Features\n\n- **Safe Static Analysis**: Uses `@npmcli/arborist` to inspect the dependency tree without executing any lifecycle scripts — the malware never gets a chance to run.\n- **Multi-Campaign Detection**: TanStack wave 4 (May 2026), Axios (March 2026), and the broader Shai-Hulud archive.\n- **Manifest Tampering Detection**: Flags malicious `optionalDependencies` entries and commit-pinned git refs used to smuggle payloads (the TanStack wave 4 vector).\n- **Install-Time Binary Fetch Detection**: Flags `package.json` `binary.host` pointing at non-standard domains — install-time binaries are not covered by lockfile integrity hashes.\n- **FP-Tested Heuristics**: All script-level rules have negative tests (`tests/unit.test.ts`) asserting they do NOT fire on common benign inputs (RFC1918 IPs, `curl --version`, `bun run`, JWT-like strings, etc.).\n- **Hash-Based Detection**: Verifies packages by integrity hash (SHA-1/SHA-512), catching variants even if renamed or version-spoofed.\n- **Heuristic Analysis**: Scans `package.json` scripts for suspicious patterns — RAT droppers, `curl | bash`, reverse shells, XOR obfuscation, self-deleting scripts, and more.\n- **Entropy Analysis**: Detects high-entropy files (>5MB) that indicate packed/obfuscated malware payloads.\n- **C2 Signature Matching**: Identifies known command & control domains, IPs, and beacon patterns.\n- **Lockfile Support**: Scans `package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`.\n- **SARIF Output**: Generates SARIF 2.1.0 reports for GitHub Security integration.\n- **CI/CD Ready**: Integrates into GitHub Actions or any CI pipeline. Fails the build on detection (exit code 1).\n\n## Safety & Trust\n\n### 🛡️ Safe Static Analysis\nWorm Sign parses your lockfile directly (using `Arborist.loadVirtual()`) to build an in-memory dependency graph. It **never** runs `npm install` or executes `preinstall`/`postinstall` scripts during scanning — this is critical because both the Axios attack (postinstall RAT dropper) and Shai-Hulud 2.0 (retaliatory wiper \"Dead Man's Switch\") activate through lifecycle scripts.\n\n### 🔍 Transparency & Signatures\nAll malware signatures (filenames, patterns, hashes) are stored in plain text within the source code. We explicitly avoid obfuscation techniques to distinguish this security tool from the malware it detects. You can inspect the signatures in `src/generated/signatures.ts`.\n\n### 🔐 Trusted Publishing\nThis package is published with **npm provenance**. You can verify the build attestation on the npm registry to confirm that the package you are installing was built from this specific GitHub repository and has not been tampered with.\n\n## Shai-Hulud 2.0 Detection\n\nWorm Sign also covers the **Shai-Hulud 2.0** worm campaign (1,717+ compromised packages) with detection for high-entropy packed payloads, destructive wiper commands (`shred`, `del`), PowerShell installation vectors, and C2 signatures.\n\n## Installation\n\n```bash\nnpm install -g worm-sign\n```\n\n## Usage\n\n### Basic Scan\n\nRun the scanner in your project root. It uses the bundled list of banned packages by default.\n\n```bash\nworm-sign\n```\n\n### Fetch Latest Data\n\nFetch the latest list of vulnerable packages from configured remote sources (e.g., Datadog, Koi).\n\n```bash\nworm-sign --fetch\n```\n\n**Configured Remote Sources:**\n\n- **Datadog**: [consolidated_iocs.csv](https://raw.githubusercontent.com/DataDog/indicators-of-compromise/main/shai-hulud-2.0/consolidated_iocs.csv)\n- **Koi**: [export?format=csv](https://docs.google.com/spreadsheets/d/16aw6s7mWoGU7vxBciTEZSaR5HaohlBTfVirvI-PypJc/export?format=csv&gid=1289659284)\n\n### Custom Data Source\n\nYou can also fetch from a custom URL. You must specify the data format (`json` or `csv`).\n\n**JSON Format:**\nExpects an object with a `packages` array: `{ \"packages\": [ { \"name\": \"pkg\", \"version\": \"1.0.0\" } ] }`.\n\n```bash\nworm-sign --url \"https://example.com/vulns.json\" --data-format json\n```\n\n> **Note:** The scanner will attempt to fetch from this URL in addition to other configured sources. If the fetch fails, it will warn you but continue scanning with other available sources.\n\n**CSV Format:**\nExpects a CSV with `name` and `version` columns (headers are ignored if they don't look like package names, but standard format is `name,version`).\n\n```bash\nworm-sign --url \"https://example.com/vulns.csv\" --data-format csv\n```\n\n**Hash Support:**\nThe CSV format also supports an optional `integrity` column (or `hash`, `shasum`). If provided, the scanner will verify the package integrity against your lockfile.\n\n```csv\nname,version,integrity\nsafe-package,1.0.0,sha512-badhash...\n```\n\n\n### Output Formats\n\nGenerate a SARIF report for security tools:\n\n```bash\nworm-sign --format sarif > results.sarif\n```\n\n### Git Hook\n\nInstall a pre-commit hook to automatically scan before every commit:\n\n```bash\nworm-sign --install-hook\n```\n\n### Caching\n\nDisable caching if you need to force a fresh fetch:\n\n```bash\nworm-sign --fetch --no-cache\n```\n\n## CI/CD Integration\n\nAdd this to your GitHub Actions workflow:\n\n```yaml\n- name: Run Worm Sign\n  run: npx worm-sign --format sarif\n```\n\nBy default, `worm-sign` will:\n\n1. Load all local `.csv` package lists from the `sources/` directory.\n2. Fetch updates from any remote sources configured in `sources/*.json` (e.g., Datadog, Koi).\n3. Fail the build if any banned packages are found (exit code 1).\n\nYou do not need to pass `--fetch` explicitly; the scanner automatically processes all configured sources.\n\n## Network Requirements\n\nWorm Sign fetches threat intelligence from the following public endpoints. Ensure your firewall allows outbound HTTPS (443) access to:\n\n- **Datadog**: `raw.githubusercontent.com`\n- **Koi**: `docs.google.com`\n\n### Proxy Support\nWorm Sign respects standard proxy environment variables. If you are behind a corporate proxy, set:\n\n- `HTTPS_PROXY` (or `https_proxy`)\n- `HTTP_PROXY` (or `http_proxy`)\n- `NO_PROXY` (or `no_proxy`)\n\n## Enterprise Usage\n\nFor large organizations or high-volume CI/CD environments, we recommend **mirroring** the data sources internally to avoid rate limiting or external dependency failures.\n\n### Option 1: Internal Mirror (Recommended)\n\nTo avoid rate limiting or external dependency failures, you can host the data sources on an internal server (e.g., Artifactory, S3).\n\n**If using the npm package directly:**\nUse the `--offline` flag to disable default remote fetches, and provide your internal mirror URL via the `--url` flag.\n\n**CSV Example:**\n\n```bash\nnpx worm-sign --offline --url \"https://internal.example.com/compromised-packages.csv\" --data-format csv\n```\n\n**JSON Example:**\n\n```bash\nnpx worm-sign --offline --url \"https://internal.example.com/compromised-packages.json\" --data-format json\n```\n\n**Self-Signed Certificates:**\nIf your internal server uses a self-signed certificate, use the `--insecure` flag to bypass SSL verification:\n\n```bash\nnpx worm-sign --offline --insecure --url \"https://internal.example.com/compromised-packages.json\" --data-format json\n```\n\n**If maintaining a fork:**\nUpdate the `sources/*.json` files in your repository to point to your internal URLs. This allows you to distribute a pre-configured version of the scanner to your team.\n\n### Option 2: Offline Mode\n\nIf you prefer to rely solely on the bundled local CSVs (which are updated with each package release), you can disable remote fetching:\n\n```bash\nnpx worm-sign --offline\n```\n\nThis will only scan against the local `.csv` files found in the `sources/` directory.\n\n\n---\n\n\n## Command Line Options Reference\n\n| Option                   | Description                                        | Default |\n| ------------------------ | -------------------------------------------------- | ------- |\n| `-f, --fetch`            | Fetch the latest compromised packages from the API | `false` |\n| `-u, --url <url>`        | Custom API URL to fetch compromised packages from  | -       |\n| `--data-format <format>` | Data format for custom URL (`json`, `csv`)         | `json`  |\n| `-p, --path <path>`      | Path to the project to scan                        | `.`     |\n| `--format <format>`      | Output format (`text`, `sarif`)                    | `text`  |\n| `--no-cache`             | Disable caching of API responses                   | `false` |\n| `--install-hook`         | Install a pre-commit hook to run worm-sign         | `false` |\n| `--dry-run`              | Run scan but always exit with 0 (useful for CI)    | `false` |\n| `--offline`              | Disable network requests (implies `--no-fetch`)    | `false` |\n| `--insecure`             | Disable SSL certificate verification               | `false` |\n| `--debug`                | Enable debug logging                               | `false` |\n\n### Advanced Examples\n\n**Scan a specific directory:**\n\n```bash\nworm-sign --path ./projects/my-app\n```\n\n**Run in CI (Dry Run):**\nUse `--dry-run` to see what would be found without failing the build (exit code 0).\n\n```bash\nworm-sign --dry-run\n```\n\n**Debug Mode:**\nEnable verbose logging to troubleshoot issues.\n\n```bash\nworm-sign --debug\n```\n---\n\n## Acknowledgements\n\nThreat intelligence is aggregated from the security research community, including:\n\n**TanStack Attack (Wave 4):**\n- [Snyk — TanStack npm Packages Compromised](https://snyk.io/blog/tanstack-npm-packages-compromised/)\n- [GHSA-g7cv-rxg3-hmpx](https://github.com/advisories/GHSA-g7cv-rxg3-hmpx)\n\n**Axios Attack:**\n- [Socket.dev — Axios Compromise Analysis](https://socket.dev/blog/axios-npm-package-compromised)\n- [Snyk — Axios Supply Chain Attack](https://snyk.io/blog/axios-npm-package-compromised-supply-chain-attack-delivers-cross-platform/)\n- [Huntress — Axios Supply Chain Compromise](https://www.huntress.com/blog/supply-chain-compromise-axios-npm-package)\n- [StepSecurity — Axios RAT Analysis](https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan)\n- [Aikido Security — Axios Compromised](https://www.aikido.dev/blog/axios-npm-compromised-maintainer-hijacked-rat)\n\n**Shai-Hulud:**\n- [DataDog Security Labs](https://securitylabs.datadoghq.com/articles/shai-hulud-2.0-npm-worm/)\n- [Socket.dev](https://socket.dev/blog/shai-hulud-strikes-again-v2)\n- [GitGuardian](https://blog.gitguardian.com/shai-hulud-2/)\n- [Wiz](https://www.wiz.io/blog/shai-hulud-strikes-again)\n- [Cobenian/shai-hulud-detect](https://github.com/Cobenian/shai-hulud-detect)\n- [Phylum](https://blog.phylum.io/)\n- [Aikido Security](https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}