{"_id":"@bernierllc/retry-policy","_rev":"13-7a103483f87b096fcab09bde34e51194","name":"@bernierllc/retry-policy","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.1":{"name":"@bernierllc/retry-policy","version":"0.1.1","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"ISC","_id":"@bernierllc/retry-policy@0.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"74d7c38837b35de48c67543dad42bad7e3d3beb4","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.1.1.tgz","fileCount":45,"integrity":"sha512-NRdIFxgWMh0xuLp1yxNUMnmSEwbeAKM96pii3KF8NLmYqpH9MWb5euCPRaBAv293jk3OG2or1Vsx4zYJfjwI8g==","signatures":[{"sig":"MEQCICxWnrC149EjIkINDLHK/1vz2TNosWLVbIjCU8Z3X4jqAiAu4XCeA6HEPrv1SvxmUIMRke3mQHkJ6iHnT1vgrPPXfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197022},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"dd631c7b0804e92717a1d558a657216fcdc87843","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.1.1_1753672556243_0.9092400411644828","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bernierllc/retry-policy","version":"0.1.3","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.1.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"2a8ac84e5d65194c83882ee1182d67bffb21bd99","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.1.3.tgz","fileCount":24,"integrity":"sha512-Yni2h9vRWV+dloBdQ30h97HDT7BSAN9b2ixGiV7tbJyvPP8uDSjQZruCsM9V7hrWjVUvwhVBYJSh8c9Trtg4Rw==","signatures":[{"sig":"MEUCIFdgIq2crjgpDCITnnAlkaJ9tF1iPEM9KUXBHx3eZ2PEAiEAje1Y8PPrpR+obaHep6Sh4RKOR86bjBDsQjeggxICYG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47572},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a662579811128439d0a22951b09858b1cd483662","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.1.3_1756845245980_0.5333435239579023","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bernierllc/retry-policy","version":"0.1.6","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.1.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"eccbd1ce5cdaeb935dc42a44b8846fb0260a9ff2","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.1.6.tgz","fileCount":68,"integrity":"sha512-qZBKfsiGqs30AbLw594IsXoniTcqrkUvHhMGS4NrPy9krIIEt2YG5H/xKHEctCBHth5FPLYcvbWtoVczE4rB5w==","signatures":[{"sig":"MEQCICM3kxpXZuJPymRyqhj/0ZK/+xO8u1sWNx5S7L6LP6ugAiBzOJ3EEXLaE1OTKo74EFn2juAKKhxUMq1RRobHDLZ40g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475547},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.1.6.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/9aa0361cc7104047498f3099ec0af952/bernierllc-retry-policy-0.1.6.tgz","_integrity":"sha512-qZBKfsiGqs30AbLw594IsXoniTcqrkUvHhMGS4NrPy9krIIEt2YG5H/xKHEctCBHth5FPLYcvbWtoVczE4rB5w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"25.2.0","dependencies":{"cosmiconfig":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.1.6_1763334699316_0.06421115695531276","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/retry-policy","version":"0.3.0","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"5f70ed0d03f064874f5c800c9f763050ebd7aa37","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.3.0.tgz","fileCount":36,"integrity":"sha512-rmdO6O2a7PBuZeMQ+bpIyMzG+99AzLZglb/POuN9Fz2VqohV9SpmFN22PPSQWpTbCZ31Cb5kwzNfrR43iEOwvQ==","signatures":[{"sig":"MEUCIQCCa+7FX6JTjAbjPWPmKvxn+fpZOmFrAISnsTQ9gDU9agIgWC2gs1yBR/NmH4eofJP+zVAJ9K4StrBnGLXF74VuKrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129227},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"20.19.6","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.3.0_1767642325297_0.677494320272426","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bernierllc/retry-policy","version":"0.3.1","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.3.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"f9316bc00656ae2dbabbb8d23444e2d22780447a","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.3.1.tgz","fileCount":71,"integrity":"sha512-aTHwDTiG5WszwBRP3KaE2of6E5bWrFoM59RFgENR1sfJ9HGaX4enOT3Z0HluzImxRRey5zDGSQEejMuh23L9KQ==","signatures":[{"sig":"MEUCIQCDIVZjHThF+nw1ZCoA7VJXf3EVJ6Fi7Y+PqGwIItKGJwIgKkbteOyF/6rVqGi84cAHU1kET52U5viRK0WxF8sUnag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544819},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.3.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/Users/mattbernier/projects/tools/packages/core/retry-policy/bernierllc-retry-policy-0.3.1.tgz","_integrity":"sha512-aTHwDTiG5WszwBRP3KaE2of6E5bWrFoM59RFgENR1sfJ9HGaX4enOT3Z0HluzImxRRey5zDGSQEejMuh23L9KQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"25.2.1","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.3.1_1772569583906_0.36832566997291893","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bernierllc/retry-policy","version":"0.3.2","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.3.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"079631c275cf59774b69bfe4174cef21c26827c2","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.3.2.tgz","fileCount":36,"integrity":"sha512-kJJsDqaiyixc+Ctz3PeldtQ/TakIs5SHO2D9vsiVw+qXysB07J7hmZHzNTp8OodC2imnEAUTimD0V7ta0TM6Vw==","signatures":[{"sig":"MEYCIQDMWNnKvKZxjtuBpT5ED8j9+Uw3rJq/yiaNvzQN7f1P4QIhAOYmuCnvZcD3wXopMVGs7Bv9Y0Kf5Md6YfK/I+6GSrKP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129579},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.3.2.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"_resolved":"/home/runner/work/tools/tools/packages/core/retry-policy/bernierllc-retry-policy-0.3.2.tgz","_integrity":"sha512-kJJsDqaiyixc+Ctz3PeldtQ/TakIs5SHO2D9vsiVw+qXysB07J7hmZHzNTp8OodC2imnEAUTimD0V7ta0TM6Vw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"20.20.0","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.3.2_1773160490680_0.6274073520199708","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/retry-policy","version":"0.4.0","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"f9ca085cf27276a5d56eb80aaf5bb6b8ec6404fa","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.4.0.tgz","fileCount":42,"integrity":"sha512-F8qnbMQRnXKWOVhu5ICVj7rFArMlRIUptun4McRySQdZCDs3KptRRoTVEXPnz9ROqhDEzZOelVqKvo4CZXqUHg==","signatures":[{"sig":"MEQCIFDXsuZ3K2utT1TAPLkTcyzHZKcnUDlVZ0ANBuz30cqOAiAaTjaqNAcCdSX+wXj+QZz+AwP4bBnp9Xiy+QBUGWpxeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168354},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.4.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"_resolved":"/home/runner/work/tools/tools/packages/core/retry-policy/bernierllc-retry-policy-0.4.0.tgz","_integrity":"sha512-F8qnbMQRnXKWOVhu5ICVj7rFArMlRIUptun4McRySQdZCDs3KptRRoTVEXPnz9ROqhDEzZOelVqKvo4CZXqUHg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.4.0_1779133596171_0.9681567950985324","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bernierllc/retry-policy","version":"0.5.1","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.5.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"15722a94f7dfbf91985d29a879d21dcec6dd1d25","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.5.1.tgz","fileCount":23,"integrity":"sha512-GJFtMMF8galvf0hWPfuGW6HIuRHXCtv7YbqeZ/RLqjG6I0OpMkVww1jvljE6B/I52bs87H1lyyAkXQOx37/y6w==","signatures":[{"sig":"MEYCIQDKxZ+eGwn0z7aZ/DuNQN/EJM5fgzprbFaOYE1iGgC6bwIhAKlk5vBFRLLtkfJYIw86keAu2IM1XpM/3gRNweWFshlI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71113},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.5.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"_resolved":"/home/runner/work/tools/tools/packages/core/retry-policy/bernierllc-retry-policy-0.5.1.tgz","_integrity":"sha512-GJFtMMF8galvf0hWPfuGW6HIuRHXCtv7YbqeZ/RLqjG6I0OpMkVww1jvljE6B/I52bs87H1lyyAkXQOx37/y6w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.5.1_1779157296201_0.7114131444659653","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bernierllc/retry-policy","version":"0.6.0","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/retry-policy@0.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"05f03981909ab00cf078b34e68636448e84937e9","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.6.0.tgz","fileCount":23,"integrity":"sha512-BIydEsaNYCFHPWz6XhHZYXgRv4YWHqXLCv3RwsFHPUE6zLquiJEtI+qZJ97CFhGM8cJvCO7o9PfV5BUeCOXO6A==","signatures":[{"sig":"MEUCIFwjOSIFxdzmr1scRXtQUwtVfG4Z27ZUUjSF3Id2UsuCAiEAgpiSPnq0qIBac7lRXTViA87YXnPMVzzLv2555KaA5Qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71113},"main":"dist/index.js","_from":"file:bernierllc-retry-policy-0.6.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest","test:watch":"jest --watch","config:init":"node scripts/config-init.js","config:print":"node scripts/config-print.js","test:coverage":"jest --coverage","config:validate":"node scripts/config-validate.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"_resolved":"/home/runner/work/tools/tools/packages/core/retry-policy/bernierllc-retry-policy-0.6.0.tgz","_integrity":"sha512-BIydEsaNYCFHPWz6XhHZYXgRv4YWHqXLCv3RwsFHPUE6zLquiJEtI+qZJ97CFhGM8cJvCO7o9PfV5BUeCOXO6A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Atomic retry policy utilities with exponential backoff and jitter","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cosmiconfig":"^9.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.0","jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"peerDependencies":{"p-retry":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/retry-policy_0.6.0_1779241376480_0.9854330336372452","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/retry-policy","version":"0.7.0","description":"Atomic retry policy utilities with exponential backoff and jitter","main":"dist/index.js","types":"dist/index.d.ts","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"dependencies":{"cosmiconfig":"^9.0.0"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.0.0","eslint":"^8.0.0","jest":"^29.5.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","zod":"^3.22.0"},"peerDependencies":{"p-retry":"^5.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","clean":"rimraf dist","config:init":"node scripts/config-init.js","config:validate":"node scripts/config-validate.js","config:print":"node scripts/config-print.js"},"_id":"@bernierllc/retry-policy@0.7.0","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"homepage":"https://github.com/bernier-llc/tools#readme","_integrity":"sha512-+GcW4OP3HWUUlz517Gz7gdx3M90oBewv08FENiuU8jjl9FPBpQ85zCUTWiYWWU+ubRIjdkDvZjxD+hbP0H9VEA==","_resolved":"/home/runner/work/tools/tools/packages/core/retry-policy/bernierllc-retry-policy-0.7.0.tgz","_from":"file:bernierllc-retry-policy-0.7.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-+GcW4OP3HWUUlz517Gz7gdx3M90oBewv08FENiuU8jjl9FPBpQ85zCUTWiYWWU+ubRIjdkDvZjxD+hbP0H9VEA==","shasum":"b2c4dfaa1daff88507598844c032cc2420ccfd85","tarball":"https://registry.npmjs.org/@bernierllc/retry-policy/-/retry-policy-0.7.0.tgz","fileCount":23,"unpackedSize":71113,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHNHA8FRV7GAUTluDrhSXPFnV2Z1AyKt0x7g7+iXbrmVAiEAo01/G3rogKkgIZyQglR1AKv2hsgHNIkLfuw6XqTdWvk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78f9a1c3-4d86-4c74-80f1-1917081f7fd6"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/retry-policy_0.7.0_1779250123548_0.29609259610233396"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-28T03:15:55.757Z","modified":"2026-05-20T04:08:43.905Z","0.1.1":"2025-07-28T03:15:56.432Z","0.1.3":"2025-09-02T20:34:06.158Z","0.1.6":"2025-11-16T23:11:39.572Z","0.3.0":"2026-01-05T19:45:25.494Z","0.3.1":"2026-03-03T20:26:24.065Z","0.3.2":"2026-03-10T16:34:50.842Z","0.4.0":"2026-05-18T19:46:36.326Z","0.5.1":"2026-05-19T02:21:36.340Z","0.6.0":"2026-05-20T01:42:56.638Z","0.7.0":"2026-05-20T04:08:43.734Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"MIT","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["retry","backoff","exponential","jitter","policy","bernierllc"],"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"description":"Atomic retry policy utilities with exponential backoff and jitter","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/retry-policy\n\nAtomic retry policy utilities with exponential backoff and jitter support.\n\n## Overview\n\n`@bernierllc/retry-policy` provides atomic utilities for implementing retry logic with configurable backoff strategies and jitter. This package is designed to be a core building block that can be used by higher-level retry managers and services.\n\n## Features\n\n- **Multiple backoff strategies**: Exponential, linear, and constant backoff\n- **Configurable jitter**: Full, equal, decorrelated, and no jitter options\n- **Custom retry conditions**: Flexible error evaluation logic\n- **Type-safe API**: Full TypeScript support with strict typing\n- **Zero dependencies**: Pure functions with no external dependencies\n- **Comprehensive testing**: 95%+ test coverage\n\n## Installation\n\n```bash\nnpm install @bernierllc/retry-policy\n```\n\n## Quick Start\n\n```typescript\nimport { RetryPolicy, createRetryPolicy } from '@bernierllc/retry-policy';\n\n// Create a retry policy with default settings\nconst policy = new RetryPolicy();\n\n// Evaluate if an operation should be retried\nconst result = policy.evaluateRetry(1, new Error('Network error'));\nconsole.log(result);\n// {\n//   shouldRetry: true,\n//   delay: 2000,\n//   attempt: 1,\n//   isFinalAttempt: false\n// }\n```\n\n## API Reference\n\n### RetryPolicy Class\n\nThe main class for managing retry policies.\n\n#### Constructor\n\n```typescript\nnew RetryPolicy(options?: Partial<RetryPolicyOptions>, backoffConfig?: Partial<BackoffConfig>)\n```\n\n#### Methods\n\n- `evaluateRetry(attempt: number, error: any): RetryPolicyResult`\n- `calculateDelay(attempt: number): number`\n- `getOptions(): Required<RetryPolicyOptions>`\n- `getBackoffConfig(): BackoffConfig`\n- `updateOptions(options: Partial<RetryPolicyOptions>): void`\n- `updateBackoffConfig(config: Partial<BackoffConfig>): void`\n\n### Utility Functions\n\n- `createRetryPolicy(options?, backoffConfig?): RetryPolicy`\n- `calculateRetryDelay(attempt, options?, backoffConfig?): number`\n- `shouldRetry(attempt, error, options?): boolean`\n\n## Usage Examples\n\n### Basic Usage\n\n```typescript\nimport { RetryPolicy } from '@bernierllc/retry-policy';\n\nconst policy = new RetryPolicy({\n  maxRetries: 3,\n  initialDelayMs: 1000,\n  shouldRetry: (error) => error.code === 'NETWORK_ERROR'\n});\n\n// In your retry loop\nfor (let attempt = 0; attempt <= 3; attempt++) {\n  try {\n    const result = await someOperation();\n    break; // Success, exit retry loop\n  } catch (error) {\n    const retryResult = policy.evaluateRetry(attempt, error);\n    \n    if (!retryResult.shouldRetry) {\n      throw error; // Don't retry, re-throw error\n    }\n    \n    // Wait before next attempt\n    await new Promise(resolve => setTimeout(resolve, retryResult.delay));\n  }\n}\n```\n\n### Custom Backoff Strategy\n\n```typescript\nimport { RetryPolicy } from '@bernierllc/retry-policy';\n\nconst policy = new RetryPolicy(\n  { maxRetries: 5 },\n  {\n    type: 'exponential',\n    baseDelay: 500,\n    factor: 3,\n    maxDelay: 10000,\n    jitter: {\n      type: 'full',\n      factor: 0.1\n    }\n  }\n);\n\n// This will use exponential backoff with full jitter\nconst delay = policy.calculateDelay(2); // ~4500ms with jitter\n```\n\n### Different Backoff Types\n\n```typescript\nimport { RetryPolicy } from '@bernierllc/retry-policy';\n\n// Exponential backoff (default)\nconst exponential = new RetryPolicy(undefined, {\n  type: 'exponential',\n  baseDelay: 1000,\n  factor: 2\n});\n// Delays: 1000ms, 2000ms, 4000ms, 8000ms...\n\n// Linear backoff\nconst linear = new RetryPolicy(undefined, {\n  type: 'linear',\n  baseDelay: 1000\n});\n// Delays: 1000ms, 2000ms, 3000ms, 4000ms...\n\n// Constant backoff\nconst constant = new RetryPolicy(undefined, {\n  type: 'constant',\n  baseDelay: 1000\n});\n// Delays: 1000ms, 1000ms, 1000ms, 1000ms...\n```\n\n### Jitter Types\n\n```typescript\nimport { RetryPolicy } from '@bernierllc/retry-policy';\n\n// Full jitter: random value between 0 and delay\nconst fullJitter = new RetryPolicy(undefined, {\n  jitter: { type: 'full', factor: 0.1 }\n});\n\n// Equal jitter: random value between delay/2 and delay\nconst equalJitter = new RetryPolicy(undefined, {\n  jitter: { type: 'equal', factor: 0.1 }\n});\n\n// Decorrelated jitter: random value between delay and delay * 3\nconst decorrelatedJitter = new RetryPolicy(undefined, {\n  jitter: { type: 'decorrelated', factor: 0.1 }\n});\n\n// No jitter: exact delay values\nconst noJitter = new RetryPolicy(undefined, {\n  jitter: { type: 'none' }\n});\n```\n\n### Custom Retry Conditions\n\n```typescript\nimport { RetryPolicy } from '@bernierllc/retry-policy';\n\nconst policy = new RetryPolicy({\n  maxRetries: 5,\n  shouldRetry: (error) => {\n    // Only retry on network errors or 5xx server errors\n    if (error.code === 'NETWORK_ERROR') return true;\n    if (error.status >= 500 && error.status < 600) return true;\n    return false;\n  },\n  onRetry: (attempt, delay, error) => {\n    console.log(`Retry attempt ${attempt} after ${delay}ms due to:`, error.message);\n  },\n  onFailure: (error) => {\n    console.log('All retry attempts exhausted:', error.message);\n  }\n});\n```\n\n## Configuration\n\n### RetryPolicyOptions\n\n```typescript\ninterface RetryPolicyOptions {\n  maxRetries: number;           // Maximum number of retry attempts\n  initialDelayMs: number;       // Initial delay in milliseconds\n  maxDelayMs?: number;          // Maximum delay in milliseconds\n  backoffFactor?: number;       // Exponential backoff factor\n  jitter?: boolean;             // Whether to apply jitter\n  shouldRetry?: (error: any) => boolean;  // Custom retry condition\n  onRetry?: (attempt: number, delay: number, error: any) => void;  // Retry callback\n  onFailure?: (error: any) => void;  // Failure callback\n}\n```\n\n### BackoffConfig\n\n```typescript\ninterface BackoffConfig {\n  type: 'exponential' | 'linear' | 'constant';  // Backoff strategy\n  baseDelay: number;           // Base delay in milliseconds\n  maxDelay: number;            // Maximum delay in milliseconds\n  factor?: number;             // Backoff factor for exponential\n  jitter?: JitterConfig;       // Jitter configuration\n}\n```\n\n### JitterConfig\n\n```typescript\ninterface JitterConfig {\n  type: 'none' | 'full' | 'equal' | 'decorrelated';  // Jitter type\n  factor?: number;             // Jitter factor (0-1)\n}\n```\n\n## Default Values\n\n```typescript\nconst DEFAULT_RETRY_OPTIONS = {\n  maxRetries: 5,\n  initialDelayMs: 1000,\n  maxDelayMs: 30000,\n  backoffFactor: 2,\n  jitter: true,\n  shouldRetry: () => true,\n  onRetry: () => {},\n  onFailure: () => {}\n};\n\nconst DEFAULT_BACKOFF_CONFIG = {\n  type: 'exponential',\n  baseDelay: 1000,\n  maxDelay: 30000,\n  factor: 2,\n  jitter: { type: 'full', factor: 0.1 }\n};\n```\n\n## Integration Status\n\n### Logger Integration\n**Status**: Not applicable\n\n**Justification**: This is a pure utility package with no runtime state, side effects, or error conditions that require logging. The RetryPolicy class is stateless and deterministic - it simply calculates retry delays and backoff strategies based on attempt numbers and error types. All errors are returned as structured results that calling code can handle, and there are no background operations, network calls, or state changes that would benefit from structured logging.\n\n**Pattern**: Pure functional utility - no logger integration needed. Logging is handled by consuming packages that use this retry policy.\n\n### NeverHub Integration\n**Status**: Not applicable\n\n**Justification**: This is a core utility package that provides retry policy calculations. It does not participate in service discovery, event publishing, or service mesh operations. Retry policy calculations are stateless utility operations that don't require service registration or discovery. Service-level packages that use this utility can integrate with NeverHub if needed.\n\n**Pattern**: Core utility - no service mesh integration needed. Service-level packages that use this retry policy can integrate with NeverHub if needed.\n\n### Docs-Suite Integration\n**Status**: Ready\n\n**Format**: TypeDoc-compatible JSDoc comments are included throughout the source code. All public APIs are documented with examples and type information.\n\n## Security\n\nThis package has zero runtime dependencies and uses only pure TypeScript functions. Security considerations:\n\n- **No External Dependencies**: All retry logic is implemented internally with no external packages at runtime\n- **Type Safety**: Strict TypeScript typing prevents common runtime errors\n- **No Network Calls**: Pure computational functions with no I/O operations\n- **No Secret Storage**: Does not handle or store any sensitive data\n- **Audit Clean**: `npm audit` shows no vulnerabilities (zero dependencies)\n\nFor security concerns, please open an issue in the repository.\n\n## Testing\n\n```bash\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests in watch mode\nnpm run test:watch\n```\n\n## Contributing\n\nThis package follows the Bernier LLC development standards:\n\n- **TypeScript strict mode** - All code must pass strict type checking\n- **Comprehensive testing** - 95%+ test coverage required\n- **Documentation** - All public APIs must be documented\n- **Code style** - Follow project ESLint configuration\n\n## License\n\nISC License - see LICENSE file for details.\n\n## Related Packages\n\n- `@bernierllc/retry-state` - Retry state management and persistence\n- `@bernierllc/retry-metrics` - Retry performance metrics collection\n- `@bernierllc/retry-manager` - High-level retry orchestration service ","readmeFilename":"README.md"}