{"_id":"close-with-grace","_rev":"12-b37b4129328abfe46f85c0e0caba698e","name":"close-with-grace","dist-tags":{"latest":"2.5.0"},"versions":{"0.1.0":{"name":"close-with-grace","version":"0.1.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@0.1.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"9ea7b95104e1cd25fac217ee7ebe6fae8fb8cc52","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-0.1.0.tgz","fileCount":13,"integrity":"sha512-WL+a1s/HftXh9RVCu5CpriYD7O+jYc59pUD+o8urmXHQUdszi3OFtq7jG7DjU104CNWN93WF4xFkFTNGqDyavQ==","signatures":[{"sig":"MEUCIHOKK9HbOn8LoapbzN6LmVY+NkNijDHfVnjj8UoCPjZHAiEAy4Jt0F8u5ZsufhoMa4b6mw5rlB39FLcEbigkPeUIlc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIeOdCRA9TVsSAnZWagAAa80P/iYZAWbvf7z9YjoxsApU\nhg9YqZFpdnL0ShFj4V0UzT2CRp2X1vKYmQ0HNtkDoh0QhKbTi9ui/6FzV6Rl\n1KHW6VGZL8dn7YG4xsnQNMO8uctN18ueRnELBbapO40qK7/lwxWuUz3dJPcf\nxAnaWEwUyHtHnKt6yBVRt+cyV3Z/RY4XV8pw5g5DkNuVBG3FXtWO91mJzbGQ\nVbj76BRRDxYF9GD2y/yovPor/8l6QxBIj+3YGBRWJRkwmubW26U53GmCzzn7\nCXFGQZz6ARRtW33JAi1n7nicFNjIA0Z8ghyJWpH1Di8c1kDsKdpaG0l3StSn\nkloAi6o+AsJsX654qrwPglNJkVIs/Q5NWNpUDd4khbgBGIH84kePDaKdUZa6\nAyR/wJeTODfvyLQBYbRzE2jHhNI7CcOvhb80vksa7nMO3q8Vt5Nz71H91NSM\n8z0S/a1Tj0SB97iAPIGZtx0a3oibn+0i+BgK5Bhc5RdEn8CzLqbvXmv9AFT7\nXnMnHtTUsOaOxXFg1n1+W5qir8kF97PJ355CPmHCAK5C3aJ006qyOcftmno7\ngGrI1txPKoLJOYEEsHSI/p0z5xK8CQhm/A9KyWnpNeIXGlNI47lvCiZZNIuW\naXLOKSykvoA+E43zM7ygqBihu+7e9ALF1HFzqYz+nweZvQjlBG+p39QL7WWi\ndaFF\r\n=O79V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"npm test"}},"gitHead":"167f93dd1c7a6ae69bd118f1ccc47c9827924966","scripts":{"test":"standard && tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"7.5.2","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"tape":"^5.1.1","husky":"^4.3.8","tap-dot":"^2.0.0","standard":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_0.1.0_1612833692980_0.8770780942197569","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"close-with-grace","version":"1.0.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@1.0.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"b719c3c45aa1833b49e4418ac873d5664cd9421d","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-1.0.0.tgz","fileCount":14,"integrity":"sha512-yO4Buv8PNK9FpqtnfB/E0ddBRYvlechX3AZ3u1+yS8ty0CcGtQ27N0xHy92Lq9xD/hgcTWjipRDMJMt/Tn7Seg==","signatures":[{"sig":"MEYCIQCUmhsp4mVgDmQ38kDPh/ye12b+D854dBqsNIMeApIiQAIhAKR63KwWiXXq5NotrJP+QXLLLhIKNgoNesjSPh5ObVf5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJIEsCRA9TVsSAnZWagAAxVQP/RtqZ0LfQEA7hDUiZ41/\nUhJQ/yvx2DgKp4u0ZfIOV8Rlz+PwqY3p7+2SB8P0rOjxLMaQ1z+9G5Xu9wOC\ny0rX6Z6MOXjeSAtcUIoPJYllpQsvNm3N6YSHQzShx31XlI1AMhzvKp9dM736\ne5fni4ib8IU/DVIlCB5w1sNFtwFOl1b0twpYdgFS3ucUxZsXjYJW5sWxwJoo\njXFQg1kpuHd2oYXLcFkr6zYLfHrvRmt7UqDZcjxeWYEJtA5XLzJe/Z+kpPCp\nm4bqEB6iGKqPFtZIzcxwDRN8uVRo2qPe4riVatH2ne7gvmrJiH2C/pXyWx0j\nGNK0RZy6lJtpU6VAQnK+cqP72U9d7K8wDYa7CCIUfsLmk5obCL3W41N9QY+7\nTHIN21gaSYluG1vN0gYqBEB60AkKYZUH4TxcZh/j9RfNqabir72GOpoW6EO4\nM07Fr72b19x4oWghALKZJJPy8n+bUVbdUjkc6Qrn9ra9gYVbjVc3zz49t7aW\nr+pt4B+gtOOuy5JpjV3FQ4Yi9gU8cwnlmLuJYuWrzoHxnCm+7bBu0PjDSveu\nLAOW5fJClHjelCkAHJedJoCYkXIY4Mjmmkal+GX8d8ZT3OQOLslpkIhmg59l\nH0RmPFo302lbWN7T0f96f7z7/MIEAV4JC71mrTdRkdhgfPQRczsoGQPeWWDj\nNJDF\r\n=ng72\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"npm test"}},"gitHead":"6e570155ccf19ee97337173fb7511531d7e88142","scripts":{"test":"standard && tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"7.5.2","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"tape":"^5.1.1","husky":"^4.3.8","tap-dot":"^2.0.0","standard":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_1.0.0_1613005099409_0.48566936207286737","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"close-with-grace","version":"1.1.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@1.1.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"91a48cf2019b5ae6e67b0255a32abcfd9bbca233","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-1.1.0.tgz","fileCount":18,"integrity":"sha512-6cCp71Y5tKw1o9sGVBOa9OwY4vJ+YoLpFcWiTt9YCBhYlcQi0z68EiiN9mJ6/401Za6TZ5YOZg012IHHZt15lw==","signatures":[{"sig":"MEQCIBfhVsA3PQ1MvcoGjjKrJBM29XRmRgepSUkx0Dd8vfFBAiAzCIYFYL53DAMuTSCwahQHkbA90hPF7FukCONsdyzyVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPlicCRA9TVsSAnZWagAAvu8P/2CuFekUlcEyyPuzGZrc\nsFuKf155lw3Y8LBb0gy5sGRk2Hf2niEpE0Q3BzWx/uvAa0fryvmMh5ERvU+9\nyvFzJ1Cr3YcIYESt4zlcSPKrqaB5w98P4nlN9NXWBBvuLfGhonNHG8pMbUIP\nY9HpX/uCkevlAi0bzSWClefoC4qQeVTz4E2r7R14RbjlDRGounyfli0MRCTX\nhgi/KoMMhf/OqN1vYKw1McXkqKBjUxwv3kfyqeIM8aA9r1CarkF1CaOpIQYW\n/KlYzeut3YfoRfH2t1AvbCyT1tMm+PLA6GDm+B2R6y8SF6QW5a7JIDXCqqOb\nq5O3hpTf05pFkr0JxppNZdxX3BbPhc3PZnDauRIeikun6g4eword+juP8MdF\nVO5BiC/6I9nAdmFOCKF1ZX5kPA3lkKLQemgWZpRFQdLTRG5c6LlxgBJt12zV\nfc1+qaIDWgcqqmIyYNWqE7mkVz5cloWRUZ6P4PeDZ9Pi+Z3ybCsIe9syA6jc\nRlcduuhFO00ROuRHG3ZVNG8jYdzSZJlL6xH2mRPA7k3CQV+aOIEc0s1idQfB\nLO3vduZdKnrbT/Jb/WQyNXbD4iU/SSt4pHeUAz5YGc5Lutsy2Fzt7Ewg9XM7\nSmERLWMjJ/ycYMfhEIvx8Vldw9LgiJPS6Gmif70wofjDr7xqkNsrLK+7pQ8k\nBEQ2\r\n=qp4/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"npm test"}},"gitHead":"0fed246971658bd66ab89dcbc23e5992c9d7c1fa","scripts":{"test":"standard && tape test/*.test.js | tap-dot && tsd"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"7.6.0","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.14.0","tape":"^5.1.1","husky":"^4.3.8","tap-dot":"^2.0.0","standard":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_1.1.0_1614698652003_0.8644900649690557","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"close-with-grace","version":"1.2.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@1.2.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"9af82cc62b40125125e4c772e4dbe3cd8c3ff494","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-1.2.0.tgz","fileCount":18,"integrity":"sha512-Xga0jyAb4fX98u5pZAgqlbqHP8cHuy5M3Wto0k0L/36aP2C25Cjp51XfPw3Hz7dNC2L2/hF/PK/KJhO275L+VA==","signatures":[{"sig":"MEQCIF/65LaLEKo+iBjdZw+u4Jb/UF2eeDXKWJE/bYB/9d/mAiAS2B1TkQtoVvSgdEuBcYuMr4JmgQz3TH7sMu1nFNC2AA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkL/DYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptLQ/9Ei9e1NlR+//eswPqmWC0Rkl/hDpVkdIlVCLWvjkYrC+q04XV\r\ngQHqU19tKdmeSSWsCTTumVm2cm4pHKG98O3jhTxqpvrbeyMTSIU+dtHWWK8B\r\nMGPq/PXfLKQ2AQ9tRvNzv2t36RDa8qggSjtWKfBjnL1hvtZpegilf5Bw3J5k\r\nEE6e6Ln9zStH4Ct/zUdlvf+alKOOmYikDqjp5fHFfdYJknGaoFU2ajlWhLJf\r\n1+tECjJanULsyTkFITVE9l/Dfa5N65CYBZksZRRNU+PbkiBQC3GbPdTuzeAt\r\n6W8lB7YWxSh/bB2B4qJPUBDLxSXl8W/7nt9Sycii9k2RZfoihx2rg9LlKyT3\r\n9pCz9yzj7IQhO5ilKu6mVPdFcnkkibhpvkxf5uog21ned7xhqhNBU76rzubQ\r\nOwBiOoTVntmYZgaXM2T9bngYI5PcBUVOcqNnLtofj133gQAlvbXxrKxhxJGt\r\nc8xV1CRJNX2hDyMvMNX5vDMfgMQVWf9CX9JNavua3LETMdBUn4vd44mmevb0\r\nWR644X9wfozXnBQ1MqfBSmfaC1ciWLcalFQAlIFAnCcr2T8DCZFnvgjeypOk\r\ntElwOhil+6cRrYDiByPj01YHybwqC7aKa/2kHJo0reQDMi6o12ukR7KZSfgZ\r\nzM+RYYVWLaQiLwHrGl6oGtPk+c8qPnUZM5A=\r\n=6v8u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"cae1efaa9fce3c908d579dad5f2617073929bccf","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"9.5.0","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_1.2.0_1680863448251_0.5538896425459445","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"close-with-grace","version":"1.3.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@1.3.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"ff0f5889ad076f79c9d4308db75cc827027366b8","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-1.3.0.tgz","fileCount":19,"integrity":"sha512-lvm0rmLIR5bNz4CRKW6YvCfn9Wg5Wb9A8PJ3Bb+hjyikgC1RO1W3J4z9rBXQYw97mAte7dNSQI8BmUsxdlXQyw==","signatures":[{"sig":"MEUCIQCbYpArHjTTf0Doq5kqsEDLxPTGVOlW8TaZZo/Oxh5eewIgc/Zaco6ajVpjiL6SGz7D1NAvjjipux7Di/6qBqGkt04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20345},"main":"index.js","types":"./index.d.ts","gitHead":"ec4dca1c15d6e41c7d19589c5489c27c623cbd91","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"10.2.4","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_1.3.0_1708098778084_0.5459322457761531","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"close-with-grace","version":"2.0.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@2.0.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"43e660bd62a910bddd2ff9d1c96c8b5cb1d916fd","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.0.0.tgz","fileCount":22,"integrity":"sha512-3QmKlUMH69spQ5lqukigG7A/7tF7iWekPJvQ7hsMiTOmEQEda2Q4nhAw48YouYXbMSyJ6tD7h3Pzh+Pxj7OuoQ==","signatures":[{"sig":"MEUCIQDIZwTL3zzEXdVY3/Jnw6uqKcfKE5/eXS1RV2jYphpeQgIgDond1D6W6X/Dr8fifmoNvK8gtbaFgh0qJBHCVEBJJQI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25190},"main":"index.js","types":"./index.d.ts","gitHead":"865c7370d99ba27156c94c2a93dd544cceced70c","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"10.8.1","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_2.0.0_1724139093870_0.9336909027142106","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"close-with-grace","version":"2.1.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@2.1.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"fa8ddbcf99bc16b0c5a21e7fd1fcc3575ae29409","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.1.0.tgz","fileCount":25,"integrity":"sha512-rME1AtzKc9dfpLr8XBVhXqhVZDvtaIA7FIpjPaO+DmDsomaTNtuEBZMoNDgIvjHYK5q8/Afxy34YTXInUBsT1A==","signatures":[{"sig":"MEYCIQCaIsGN6D9ToejbEpjWOaV/S8GKsSKyPe/FITDfY/qQqQIhANFGDPNEhzXqqi9Ucvq/jQ3fvVzfIicvJpJ5u7IteZrj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26170},"main":"index.js","types":"./index.d.ts","gitHead":"ebcd1b37cf8c26721eae24a08280876e83262f2c","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"10.8.1","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_2.1.0_1724515603660_0.5002858037516626","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"close-with-grace","version":"2.2.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@2.2.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"95d7dfae4070dc4074d122fe1a9254acd173dd76","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.2.0.tgz","fileCount":25,"integrity":"sha512-OdcFxnxTm/AMLPHA4Aq3J1BLpkojXP7I4G5QBQLN5TT55ED/rk04rAoDbtfNnfZ988kGXPxh1bdRLeIU9bz/lA==","signatures":[{"sig":"MEYCIQC1du6EUqSNE3zJ0OiQv0vvM2VW+5OFrQ0f/72M/3XTkgIhAKfDxOG8EYsF6o1JUY9SLjNWcQUXIovdIkW97ehbFvki","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27257},"main":"index.js","type":"commonjs","types":"./index.d.ts","gitHead":"7332612c8f72b08c2427f6632aee7a12e4877f78","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"10.9.0","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_2.2.0_1736847499205_0.8932197951507845","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"close-with-grace","version":"2.3.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@2.3.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"01c5a6c1c8e2586b9a949e7bda0767f79c001e34","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.3.0.tgz","fileCount":29,"integrity":"sha512-38BS9BuqAml6XFIlSWQcj3eivE05yFV6cJDuYoNGiHrE+h9ud1JtMJIVKXdLWa2Uo2Xt7q/GYczOesEchvBEsw==","signatures":[{"sig":"MEQCIG4sy4Oh1ARPuKPV+t0jRdmL2TiVmJl24NIO96vQ+WL7AiBTlbXScGHElKmM45pivl8HetRbVzDQbaa3xd1I7xy/cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31884},"main":"index.js","type":"commonjs","types":"./index.d.ts","gitHead":"124baf51ba12db9265ef1f31d66ffe0fb0145cff","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"10.9.3","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_2.3.0_1758632768001_0.3530214869216848","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"close-with-grace","version":"2.4.0","keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","_id":"close-with-grace@2.4.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"homepage":"https://github.com/mcollina/close-with-grace#readme","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"dist":{"shasum":"a557b138c72a74c165a1067bb693ab33eb5426ce","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.4.0.tgz","fileCount":30,"integrity":"sha512-bzAYS0Kax7I0ejiCFHVshsT9giz6MrOpkdpP1CEGpkDRG3mXVgHZ9QdzVGHRZR0jrAq6JyN1mB4Ty3ILnmzLdg==","signatures":[{"sig":"MEYCIQC38kMTIUBG12GbSoqigcf7XTocoxleLwt4+4XhdbFaagIhAJXh7LDk+n3kLD8eZA9eKLHodF/cnmvElZNljUKreJGG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34636},"main":"index.js","type":"commonjs","types":"./index.d.ts","gitHead":"de47b074dafccb8b53ef36a3eb35c2ffe4b48518","scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"repository":{"url":"git+https://github.com/mcollina/close-with-grace.git","type":"git"},"_npmVersion":"11.6.2","description":"Exit your process, gracefully (if possible)","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.0","tape":"^5.1.1","tap-dot":"^2.0.0","standard":"^17.0.0","@fastify/pre-commit":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/close-with-grace_2.4.0_1767086656034_0.8864182768269686","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"close-with-grace","version":"2.5.0","description":"Exit your process, gracefully (if possible)","main":"index.js","type":"commonjs","devDependencies":{"@fastify/pre-commit":"^2.0.2","standard":"^17.0.0","tap-dot":"^2.0.0","tape":"^5.1.1","tsd":"^0.28.0"},"scripts":{"test":"standard && npm run test-only && tsd","test-only":"tape test/*.test.js | tap-dot"},"repository":{"type":"git","url":"git+https://github.com/mcollina/close-with-grace.git"},"keywords":["graceful","shutdown","close","exit"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"homepage":"https://github.com/mcollina/close-with-grace#readme","gitHead":"6f4619cba74da5b920b8604e593360a8b403f2e8","types":"./index.d.ts","_id":"close-with-grace@2.5.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-MewUtZQU6N4YVHIne63zGtjIQzTINgr6lQp2Y0CutaCw2FsdYahW57dH1Wdz+aV5ipbBzEBZD5znwX2NooS+IA==","shasum":"6a9b7fc1cd11e36381758ebefa1845224cca3c94","tarball":"https://registry.npmjs.org/close-with-grace/-/close-with-grace-2.5.0.tgz","fileCount":32,"unpackedSize":38956,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDu0gLlqcGQIWScmMrhnnzLW8gy+19ZAoO/khH2Cem6swIgZA08OAinqzrSo2gmdslbWEtAkZMvshvs4tJyoPbvSMY="}]},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/close-with-grace_2.5.0_1771694005524_0.9458484333981796"},"_hasShrinkwrap":false}},"time":{"created":"2021-02-09T01:21:32.980Z","modified":"2026-02-21T17:13:25.808Z","0.1.0":"2021-02-09T01:21:33.172Z","1.0.0":"2021-02-11T00:58:19.567Z","1.1.0":"2021-03-02T15:24:12.135Z","1.2.0":"2023-04-07T10:30:48.372Z","1.3.0":"2024-02-16T15:52:58.235Z","2.0.0":"2024-08-20T07:31:34.005Z","2.1.0":"2024-08-24T16:06:43.891Z","2.2.0":"2025-01-14T09:38:19.391Z","2.3.0":"2025-09-23T13:06:08.189Z","2.4.0":"2025-12-30T09:24:16.189Z","2.5.0":"2026-02-21T17:13:25.686Z"},"bugs":{"url":"https://github.com/mcollina/close-with-grace/issues"},"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","homepage":"https://github.com/mcollina/close-with-grace#readme","keywords":["graceful","shutdown","close","exit"],"repository":{"type":"git","url":"git+https://github.com/mcollina/close-with-grace.git"},"description":"Exit your process, gracefully (if possible)","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"}],"readme":"# close-with-grace\n\nExit your process, gracefully (if possible) - for Node.js\n\n## Install\n\n```\nnpm i close-with-grace\n```\n\n## Usage\n\n```js\nconst closeWithGrace = require('close-with-grace')\n\n// delay is the number of milliseconds for the graceful close to\n// finish.\ncloseWithGrace({ delay: 500 }, async function ({ signal, err, manual }) {\n  if (err) {\n    console.error(err)\n  }\n  await closeYourServer()\n})\n\n// default delay is 10000\n// to disable delay feature at all, pass falsy value to delay option.\ncloseWithGrace({ delay: false }, () => await somethingUseful())\n```\n\n### Injecting custom logger\n\n```js\nconst closeWithGrace = require('close-with-grace')\n\n// delay is the number of milliseconds for the graceful close to\n// finish.\ncloseWithGrace(\n  {\n    delay: 500,\n    logger: { error: (m) => console.error(`[close-with-grace] ${m}`) }\n  },\n  async function ({ signal, err, manual }) {\n  if (err) {\n    console.error(err)\n  }\n  await closeYourServer()\n})\n\n// default logger is console\n// to disable logging at all, pass falsy value to logger option.\ncloseWithGrace({ logger: false }, () => await somethingUseful())\n```\n\n### Example with Fastify\n\n```js\nimport fastify from 'fastify'\nimport closeWithGrace from 'close-with-grace'\n\nconst app = fastify()\n\ncloseWithGrace(async function ({ signal, err, manual }) {\n  if (err) {\n    app.log.error({ err }, 'server closing with error')\n  } else {\n    app.log.info(`${signal} received, server closing`)\n  }\n  await app.close()\n})\n\nawait app.listen()\n```\n\n### Skipping specific events\n\nSkip specific events from triggering the graceful close. Note: You are responsible for handling skipped events yourself.\n\n```js\nimport closeWithGrace from 'close-with-grace'\n\n// Handle errors separately\nprocess.on('unhandledRejection', (err) => {\n  // Your custom error handling\n})\n\ncloseWithGrace(\n  { skip: ['unhandledRejection', 'uncaughtException'] },\n  async function ({ signal, err, manual }) {\n    await cleanupResources()\n  }\n)\n```\n\n## API\n\n### `closeWithGrace([opts], fn({ err, signal, manual }))`\n\n`closeWithGrace` adds a global listeners to the events:\n\n* `process.once('SIGHUP')`\n* `process.once('SIGINT')`\n* `process.once('SIGQUIT')`\n* `process.once('SIGILL')`\n* `process.once('SIGTRAP')`\n* `process.once('SIGABRT')`\n* `process.once('SIGBUS')`\n* `process.once('SIGFPE')`\n* `process.once('SIGSEGV')`\n* `process.once('SIGUSR2')`\n* `process.once('SIGTERM')`\n* `process.once('uncaughtException')`\n* `process.once('unhandledRejection')`\n* `process.once('beforeExit')`\n\nIn case one of them is emitted, it will call the given function.\nIf it is emitted again, it will terminate the process abruptly.\n\n#### opts\n\n* `delay`: the numbers of milliseconds before abruptly close the\n  process. Default: `10000`.\n  - Pass `false`, `null` or `undefined` to disable this feature.\n\n* `logger`: instance of logger which will be used internally. Default: `console`.\n  - Pass `false`, `null` or `undefined` to disable this feature.\n\n* `skip`: an array of event names to skip from triggering the graceful close callback. Default: `[]`.\n  - Example: `skip: ['unhandledRejection', 'uncaughtException', 'SIGTERM']`\n  - Note: You must handle skipped events yourself, otherwise they may cause the process to crash or exit unexpectedly.\n\n* `onSecondError(error)`: A callback to execute if the process throws an `uncaughtException`\n  or an `unhandledRejection` while `fn` is executing.\n\n* `onSecondSignal(signal)`: A callback to execute if the process receives another\n  signal while `fn` is executing.\n\n* `onTimeout(delay)`: A callback to execute if `fn` failed to completed after `delay` milliseconds.\n\nBoth `onSecondError`, `onSecondSignal` or `onTimeout` can be used to perform custom logic, but `process.exit(1)`\nwill be immediately be invoked after they exit so no asynchronous operations are possible.\n\n#### fn({ err, signal, manual } [, cb])\n\nExecute the given function to perform a graceful close.\nThe function can either return a `Promise` or call the callback.\nIf this function does not error, the process will be closed with\nexit code `0`.\nIf the function rejects with an `Error`, or call the callback with an\n`Error` as first argument, the process will be closed with exit code\n`1`.\n\n#### return values\n\nCalling `closeWithGrace()` will return an object as formed:\n\n* `close()`: close the process, the `manual` argument will be set to\n  true.\n* `uninstall()`: remove all global listeners.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}