{"_id":"@aikidosec/safe-package-manager-internals","_rev":"13-e150f38a1e7b07b89714c5ebc645d54c","name":"@aikidosec/safe-package-manager-internals","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.0","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"19d255aa9d5b02fd1e77eca9767f96a27975e772","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.0.tgz","fileCount":18,"integrity":"sha512-gfLQfCWNe4E9nSa3hNV1lcVehtVZQazg6NlrallAiGrZqyTcpPrRwhNq1hlXVDZyUQ+1RwHVOib3N3IYl8bGsA==","signatures":[{"sig":"MEYCIQDUi2Y6fC5QeQX37OOhF9HX0j5nFWtqGmRirBYpzFsGcwIhAJ4sbqgJBDdo5oQ2SHu4LWqZSwJkZaDi3zR6nxx7U1S5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293907},"main":"index.js","type":"module","gitHead":"21c42b57316ced5794af0fad1b5bed95212922b0","scripts":{"test":"node --test ./test/*","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.0_1744972387202_0.3301686864878639","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.1","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"d6d312f246d44cb90ee431bf3dde7ac0f3fd8a96","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.1.tgz","fileCount":18,"integrity":"sha512-VWV8K6GJI2IfYEL4W9LWpH2/b41F5EuM8RKcgIwPkis850J5tvD4mvz+uEF4Nnue7Fo5ZxLNnGAtv5MFWP1/UA==","signatures":[{"sig":"MEQCIAjmwdVYpC6seu+kn4fNR+vdBce4wMf1XGcABFVqlGzUAiAkncZwFX+Qe23HsO/h9b7uKj03qKvCOXpV5sOHsV8jLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294526},"type":"module","gitHead":"951be4e35843e876a569e833e04c7491ac45508c","scripts":{"test":"node --test ./test/*","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.1_1744975233757_0.3013289253636211","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.2","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.2","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"685b22458e139bed5a928c66d7bf10329ea54672","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.2.tgz","fileCount":19,"integrity":"sha512-Zx83h2MTHC1bB8zCCdoCCiJlZvZYLZxujGZeyNIowA6TFHFVWJsxHmheKHYWqPFTS0b76KPVTdnobNJkmW8mKA==","signatures":[{"sig":"MEYCIQDgNBAJHGr6BAmocCqdgG0uLoKKi/FoAw28Twqasn4WVwIhALfs+NxF/FWbkMDw6xu69swhvxYJlRt+sxi7sVxF0mPr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300194},"type":"module","gitHead":"d6b700b1d5435356f28677353df16ba61c20d70c","scripts":{"test":"node --test ./test/*","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.2_1745479090275_0.04732965078679152","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.3","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.3","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"ecb7c39c063fa45dadec7bfbbe1ba8e29e1be08d","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.3.tgz","fileCount":19,"integrity":"sha512-kjdSJUA2xq1ol2VunOpiX5eVUR/h15aXLz7lxHbxRoxq+HyarsYZvXmpMrnRYULp5hC6jO+HJgw8uyYvN8H8/w==","signatures":[{"sig":"MEYCIQDcQr79l/DIlOmy6VHiHpTmlkJK5ZkqhT0iCq1UKrVBLQIhAIDIBDdqdwyX6ggvxnPjdhbhs4DTFAIPfXfdcNqCvai0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300569},"type":"module","gitHead":"bba1afdb0779f775383eb29bb7642b36f36d1488","scripts":{"test":"node --test ./test/*","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.3_1745909868118_0.15412745363244684","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.4","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.4","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"9964f9731f998e02837a261d3b943e43c73ee9bc","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.4.tgz","fileCount":24,"integrity":"sha512-qZQ+Ot4D/j8R4smuE37ek1Euk1dveSBvJjc/3WxxdSY5bOJFrfrojYB5wz8gl2jJFJykOjZAhMeODouO5XMm7w==","signatures":[{"sig":"MEUCIQCMRpr+T2ltYR00iL4ClssXk3FWPpAcbPbAIiI9/WN61QIgZJMcm5TNV2YPJS1Q3pD2Zv4zwD9AyxcLOLSAXqO4Cwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309916},"type":"module","gitHead":"18980dafec99e9b9a8a037eab0f4022d5570aaba","scripts":{"test":"node --test ./**/*.spec.js","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.4_1746530574760_0.6892168277081707","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.5","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.5","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"dcbb0e0f11aba3aaee162877dc8e7fac10075242","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.5.tgz","fileCount":24,"integrity":"sha512-Y3TgwWMU+06lOkd+aCDUkcGM16s6UL5hBZOpTst0Kz492aK6RTZyZhkg5R/YNAuwP+2XsWenwbBuw9eSLdz1kw==","signatures":[{"sig":"MEUCIAUEI1XrxGXQh/cjTWpFclJXA291NgZt6UsOQoXoMcHAAiEAkqUlV0RlbSIMcQihtWQGaoc6Y0425a9alsGk9LNRuQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309916},"type":"module","gitHead":"18980dafec99e9b9a8a037eab0f4022d5570aaba","scripts":{"test":"node --test ./**/*.spec.js","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.5_1746631553379_0.21124189175502628","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.6","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.6","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"2d2464b96f3103a3ac5e507d53de06edbb4d8842","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.6.tgz","fileCount":24,"integrity":"sha512-6iGhP5LHkEMa0tRs0FJxp0SPIXtKkpF0GV75fQyCW5zhWIWLSVa56G+4F5b/ocPZG7qLvoVwSU46gRnQ8vVXpw==","signatures":[{"sig":"MEUCIQDtUYiJC1eq3ctyknC/ZnYNDCWLZMelBN/Rqjv9lsvggAIgJNJkP6317eMG09bdZcvYhVhNuqj9Oq411fVKUpA2GuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309916},"type":"module","gitHead":"2ca772fa3ce4d63779fa135166391b2ce3c5d9a3","scripts":{"test":"node --test ./**/*.spec.js","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the npm cli to provide extra checks before installing new packages. The tool will exit the process when a package contains malware, preventing npm to download or run the malware.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.6_1746632241136_0.05615583052709128","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.7","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.7","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"5b98bcad466bcc2ab89bd341f2e604f069cfb5d8","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.7.tgz","fileCount":25,"integrity":"sha512-pCvd9q6dIhhP1+ZY39BuS3WJ/+9LbDYWqm3vcpDP7fhou102EZpWCwBQNAqzFCynB6RGZfMK5Fh/jlenZ318+A==","signatures":[{"sig":"MEYCIQDImZVotHlqM3PMtTtHHnktfmBCtjRcHdh/VBFH/EyQUAIhANwRcyZgL+e6Dqf9DBHheNfNim3i+8X3qLXlvxEEILjS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312552},"type":"module","gitHead":"be47d49d12265f0182a5110dbc79452b5194d5f0","scripts":{"lint":"eslint .","test":"node --test ./**/*.spec.js","postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the [npm cli](https://github.com/npm/cli) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm from downloading or","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.26.0","globals":"^16.1.0","@eslint/js":"^9.26.0","typescript-eslint":"^8.32.0","eslint-plugin-import":"^2.31.0"},"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.7_1747047380051_0.021721168883022113","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@aikidosec/safe-package-manager-internals","version":"1.0.8","keywords":[],"author":"","license":"ISC","_id":"@aikidosec/safe-package-manager-internals@1.0.8","maintainers":[{"name":"hansaikido","email":"hans@aikido.dev"},{"name":"willem-delbare","email":"willem@aikido.dev"}],"bin":{"aikido-npm":"bin/aikido-npm.js"},"dist":{"shasum":"1ef76ed9ff6b1f85e0f873334833f3aa9b31497e","tarball":"https://registry.npmjs.org/@aikidosec/safe-package-manager-internals/-/safe-package-manager-internals-1.0.8.tgz","fileCount":28,"integrity":"sha512-QxvkkTWwV/tMGw+bdhY9MTK1Y8bmssY8DD5SWvnWTbm+Q3xtGwY6h7fmv3MkItV4/h4NKzW7VKQpfO6+sW4nCQ==","signatures":[{"sig":"MEUCIAT/6BvKUxIBcZflxDS33ST/rZ6h1n6lJws3iRcj7nWgAiEAuWPajOCk4lTM9EVWny/7HlV1Gl+8enIHy66DM8yAwOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316507},"type":"module","gitHead":"0e74ea700acf6dca988586e47918bdd8a50e3f96","scripts":{"lint":"eslint .","test":"node --test ./**/*.spec.js"},"_npmUser":{"name":"willem-delbare","email":"willem@aikido.dev"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"10.9.2","description":"The Aikido Safe Package Manager wraps around the [npm cli](https://github.com/npm/cli) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm from downloading or","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","abbrev":"^3.0.1","@inquirer/prompts":"^7.4.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.26.0","globals":"^16.1.0","@eslint/js":"^9.26.0","typescript-eslint":"^8.32.0","eslint-plugin-import":"^2.31.0"},"_npmOperationalInternal":{"tmp":"tmp/safe-package-manager-internals_1.0.8_1747317146530_0.29193750409494923","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-04-18T10:33:07.201Z","modified":"2026-05-30T13:57:15.715Z","1.0.0":"2025-04-18T10:33:07.455Z","1.0.1":"2025-04-18T11:20:33.998Z","1.0.2":"2025-04-24T07:18:10.551Z","1.0.3":"2025-04-29T06:57:48.344Z","1.0.4":"2025-05-06T11:22:54.979Z","1.0.5":"2025-05-07T15:25:53.679Z","1.0.6":"2025-05-07T15:37:21.545Z","1.0.7":"2025-05-12T10:56:20.279Z","1.0.8":"2025-05-15T13:52:26.730Z"},"license":"ISC","keywords":[],"description":"The Aikido Safe Package Manager wraps around the [npm cli](https://github.com/npm/cli) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm from downloading or","maintainers":[],"readme":"# Aikido Safe Package Manager\n\nThe Aikido Safe Package Manager wraps around the [npm cli](https://github.com/npm/cli) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm from downloading or running the malware.\n\n![demo](./safe-package-manager-demo.gif)\n\n## Installation\n\nTo install the Aikido Safe Package Manager, you can use the following command:\n\n```shell\nnpm i -g @aikidosec/safe-package-manager-internals\n```\n\nNow you should be able to use the `aikido-npm` command. Example: `aikido-npm install axios`.\n\n## Api key\n\nThe Aikido Safe Package Manager requires an API key to work. You can get your API key by signing up at [Aikido](https://aikido.dev). Once you have your API key, you can set it using the following command:\n\n```shell\naikido-npm set-aikido-token YOUR_API_KEY\n```\n\n## Aliases in shell\n\nIt is possible to create an alias for `aikido-npm` so that it runs whenever you run an npm command. That way you can run `npm install some-package` and it will execute the `aikido-npm install some-package` command instead, ensuring you are protected.\n\n### Creating an alias\n\nTo add an alias to your shell startup script, you can use the built-in command `aikido-npm add-aikido-npm-alias`:\n\n```shell\n# Example for bash\naikido-npm add-aikido-npm-alias ~/.bashrc\n\n# Example for zsh\naikido-npm add-aikido-npm-alias ~/.zshrc\n\n# Exaple for powershell\naikido-npm add-aikido-npm-alias $PROFILE\n```\n\nThis will create the alias, but only if the file exists. The following table shows the alias that will be created in the shell startup script:\n\n| Shell          | Startup script             | Alias                                   |\n| -------------- | -------------------------- | --------------------------------------- |\n| **Bash**       | ~/.bashrc                  | `alias npm='aikido-npm'`                |\n| **Zsh**        | ~/.zshrc                   | `alias npm='aikido-npm'`                |\n| **Ash**        | ~/.profile, ~/.ashrc       | `alias npm='aikido-npm'`                |\n| **Fish**       | ~/.config/fish/config.fish | `alias npm \"aikido-npm\"`                |\n| **Powershell** | $PROFILE                   | `Set-Alias -Name npm -Value aikido-npm` |\n\nAfter adding the alias, **the shell needs to restart in order to load the alias**.\n\n### Removing the alias\n\nTo remove the alias, you can use the built-in commands of `aikido-npm`:\n\n- `aikido-npm remove-aikido-npm-alias file_name` (eg `~/.bashrc`, `~/.zshrc`, etc.)\n  This will remove the alias if it is present in the file.\n","readmeFilename":"README.md"}