{"_id":"@aptoma/hapi-graceful-stop","_rev":"15-5246d2da541deea469e4472cae55550f","name":"@aptoma/hapi-graceful-stop","dist-tags":{"latest":"4.1.0"},"versions":{"1.0.0":{"name":"@aptoma/hapi-graceful-stop","version":"1.0.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@1.0.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"b19ba6ddadda2fc8c6e1bb4e37015535494d05e9","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-1.0.0.tgz","integrity":"sha512-9/BizlvZbCd98j4BmDQpFThJedAk1sMXUTbPO1QXleaCe4mvOTBHZFeTzfCkokiG8Lv1/nTgHG+wsRwibNpFLw==","signatures":[{"sig":"MEUCIF1d5LNRi5vDjbFCVrCsKBCRwafqbHo8N2tRy/V2CCWpAiEA23vjdX8c/f25q47JahPK80e/BUDRG6r7PfOFmGrRBX4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b19ba6ddadda2fc8c6e1bb4e37015535494d05e9","gitHead":"409b3ead9a78b91e8632da183a95ff7323dca43d","scripts":{"ci":"npm test --coverage && istanbul report cobertura","test":"jshint test/ index.js && istanbul test --preload-sources _mocha -- -u exports -R spec 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"2.14.7","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"4.2.2","dependencies":{},"devDependencies":{"hapi":"^9.3.1","mocha":"^1.21.4","jshint":"^2.5.6","should":"^4.0.4","istanbul":"^0.3.2","release-it":"0.0.11"}},"1.1.0":{"name":"@aptoma/hapi-graceful-stop","version":"1.1.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@1.1.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"b3ff2f7d9a44cfbc1a8cc13cb541f3b126da0c79","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-1.1.0.tgz","integrity":"sha512-nU/u3+MqVmXscCMegczQLey3Y+xABMuzqGQpQn5RT63GK2BK/H801QuqQadGt/4rofwUu+AN1QUsew09gESX5Q==","signatures":[{"sig":"MEUCIQD7CYLJIdCKA//8pntZ5tJrpRN7g/viVyTi0RFbuJft0gIgKdJvidvtpOkbVqrFI/NlxkpcFy0qcZnQenHwYXbHxeU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b3ff2f7d9a44cfbc1a8cc13cb541f3b126da0c79","gitHead":"615b0accd697a88b0c801997960375ffddabece5","scripts":{"ci":"npm test --coverage && istanbul report cobertura","test":"jshint test/ index.js && istanbul test --preload-sources _mocha -- -u exports -R spec 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"2.14.12","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"4.2.6","dependencies":{},"devDependencies":{"hapi":"^9.3.1","mocha":"^1.21.4","jshint":"^2.5.6","should":"^4.0.4","istanbul":"^0.3.2","release-it":"0.0.11"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop-1.1.0.tgz_1464084175300_0.67503104894422","host":"packages-12-west.internal.npmjs.com"}},"2.0.0":{"name":"@aptoma/hapi-graceful-stop","version":"2.0.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@2.0.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"7c84b19dde547a5475ebded024d06b5281dbdfb9","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-2.0.0.tgz","integrity":"sha512-BvRabD39RIDRcLscrq57Lo1SdOLwhTCONk9J8ErnA4Iw31U6syt4o9DrbbNfpzCfs+If+IvoBCqqK2YxWt1gLQ==","signatures":[{"sig":"MEUCIQDWeiJBpcA751DN5A+KplpzlgK2cduyxYW2f746YZFZiwIgU+tsqVd78MIFXkgqyBC5oT94m4a1cJ3vaqKYlrOLnjc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","engines":{"node":">=8.0.0"},"gitHead":"1df181313a1a49322b57f0cc5427b1559de712ee","scripts":{"ci":"npm test --coverage && istanbul report cobertura","lint":"eslint --ext '.js' test index.js","test":"npm run lint && istanbul test --preload-sources _mocha -- -u exports -R spec 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"5.4.2","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"8.7.0","dependencies":{},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":"2017"}},"devDependencies":{"hapi":"^17.1.1","mocha":"^4.0.1","eslint":"^4.12.1","should":"^13.1.3","istanbul":"^0.4.5","release-it":"^2.4.3","@aptoma/eslint-config":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop-2.0.0.tgz_1512568772322_0.7014893244486302","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@aptoma/hapi-graceful-stop","version":"3.0.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@3.0.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"25eda1668af047572c6fdad0953e7659aec4c655","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-3.0.0.tgz","fileCount":6,"integrity":"sha512-JceHiZ9ng70HoxvPamhtpI15ePjKkMKH+F0kLbUjZ6dQnUw4EV1jLmtJHbuTCOm3UKFwJybvoob6ePpOAope8A==","signatures":[{"sig":"MEUCIEjjjol9c3diRFvSlVf/3XziXrEYDv5Hboo8d3Zp3EzUAiEA/EleqjTRJTuSIHZj+T/pdTMC/+r3nenIJzdvGMxPDGQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGypKCRA9TVsSAnZWagAAgF8P/3cpoDUlgOwjLZPgtNQ4\nhD0HIry0sSU04eJXl/EEKDuvfZ5KZ0jm3aw1SY6vvl5QgoMQ5PRuzYtgKwPW\no9MgyivmCAVJlRNzSfZLCuEdrGABRsu1dTB44EDJWTqLAr1L+B9xOLXXJwtG\nbxgd3W2CKz/mOQNSCppxd+ovJZXQzVFdo976r5u7u5TpVbuSyeXI2MC5t1fW\n3z0/QRmSLGRNeFf2QqcWjlKGNxRlmDleSRcpJ6qTjQx/1mxvDCohWDgZaWK8\nHIBQyG4O6mes/4kD4YBMv8fujalnNHfg33CSPfQeFL1AYiDPQ8yuCf1bNA3c\nkaN/HbKSqU3PYZ9LYW5nbBWmj5G5J21qPsO8QQYilKzIsUPRCU97MZqcAXfj\nOi8aavLSdWlYCmspK9HVzKbAjsz18lc0lIJ52TRtblj0AT7adSVJ0TR3/lM9\nB8r8Z6udbYHCJG46X42MlMkWkENR2OrxFNmaL3yn5Z5rPaQZ5bM3xVbGo20b\nWDY7Sl2Sw7Kq+bq0nwsQNhatVWVRol3NzdKzjZGkfeoWrQRKh4ydi8lMDCZu\nQilb+NkPVWRxMVPY2rFkPt+GoMQ/O013jxJRkd+evyNay1OQmtD5Kk0VI/AH\nqTLzqhkZejYkqwWAWnExvzNsg/jgrHFNcMVrFcmwTKMyz6zDbjLXkqkSNMkj\nCzmZ\r\n=+Kub\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10.0.0"},"gitHead":"79e7f5e29d5a83897d969387b71ff6b509987fe8","scripts":{"lint":"eslint --ext '.js' test index.js","test":"npm run lint && nyc --reporter=text-summary --reporter=lcov mocha --exit 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"6.4.1","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"10.15.3","dependencies":{},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":"2017"}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","mocha":"^6.1.4","eslint":"^6.0.1","should":"^13.2.3","@hapi/hapi":"^18.3.1","release-it":"^2.4.3","@aptoma/eslint-config":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop_3.0.0_1562061386321_0.3445184753291164","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@aptoma/hapi-graceful-stop","version":"3.1.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@3.1.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"f547bd19b2ff612daea044c941c54a350bc1772c","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-3.1.0.tgz","fileCount":6,"integrity":"sha512-PC26jiYLiSTuV2qJKB9k6LkFNv3cxMorWT9PdTtwmmJE+cyR8z8da/qTU5QG5DXf5jNMLR8CByt/p8dNkCD4Sg==","signatures":[{"sig":"MEUCIQDws900b6FO3YoalPKcxMz2fSHS7e01SsSFcxF4FJdAGAIgXvjZN/ZTojzZNrHDlKeuJOaaVXeoMAIHiLtOY7wZQqU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5502},"main":"index.js","engines":{"node":">=10.0.0"},"gitHead":"ed2a6344b5eb9d4118f7e8dd77f6f5e7baae66bf","scripts":{"lint":"eslint --ext '.js' test index.js","test":"npm run lint && nyc --reporter=text-summary --reporter=lcov mocha --exit 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"9.5.1","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"18.16.0","dependencies":{"lil-http-terminator":"^1.2.3"},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":2023}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","mocha":"^10.2.0","eslint":"^8.41.0","should":"^13.2.3","@hapi/hapi":"^21.3.2","release-it":"^15.10.3","@aptoma/eslint-config":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop_3.1.0_1691496683101_0.19742754073742708","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@aptoma/hapi-graceful-stop","version":"3.2.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@3.2.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"2ece8eee21dac68e9e421e8122fdbcda5ecd6075","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-3.2.0.tgz","fileCount":7,"integrity":"sha512-hqx0/2cKzuga5nuySPkOz6adBuUnPVaCK/A3dmBE9YQXQhrXhABvoDNlI8rBkKp5vEk7eyCcUzbC+L6RSNORuw==","signatures":[{"sig":"MEQCIEtGmgSMGW3svzkOQpLwjKeXAv3XvZP7JBMiXT/Tob9xAiA6t7oun9OapPmCgxjbwDk4CiDElfR/VWCvS98UMQl7ZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5894},"main":"index.js","engines":{"node":">=10.0.0"},"gitHead":"15edb68516cd872f4abe94bdf4520c709dfbb415","scripts":{"lint":"eslint --ext '.js' test index.js","test":"npm run lint && nyc --reporter=text-summary --reporter=lcov mocha --exit 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"9.5.1","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"18.16.0","dependencies":{"lil-http-terminator":"^1.2.3"},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":2023}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","mocha":"^10.2.0","eslint":"^8.41.0","should":"^13.2.3","@hapi/hapi":"^21.3.2","release-it":"^15.10.3","@aptoma/eslint-config":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop_3.2.0_1695049053685_0.19051054287708524","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"@aptoma/hapi-graceful-stop","version":"3.3.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@3.3.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"be60e162743fbef09103c4b07454175d177d8124","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-3.3.0.tgz","fileCount":7,"integrity":"sha512-Z8CYybq1KSFbUj1LRrewjgXs/xDHiwcyUfpBkf8UmwBKPAFOfc47WWpu+YeDrVVTcUdvJjBMVuD3AC7JCRIRRA==","signatures":[{"sig":"MEUCICzPkdy8t52v4joNMftj/kFkqY95NKinWi6xQuwcXU+MAiEAsetLVoPorN1fOIFCQ2WyAtL3lo5og0ONw7DvTXaMIwQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5898},"main":"index.js","engines":{"node":">=10.0.0"},"gitHead":"2d0fdc77c13fc4a9974692c9f2d3a22896452893","scripts":{"lint":"eslint --ext '.js' test index.js","test":"npm run lint && nyc --reporter=text-summary --reporter=lcov mocha --exit 'test/**/*.test.js'","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"10.7.0","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"20.14.0","dependencies":{"lil-http-terminator":"^1.2.3"},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":2023}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","mocha":"^10.2.0","eslint":"^8.41.0","should":"^13.2.3","@hapi/hapi":"^21.3.2","release-it":"^15.10.3","@aptoma/eslint-config":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop_3.3.0_1733322888992_0.24172910156683636","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"@aptoma/hapi-graceful-stop","version":"4.0.0","keywords":[],"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","_id":"@aptoma/hapi-graceful-stop@4.0.0","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"homepage":"https://github.com/aptoma/hapi-graceful-stop","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"3b726aef6878e07e104e1436a7138aa64f538413","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-4.0.0.tgz","fileCount":9,"integrity":"sha512-TDjUOkYN2M9nJtSdPubV4NqF5EW9RzhgSzTO+8tFX8pzIQN5tAfXb2klZG5vbXNCsxqlpXuACNUji+kq6U0LeA==","signatures":[{"sig":"MEYCIQD42DyLbUMAhxH46+95vENrgjuLAJlYO8xz1qjsrhpcIQIhAJwZLvupnEv2aXbl02ePh+FEVyrWwIsBxLtG4Z3acA7O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7217},"main":"index.js","types":"types.ts","engines":{"node":">=22.0.0"},"gitHead":"b753735a8617e7d7d0dbe2712e560760af3b6cec","scripts":{"lint":"biome check --write","test":"node --test && npm run lint","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"11.4.2","description":"Hapi plugin for graceful stop","directories":{},"_nodeVersion":"24.3.0","dependencies":{"lil-http-terminator":"^1.2.3"},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":2024}},"_hasShrinkwrap":false,"devDependencies":{"@hapi/hapi":"^21.3.2","release-it":"^15.10.3","@types/node":"^22.16.5","@biomejs/biome":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/hapi-graceful-stop_4.0.0_1756107533435_0.24297565292819878","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"_id":"@aptoma/hapi-graceful-stop@4.1.0","bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"dist":{"shasum":"138eabdd91b33a53eb261db814c79ad131ead232","tarball":"https://registry.npmjs.org/@aptoma/hapi-graceful-stop/-/hapi-graceful-stop-4.1.0.tgz","fileCount":9,"integrity":"sha512-Fz4BcZwByjeZ/pwFTe1lh9RpLZr6YVV73Tmdkw8WGVyzZHZsHmvzdLzzIr/gOVaAiE6te7HtwkviRp6B7UFNXA==","signatures":[{"sig":"MEUCIGnrB94qN/I4MXzaIa8s/kxZIp1V2si9C6W+Iat2s+gVAiEAisKnC89FBSYtXcJBbCzauIi22jdDiTGj+NtU6DWGqFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCyyoJL7yKkpIJcdUcP0zVFtUADgGp5G1ZXklKMPsxt8QIgPijP4xhckO4bNo69SeR7goUUfkRGUhqUGg0CmIr6rYE="}],"unpackedSize":12798},"main":"index.js","name":"@aptoma/hapi-graceful-stop","types":"types.ts","author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"engines":{"node":">=22.0.0"},"gitHead":"7ebb1ce5d527efaecf45962979ec8737528a4fa9","license":"MIT","scripts":{"lint":"biome check --write","test":"node --test && npm run lint","release":"npm test && release-it -n -i patch","release:major":"npm test && release-it -n -i major","release:minor":"npm test && release-it -n -i minor"},"version":"4.1.0","_npmUser":{"name":"aptoma","email":"npm@aptoma.com"},"homepage":"https://github.com/aptoma/hapi-graceful-stop","keywords":[],"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"_npmVersion":"11.12.1","description":"Hapi plugin for graceful stop","directories":{},"maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"_nodeVersion":"24.13.1","dependencies":{"lil-http-terminator":"^1.2.3"},"eslintConfig":{"env":{"es6":true,"node":true,"mocha":true},"extends":"@aptoma/eslint-config","parserOptions":{"ecmaVersion":2024}},"_hasShrinkwrap":false,"devDependencies":{"@hapi/hapi":"^21.3.2","release-it":"^15.10.3","@types/node":"^22.16.5","@biomejs/biome":"^2.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hapi-graceful-stop_4.1.0_1790593368070_0.29825644815791796"}}},"time":{"created":"2015-12-14T12:30:57.672Z","modified":"2026-09-28T11:02:48.919Z","1.0.0":"2015-12-14T12:30:57.672Z","1.1.0":"2016-05-24T10:02:57.521Z","2.0.0":"2017-12-06T13:59:32.413Z","3.0.0":"2019-07-02T09:56:26.446Z","3.1.0":"2023-08-08T12:11:23.319Z","3.2.0":"2023-09-18T14:57:33.925Z","3.3.0":"2024-12-04T14:34:49.131Z","3.3.1":"2025-01-22T12:13:04.566Z","4.0.0":"2025-08-25T07:38:53.610Z","4.1.0":"2026-09-28T11:02:48.157Z"},"bugs":{"url":"https://github.com/aptoma/hapi-graceful-stop/issues"},"author":{"name":"Martin Jonsson","email":"martin@aptoma.com"},"license":"MIT","homepage":"https://github.com/aptoma/hapi-graceful-stop","keywords":[],"repository":{"url":"git+https://github.com/aptoma/hapi-graceful-stop.git","type":"git"},"description":"Hapi plugin for graceful stop","maintainers":[{"name":"aptoma","email":"npm@aptoma.com"}],"readme":"# hapi-graceful-stop\n\nThis plugin listens for `SIGINT` and `SIGTERM`, gracefully terminates HTTP connections,\ncalls `server.stop()`, and exits the process when shutdown is complete.\n\n## Installation\n\nThis module is installed via npm:\n\n\t$ npm install @aptoma/hapi-graceful-stop\n\n## Example\n\n```javascript\n\nconst Hapi = require('@hapi/hapi');\n\nconst server = new Hapi.Server();\n\nawait server.register({plugin: require('@aptoma/hapi-graceful-stop'), options: {timeout: 2000}});\n\nawait server.start();\n\n```\n\n## Shutdown hooks\n\nUse `beforeStop` to close WebSockets or end long-running SSE responses before\n`lil-http-terminator` starts terminating HTTP connections. The hook can be synchronous\nor return a promise, which is awaited before HTTP termination starts.\n\nUse `afterStop` for cleanup after `server.stop()`, such as closing database connections.\n\n```javascript\n\nconst Hapi = require('@hapi/hapi');\n\nconst server = new Hapi.Server();\n\nconst opts = {\n\ttimeout: 2000, // optional, defaults to 5000 ms\n\tbeforeStopTimeout: 1000, // optional, defaults to 2000 ms\n\tafterStopTimeout: 1000, // optional, defaults to 2000 ms\n\tbeforeStop: async () => {\n\t\tawait closeWebSockets();\n\t\tawait endSseResponses();\n\t},\n\tafterStop: async () => {\n\t\tawait closeDatabaseConnections();\n\t}\n};\n\nawait server.register({plugin: require('@aptoma/hapi-graceful-stop'), options: opts});\n\nawait server.start();\n\n```\n\nThe cleanup functions above are application-provided functions.\n\nOn either signal, shutdown runs in this order:\n\n1. Run and await `beforeStop`, if provided.\n2. Terminate HTTP connections using `timeout`.\n3. Call `server.stop()`.\n4. Await `afterStop`, if provided, then exit.\n\n`beforeStopTimeout` is separate from the HTTP termination timeout. If `beforeStop`\nthrows, rejects, or exceeds its timeout, the plugin logs the failure and continues\nshutdown. A timed-out hook is not cancelled and may continue running.\n\nCalling `server.stop()` directly still runs `afterStop`, but does not run `beforeStop`\nor invoke HTTP termination.\n","readmeFilename":"README.md"}