{"_id":"@belym.a.2105/publish-please","_rev":"4-568530c37f54f331fb6c4b9731008f6c","name":"@belym.a.2105/publish-please","dist-tags":{"latest":"2.4.1"},"versions":{"2.4.0-alpha.0":{"name":"@belym.a.2105/publish-please","version":"2.4.0-alpha.0","description":"Safe and highly functional replacement for `npm publish`.","main":"./lib/index.js","bin":{"publish-please":"./bin/publish-please.js"},"scripts":{"lint":"eslint bin src test","clean":"rm -rf lib","clean-test":"rm test/__test-compiled__.js","compile":"babel src -d lib","compile-test":"babel test/test.js --out-file test/__test-compiled__.js","build":"npm run clean && npm run compile","test":"npm run lint && npm run build && npm run compile-test && mocha test/__test-compiled__.js && npm run clean-test","postinstall":"node lib/init.js"},"repository":{"type":"git","url":"git+https://github.com/inikulin/publish-please.git"},"keywords":["gulp","npm","publish","package","module"],"author":{"name":"Ivan Nikulin","email":"ifaaan@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/inikulin/publish-please/issues"},"homepage":"https://github.com/inikulin/publish-please#readme","files":["lib","bin"],"dependencies":{"ban-sensitive-files":"^1.7.2","chalk":"^1.1.1","cp-sugar":"^1.0.0","elegant-status":"^1.0.0","globby":"^4.0.0","inquirer":"^0.12.0","lodash":"^4.7.0","node-emoji":"^1.0.4","nsp":"^2.2.0","pinkie-promise":"^2.0.1","pkgd":"^1.1.2","promisify-event":"^1.0.0","read-pkg":"^1.1.0","semver":"^5.3.0"},"devDependencies":{"babel-cli":"^6.9.0","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.9.0","babel-preset-es2015":"^6.9.0","del":"^2.2.0","eslint":"^1.10.3","eslint-plugin-babel":"^3.0.0","mkdirp":"^0.5.1","mocha":"^2.3.4"},"gitHead":"2d35112fde5dc3339c089fd0d469c65bfed5db30","_id":"@belym.a.2105/publish-please@2.4.0-alpha.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"},"dist":{"integrity":"sha512-lbWfx8gsBY8tudKINKG5k5klMITxsSjXcJVw3vuNtl1mKGkg8keirRN1iPEfcv+gglaCnMmsHUFJRRMObp7CYA==","shasum":"017406e7c872909155fb72be20032349027d4c99","tarball":"https://registry.npmjs.org/@belym.a.2105/publish-please/-/publish-please-2.4.0-alpha.0.tgz","fileCount":19,"unpackedSize":29302,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaEO44ATwY8pKL58nIeBdF2L+KUJMdFO6ToDIEJq6hKAIhAM9oK67e4FnNY2TQrY/7nNgU98IwQn17UU5C3g0nIjQa"}]},"maintainers":[{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/publish-please_2.4.0-alpha.0_1521630180224_0.5711309465206518"},"_hasShrinkwrap":false},"2.4.0":{"name":"@belym.a.2105/publish-please","version":"2.4.0","description":"Safe and highly functional replacement for `npm publish`.","main":"./lib/index.js","bin":{"publish-please":"./bin/publish-please.js"},"scripts":{"lint":"eslint bin src test","clean":"rm -rf lib","clean-test":"rm test/__test-compiled__.js","compile":"babel src -d lib","compile-test":"babel test/test.js --out-file test/__test-compiled__.js","build":"npm run clean && npm run compile","test":"npm run lint && npm run build && npm run compile-test && mocha test/__test-compiled__.js && npm run clean-test","postinstall":"node lib/init.js"},"repository":{"type":"git","url":"git+https://github.com/inikulin/publish-please.git"},"keywords":["gulp","npm","publish","package","module"],"author":{"name":"Ivan Nikulin","email":"ifaaan@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/inikulin/publish-please/issues"},"homepage":"https://github.com/inikulin/publish-please#readme","files":["lib","bin"],"dependencies":{"ban-sensitive-files":"^1.7.2","chalk":"^1.1.1","cp-sugar":"^1.0.0","elegant-status":"^1.0.0","globby":"^4.0.0","inquirer":"^0.12.0","lodash":"^4.7.0","node-emoji":"^1.0.4","nsp":"^2.2.0","pinkie-promise":"^2.0.1","pkgd":"^1.1.2","promisify-event":"^1.0.0","read-pkg":"^1.1.0","semver":"^5.3.0"},"devDependencies":{"babel-cli":"^6.9.0","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.9.0","babel-preset-es2015":"^6.9.0","del":"^2.2.0","eslint":"^1.10.3","eslint-plugin-babel":"^3.0.0","mkdirp":"^0.5.1","mocha":"^2.3.4"},"gitHead":"2d35112fde5dc3339c089fd0d469c65bfed5db30","_id":"@belym.a.2105/publish-please@2.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"},"dist":{"integrity":"sha512-S2eOsJLSfgGQGMOEmBcfkzg0mEOwSagv0upuV/pBWchrth57BlPhpPIfFCjxjK4Tf/bKMQnyqqFL2Gp+M3Ig6A==","shasum":"788caf9684080d5a9b489786ca1b6ca457447ec1","tarball":"https://registry.npmjs.org/@belym.a.2105/publish-please/-/publish-please-2.4.0.tgz","fileCount":19,"unpackedSize":29294,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCKxvu1bo/aTvfOGFhLxNa35v4O+rvsfqIVuslXDAe4AiAluR/qqPhVxr/jWZ7XS8fhnerRA3rdYs4vL/j68c+zDQ=="}]},"maintainers":[{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/publish-please_2.4.0_1521631048747_0.48777541406502456"},"_hasShrinkwrap":false},"2.4.1":{"name":"@belym.a.2105/publish-please","version":"2.4.1","description":"Safe and highly functional replacement for `npm publish`.","main":"./lib/index.js","bin":{"publish-please":"./bin/publish-please.js"},"scripts":{"lint":"eslint bin src test","clean":"rm -rf lib","clean-test":"rm test/__test-compiled__.js","compile":"babel src -d lib","compile-test":"babel test/test.js --out-file test/__test-compiled__.js","build":"npm run clean && npm run compile","test":"npm run lint && npm run build && npm run compile-test && mocha test/__test-compiled__.js && npm run clean-test","postinstall":"node lib/init.js"},"repository":{"type":"git","url":"git+https://github.com/inikulin/publish-please.git"},"keywords":["gulp","npm","publish","package","module"],"author":{"name":"Ivan Nikulin","email":"ifaaan@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/inikulin/publish-please/issues"},"homepage":"https://github.com/inikulin/publish-please#readme","files":["lib","bin"],"dependencies":{"ban-sensitive-files":"^1.7.2","chalk":"^1.1.1","cp-sugar":"^1.0.0","elegant-status":"^1.0.0","globby":"^4.0.0","inquirer":"^0.12.0","lodash":"^4.7.0","node-emoji":"^1.0.4","nsp":"^2.2.0","pinkie-promise":"^2.0.1","pkgd":"^1.1.2","promisify-event":"^1.0.0","read-pkg":"^1.1.0","semver":"^5.3.0"},"devDependencies":{"babel-cli":"^6.9.0","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.9.0","babel-preset-es2015":"^6.9.0","del":"^2.2.0","eslint":"^1.10.3","eslint-plugin-babel":"^3.0.0","mkdirp":"^0.5.1","mocha":"^2.3.4"},"gitHead":"fbf2f06c6db7ac7f42ff3629ecf33c04c7641b80","_id":"@belym.a.2105/publish-please@2.4.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"},"dist":{"integrity":"sha512-XYGVH8OcsFmjFqp/uVGGdNx3wuvPU0QqflS84R1vuZ4SgaYP2sB7yhbKV2nv/gH5C6/TICgsQ4n2Ot+bnL1Wgw==","shasum":"f67626a061e0451aac794bcb9708fd4866ace1d7","tarball":"https://registry.npmjs.org/@belym.a.2105/publish-please/-/publish-please-2.4.1.tgz","fileCount":19,"unpackedSize":29461,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGpByH+S5W48y+Ck2QV5b3lMlEu8C7PcXO7wYQYdxeLLAiB9P5j5ydRVvgDaVN+WWrl1tmXENN3E6nLeaF+zyEu5EQ=="}]},"maintainers":[{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/publish-please_2.4.1_1522671539025_0.5659610134410766"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-21T11:03:00.167Z","2.4.0-alpha.0":"2018-03-21T11:03:00.268Z","modified":"2022-04-04T18:20:52.197Z","2.4.0":"2018-03-21T11:17:28.837Z","2.4.1":"2018-04-02T12:18:59.081Z"},"maintainers":[{"name":"belym.a.2105","email":"belym.a.2105@gmail.com"}],"description":"Safe and highly functional replacement for `npm publish`.","homepage":"https://github.com/inikulin/publish-please#readme","keywords":["gulp","npm","publish","package","module"],"repository":{"type":"git","url":"git+https://github.com/inikulin/publish-please.git"},"author":{"name":"Ivan Nikulin","email":"ifaaan@gmail.com"},"bugs":{"url":"https://github.com/inikulin/publish-please/issues"},"license":"MIT","readme":"# Publish, please!\r\n\r\n[![Build Status](https://travis-ci.org/inikulin/publish-please.svg?branch=master)](https://travis-ci.org/inikulin/publish-please)\r\n[![npm version](https://img.shields.io/npm/v/publish-please.svg)](https://www.npmjs.com/package/publish-please)\r\n[![Dependency Status](https://david-dm.org/inikulin/publish-please.svg)](https://david-dm.org/inikulin/publish-please)\r\n\r\n<p align=\"center\">\r\n<i>Safe and highly functional replacement for `npm publish`.</i>\r\n</p>\r\n<p align=\"center\">\r\n    <img src=\"https://raw.githubusercontent.com/inikulin/publish-please/master/media/demo.gif\" alt=\"demo\" />\r\n</p>\r\n\r\nThere are numerous ways to \"shoot yourself in the foot\" using `npm publish`. The purpose of this module is to replace\r\n`npm publish` for your packages with safe and more functional alternative, which will allow you to:\r\n\r\n - Run tests or build steps before publishing (because `prepublish` is [broken](https://medium.com/greenkeeper-blog/what-is-npm-s-prepublish-and-why-is-it-so-confusing-a948373e6be1#.a40w9sdy6)).\r\n - Perform check for the [sensitive data](#sensitive-information-audit) in your package to be sure that you didn't leak it by accident (Further reading: [Do not underestimate credentials leaks](https://github.com/ChALkeR/notes/blob/master/Do-not-underestimate-credentials-leaks.md)).\r\n - Perform check for vulnerable dependencies using [Node Security Project](https://nodesecurity.io/) data.\r\n - Check that you are in the correct git branch.\r\n - Check that git tag matches version specified in the `package.json`.\r\n - Check that there are no uncommitted changes in the working tree.\r\n - Check that there are no untracked files in the working tree.\r\n - Force usage of the [npm publish tag](https://docs.npmjs.com/cli/publish) there necessary, so you'll be sure you're not publishing preview version of your package as a release version.\r\n - Get release summary and publishing confirmation.\r\n - Configure publishing using built-in configuration wizard.\r\n\r\n## Getting started\r\nSetup process of *publish-please* is quite trivial - just run\r\n```shell\r\nnpm install --save-dev publish-please\r\n```\r\nin your project's directory.\r\n\r\nOnce it finish installing, *publish-please* will automatically run it's configuration wizard, which will guide you\r\nthrough some simple steps to setup [features](#options) you want to use:\r\n\r\n![config](https://raw.githubusercontent.com/inikulin/publish-please/master/media/config.png)\r\n\r\nIf you forgot to configure something or just changed your mind and want to change configuration, just run\r\n```shell\r\nnpm run publish-please config\r\n```\r\nto return to wizard.\r\n\r\nSo, once you've done with wizard from now on `npm publish` for your package is disabled (Muahahaha :smiling_imp:):\r\n\r\n![guard](https://raw.githubusercontent.com/inikulin/publish-please/master/media/guard.png)\r\n\r\nBut don't worry it's done for the good reason to prevent you or your co-workers run unsafe publishing process. Use awesome version\r\ninstead:\r\n```shell\r\nnpm run publish-please\r\n```\r\n\r\n\r\n## Options\r\n\r\n - **prePublishScript** - Specifies command that will be run before publish (e.g. `npm test`). Use it for builds and tests. Default: `npm test`.\r\n - **postPublishScript** - Specifies command that will be run after successful publishing. Use it for release announcements, creating a GitHub release, uploading binaries, etc. Default: `` (no command).\r\n - **publishCommand** - Specifies publishing command which will be used to publish the package. Default: `npm publish`.\r\n - **publishTag** - Specifies tag with which package will be published. See [npm publish docs](https://docs.npmjs.com/cli/publish) for more info. Default: `latest`.\r\n - **confirm** - Ask for the confirmation before publishing. Default: `true`.\r\n\r\n### Validations\r\n - **uncommittedChanges** - Check that there are no uncommitted changes in the working tree. Default: `true`.\r\n - **untrackedFiles** - Check that there are no untracked files in the working tree. Default: `true`.\r\n - **gitTag** - Check that git tag matches version specified in the `package.json`. Default: `true`.\r\n - **branch** - Check that current branch matches the specified branch. Default: `master`.\r\n - **sensitiveData** - Perform [audit for the sensitive data](#sensitive-information-audit). Default: `true`.\r\n - **vulnerableDependencies** - Perform vulnerable dependencies check using [Node Security Project](https://nodesecurity.io/) data. Default: `true`.\r\n\r\n\r\n## Sensitive information audit\r\n**Important note:** tool provides some very basic sensitive data check. Do not rely on it fully. Always perform manual checks for the\r\nsensitive data in your packages.\r\n\r\nPerformed for the following items:\r\n\r\n - Private SSH key\r\n - Potential cryptographic private key\r\n - Potential cryptographic key bundle\r\n - Pidgin OTR private key\r\n - Shell command history file\r\n - MySQL client command history file\r\n - PostgreSQL client command history file\r\n - Ruby IRB console history file\r\n - Pidgin chat client account configuration file\r\n - Hexchat/XChat IRC client server list configuration file\r\n - Irssi IRC client configuration file\r\n - Recon-ng web reconnaissance framework API key database\r\n - DBeaver SQL database manager configuration file\r\n - Mutt e-mail client configuration file\r\n - S3cmd configuration file\r\n - T command-line Twitter client configuration file\r\n - OpenVPN client configuration file\r\n - Well, this is awkward... Gitrob configuration file\r\n - Shell configuration file\r\n - Shell profile configuration file\r\n - Shell command alias configuration file\r\n - Ruby On Rails secret token configuration file\r\n - OmniAuth configuration file\r\n - Carrierwave configuration file\r\n - Ruby On Rails database schema file\r\n - Potential Ruby On Rails database configuration file\r\n - Django configuration file\r\n - PHP configuration file\r\n - KeePass password manager database file\r\n - 1Password password manager database file\r\n - Apple Keychain database file\r\n - GNOME Keyring database file\r\n - Log file\r\n - Network traffic capture file\r\n - SQL dump file\r\n - GnuCash database file\r\n - Contains word: backup\r\n - Contains word: dump\r\n - Contains word: password\r\n - Contains words: private, key\r\n - Jenkins publish over SSH plugin file\r\n - Potential Jenkins credentials file\r\n - Apache htpasswd file\r\n - Configuration file for auto-login process\r\n - KDE Wallet Manager database file\r\n - Potential MediaWiki configuration file\r\n - Tunnelblick VPN configuration file\r\n - Rubygems credentials file\r\n - Potential MSBuild publish profile\r\n - PHP dotenv\r\n\r\n\r\n## Check out my other packages used by this tool\r\n- [cp-sugar](https://github.com/inikulin/cp-sugar) - Some sugar for child_process module.\r\n- [elegant-status](https://github.com/inikulin/elegant-status) - Create elegant task status for CLI.\r\n- [pkgd](https://github.com/inikulin/pkgd) - Get package publish info: package.json and file list.\r\n- [promisify-event](https://github.com/inikulin/promisify-event) - Promisify EventEmitter's event.\r\n\r\n## Author\r\n[Ivan Nikulin](https://github.com/inikulin) (ifaaan@gmail.com)\r\n","readmeFilename":"README.md"}