{"_id":"breakwater","_rev":"18-46da22bf1568502abe479bde4106eadd","name":"breakwater","dist-tags":{"latest":"1.1.2"},"versions":{"0.1.0":{"name":"breakwater","version":"0.1.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.1.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"d6b99646c447938f3aeb4d1d9d5b9355334b17a1","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.1.0.tgz","fileCount":7,"integrity":"sha512-Z/6QcWKkYCoLnsq1xv32FdSPj6QPaBtcecgJaYTBwuVF4346Cx0GDS0ns7nINC+Zcon3Xl9dnIvdSobIdV/Vxw==","signatures":[{"sig":"MEQCIFnvtfkyEOpnZmhs70l6G/PumO4GCHi/EkKaAB1+1XsfAiAdYXcaJdxD7q9MRBiDjaqB1fzYqQpEZNZkbvM1zKcd7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120188},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"49e192f09a682a76eb0fa61e6ad31b85978cf381","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"11.17.0","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"_nodeVersion":"26.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.1.0_1784923338024_0.6353523682810613","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"breakwater","version":"0.2.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.2.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"768641d12130e53c3bb22347d9eb01bd8df4ac4a","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.2.0.tgz","fileCount":8,"integrity":"sha512-PEWjN4g0EW/fKg6NB/aufxoU/CjSeacmpvSkEF+XAKljX7eQvuQ28CNFa3eG8SMDKmX3ImSfQlNFrZdnxv3oBA==","signatures":[{"sig":"MEYCIQDWV4a+h4OPH3/6OqqQBJqPX9QkifTa+VqfGK1inWYnKAIhALW2M7LLdr796GAjEnZgbfV3Xf3493/xfHYN+2hkZBdF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132375},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"fa854d6dc103b3e360a58cb66a1cc26e1332fbca","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.2.0_1785077794594_0.11233302008605772","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"breakwater","version":"0.3.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.3.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"00763f273ad96e1e856fb4a72b833406e716ef99","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.3.0.tgz","fileCount":8,"integrity":"sha512-lhq7luQMIEfO1LKqumZ8bkuuRhBdLmZX+aZCZGYZX90ZR+H42T++LPCa2cflZwAQpZVXX8uFGIIKa5pk53N0oA==","signatures":[{"sig":"MEQCICD7NTpLGPDZiiWzSKrf8+mgDMs9P3KxsPFjySCl7hBKAiB5K4FBv85pubVXo0Srk5af1x0GnVl8O/EmQkg5yYLN7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148993},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"61c25cd26d2151975d52569d860d6de390681d84","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.3.0_1785087618190_0.011908676659312833","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"breakwater","version":"0.4.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.4.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"ab541a3f8e6bd0abe3f6add15687d6dcfd0c7657","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.4.0.tgz","fileCount":8,"integrity":"sha512-0yVDQldN9PgIdY3hux+1RkdpMu7lHlnhJIUZR7ZwymB0gGun4nOhPrVja0zLOB/wGzIwqUCyCdaP0WrAidEclQ==","signatures":[{"sig":"MEYCIQCidYkVNiEUJNWzm9LRjURgZmIZIPnf3hNongDg0k8EagIhAPtHgMkBu4I8wF3t6RJy/9oD6e4m4XogJhOoZn7EDYLZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159697},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a7ebfb24b092d9eb269468cbd6f580388ae6a083","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.4.0_1785089597050_0.18515748972720458","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"breakwater","version":"0.5.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.5.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"18d79c59727ab068bae15820e5f561d8fc78fb08","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.5.0.tgz","fileCount":8,"integrity":"sha512-6PA65d81ZRKvHfzRe7g7o+Ml0LgG5V+/Vu1UTIXRE0CP0wACncLzMMtaMU68wcWWql77R2kKCV4vgPHb1Zcu9Q==","signatures":[{"sig":"MEYCIQDyUnxiLMoBt1pU7ulJVpt+mdxfYZZUWjFdPCVCSDlcogIhAPT30J5meIRJ7Em10i+dLazedowu03HOJ7ULDj5+m3EJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176097},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"46c0707acb7e51eaff90e78f5609fc3f04f128e7","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.5.0_1785091012438_0.3765038724118186","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"breakwater","version":"0.5.1","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.5.1","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"872ba3b3e07858c6ae3e5458d3d52d047d43e89a","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.5.1.tgz","fileCount":8,"integrity":"sha512-skv0k51bP1bSL8HewFKU0nEQwBGEnAbXiBH0Wtk1nZif1JKBxE37kL2wMGzMm5dOeBPyGD635xjjQ3Y6z0e5xA==","signatures":[{"sig":"MEYCIQDeTkqrMfIs746axP5O6s60NA+iBvOYbyG0y8XvdA2/kQIhAMFBt6Gh6A+qYhNVdTvgYMsIo3JdUDXPCUawO9movwGL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"06b6c71e4e7b2d1b226d25209fce6a99ddc3e642","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.5.1_1785091511974_0.6720666077660744","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"breakwater","version":"0.5.2","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.5.2","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"f7b610946646cf5f63180f592c0d8ba1bf1321d9","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.5.2.tgz","fileCount":8,"integrity":"sha512-9hvGc5J5LO+1wYHJwZ5LcHk1j2+gfU8XoePBhInl6NNqEP5c9oD/ZuT6Mp5qJ1opddMH+x3UGvMIH9nL+1FZSg==","signatures":[{"sig":"MEQCIHHeGR5zHzpe3sV5eDo7DVF6vPhHR64EtFGR+EjVE/wwAiB0sYUDh46TZUXJhyWvsJmRXi2WbQIoBM7H4MTWmuhNzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177082},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"42e87bf9f83fcd1e096251924b2032df74e640a1","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.5.2_1785265842849_0.9420526326894327","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"breakwater","version":"0.5.3","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.5.3","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"ef0ee4c86286a371c7543af738071d2fd5716a64","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.5.3.tgz","fileCount":8,"integrity":"sha512-Vtrr0JWl5AgajMVolJfYyfCpWhGJ40fqtbo+HpDm1ayXopqq1cx2aKa5gXdjRm//DztjfbDa3RevEYbK5DxZpg==","signatures":[{"sig":"MEUCIAGn6HNpTK+X5zesNmueKuryCqOLVLKBV/2PboMi0EAFAiEA9olBM+2S7osOGjs/zf+Ls1vX8QkvID3IFw6DUWYos40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177413},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"ddbd3279dc001045f21d1d324a4aa20092dd0a67","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.1","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.5.3_1785289199494_0.8847688848412534","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"breakwater","version":"0.5.4","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.5.4","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"7be047e2add3e0c7ef58228533f5e96797747be3","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.5.4.tgz","fileCount":8,"integrity":"sha512-2Ev1640XIXgOP+r2W6n1rQO8JDMd9xF9kgqxCv/V9KZJO+Hug2REX67jZvYFnSeK7qu20aQ3XcgC3nWRjhSbqQ==","signatures":[{"sig":"MEUCIFZnq3Ag0MdhmrGjNE/qCD4Ll5dY97UgtNGCrrL8zaAIAiEA2MbY26p4tQgVW1ntQrjwd5h5PcKhBZGtItuu42h4ybc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177611},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a700652bc8a3dabf1c1fa4bf0c17ef6e1a362eaf","scripts":{"lint":"eslint .","test":"node --import tsx --test 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test 'tests/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@rollup/plugin-typescript":"^12.3.0","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.5.4_1785359340276_0.31484265378491827","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"breakwater","version":"0.6.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.6.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"6b2af5c6cfe45d03021a0472bef78d44ebbd455b","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.6.0.tgz","fileCount":8,"integrity":"sha512-6oWIzYGamPzWVJG1oXomXNJSYnYhUnakEorWKbrvRV/YmTiiKBLUFWfHbZkaIO12XmmVzagv/xv1vr3n20GnhA==","signatures":[{"sig":"MEQCIEapo8pCq3/uX9O7PMQotTJ/ObtPL7C4eVRTM2sAIrYDAiAA9kovN54Hyl++0Cy7ugz87dwDjY99A4igu96RnsEQZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178796},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"d27e5e62521233605563cb8c473af95d613c3fc5","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs && cp dist/index.d.ts dist/index.d.cts","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"~5.9.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@stryker-mutator/tap-runner":"^9.6.1","@commitlint/config-conventional":"^21.2.0"},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.6.0_1785623496262_0.47471113047007263","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"breakwater","version":"0.7.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","metrics"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.7.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"0a2e280508fe7f3e382c50855b6c2e5454e59dea","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.7.0.tgz","fileCount":12,"integrity":"sha512-KX9uTZtAJCYtGfn/1qq21JiBvGvWKbAMqz/uWeL40lx8NuQ9+ItHD0WNiR+bf/X2SC5EP7mMt7z13WG/BQsWRg==","signatures":[{"sig":"MEQCIApkYBrqXaI4t5t2HUnSZ0kGQSA9dAQffY0B9gk9arQgAiA2JpUDTnPFdgSRf3sJdECUD4mgkqI5rEg4hcyDIlQKJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204678},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"07832f1b507926a0571a9e9ed4a36202c27135e9","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@stryker-mutator/tap-runner":"^9.6.1","@commitlint/config-conventional":"^21.2.0"},"peerDependencies":{"prom-client":"^15.0.0"},"peerDependenciesMeta":{"prom-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.7.0_1785678188180_0.5963678486973933","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"breakwater","version":"0.8.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","metrics"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.8.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"2dddc7237d26dee5b2a804b9577a386ec9ccfb72","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.8.0.tgz","fileCount":12,"integrity":"sha512-5qEDAhHGWiLEtHg6gB0BACIvkG3bx7WEwXxWHWK56ScVhZFtXeFZtxLjpSa2qsMAjbbmgC9GER6MQoIRtV+M5w==","signatures":[{"sig":"MEUCIQDEfKCZOPJb2zfMmsXkqeq6NrVCGlqQfeDxqDEJabRyqwIgNMCbqiSyWi5RTatkT9VP1yNgS/RTdRZj1Hpq2gcx3mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223518},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"0046e090ed64bb7346455514bd52aea0ea44d9e2","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@stryker-mutator/tap-runner":"^9.6.1","@commitlint/config-conventional":"^21.2.0"},"peerDependencies":{"prom-client":"^15.0.0"},"peerDependenciesMeta":{"prom-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.8.0_1786280535925_0.02072157364939109","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"breakwater","version":"0.9.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.9.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"d7b61eaecd7044637f6b32094b8328d09e78b348","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.9.0.tgz","fileCount":16,"integrity":"sha512-qXZ5RpoHatAKBg3Lv+xrtnw0PmU5eawjNYOBNa2GcfiVDH4VavCPLZGTNUxMdCnRKmWvzolPUiS319BAKzfFZg==","signatures":[{"sig":"MEYCIQCVqdx9ZlOZ6UfW9TgWpJHWZCk40uZATtVKwci43jWH4QIhAJBFkyBIrDRDLilKQytBrQUViRPFNbfYyhvfiYxPRSYE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258770},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"043e54a4f3a5664cc288558a8157f21c21d49d45","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"otel":["dist/otel.d.ts"],"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@opentelemetry/api":"^1.9.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@opentelemetry/sdk-metrics":"^2.10.0","@stryker-mutator/tap-runner":"^9.6.1","@opentelemetry/sdk-trace-base":"^2.10.0","@commitlint/config-conventional":"^21.2.0","@opentelemetry/context-async-hooks":"^2.10.0"},"peerDependencies":{"prom-client":"^15.0.0","@opentelemetry/api":"^1.9.0"},"peerDependenciesMeta":{"prom-client":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.9.0_1786302412491_0.06521786516881689","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"breakwater","version":"0.10.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@0.10.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"ffe48a70ba26f2d3ad1ebd79b2cc6d46d161a037","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-0.10.0.tgz","fileCount":16,"integrity":"sha512-L7y+q35KZNHnj10+BSANjJtHc937xPPQjp3CkBqstXAFVDgP3jcbqKpSGj0Sjl2ILN/EDe236WrSQCGY/YyUeQ==","signatures":[{"sig":"MEUCIQDFIU/BfBwx8TUK0/40UO87bJEzGxo4+NEvu/3N3oKr2wIgQWaPOQp/JGm71FnD1dOGUeDCwE9u3qHG3J1OKS25mrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286664},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"9518f23c66e595fe8e3288b97a091f247aa50929","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"otel":["dist/otel.d.ts"],"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@opentelemetry/api":"^1.9.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@opentelemetry/sdk-metrics":"^2.10.0","@stryker-mutator/tap-runner":"^9.6.1","@opentelemetry/sdk-trace-base":"^2.10.0","@commitlint/config-conventional":"^21.2.0","@opentelemetry/context-async-hooks":"^2.10.0"},"peerDependencies":{"prom-client":"^15.0.0","@opentelemetry/api":"^1.9.0"},"peerDependenciesMeta":{"prom-client":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_0.10.0_1786641260104_0.6622458291010203","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"breakwater","version":"1.0.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics","redis","distributed"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@1.0.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"7bfe1e49326a3271b5dc8b3514dc78536cccf698","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-1.0.0.tgz","fileCount":20,"integrity":"sha512-QQz2iL9PcScZtanZ1L4kbv7T/W/4rSob3vJcJsuntvKXx6aQAymQdkeV5rUiqMmU2yT+giBBRCxk1MQk7Z8RlA==","signatures":[{"sig":"MEUCIQDPfK/QKY+OWGIy9wWkTMKV579rx5vgoe0/PghJeSRYZwIgXIZts6ZK8+O1VQdLrpHGUT8uEMA4BzO2i1TWlQUbGPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374640},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./redis":{"import":{"types":"./dist/redis.d.ts","default":"./dist/redis.mjs"},"require":{"types":"./dist/redis.d.cts","default":"./dist/redis.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"928943966b51751bc6eb2b0635ee027e9a112440","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"otel":["dist/otel.d.ts"],"redis":["dist/redis.d.ts"],"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","ioredis":"^6.0.0","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@opentelemetry/api":"^1.9.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@opentelemetry/sdk-metrics":"^2.10.0","@stryker-mutator/tap-runner":"^9.6.1","@opentelemetry/sdk-trace-base":"^2.10.0","@commitlint/config-conventional":"^21.2.0","@opentelemetry/context-async-hooks":"^2.10.0"},"peerDependencies":{"prom-client":"^15.0.0","@opentelemetry/api":"^1.9.0"},"peerDependenciesMeta":{"prom-client":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_1.0.0_1786810249344_0.12479021512263566","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"breakwater","version":"1.1.0","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics","redis","distributed"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@1.1.0","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"33fe38b9d61816d15676e9f44900ac81ee838623","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-1.1.0.tgz","fileCount":20,"integrity":"sha512-S/i9HLa7fNqTZ3DS9P9MLP7ZKmn8lhbAmAtw4xyudJcPuVHETg7wKZCh64FWN6bvN/db1ip+1ela/MZPbtgZWA==","signatures":[{"sig":"MEUCIApcMxv5G6bT/oqE9ZbEad/E0Br0Z5LvlZsRD7+MU6CKAiEAg0oRJNJmB8LZAWyr8CmpgkhNRjwT/L+gt1jIlEgmuk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":431729},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./redis":{"import":{"types":"./dist/redis.d.ts","default":"./dist/redis.mjs"},"require":{"types":"./dist/redis.d.cts","default":"./dist/redis.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"d937d1b69c3e1998f246b6a6774b1cbb55d3f706","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"otel":["dist/otel.d.ts"],"redis":["dist/redis.d.ts"],"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","ioredis":"^6.0.0","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@opentelemetry/api":"^1.9.1","@stryker-mutator/core":"^9.6.1","@rollup/plugin-typescript":"^12.3.0","@opentelemetry/sdk-metrics":"^2.10.0","@stryker-mutator/tap-runner":"^9.6.1","@opentelemetry/sdk-trace-base":"^2.10.0","@commitlint/config-conventional":"^21.2.0","@opentelemetry/context-async-hooks":"^2.10.0"},"peerDependencies":{"prom-client":"^15.0.0","@opentelemetry/api":"^1.9.0"},"peerDependenciesMeta":{"prom-client":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_1.1.0_1786820219836_0.542578122596675","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"breakwater","version":"1.1.1","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics","redis","distributed"],"author":{"name":"Pedro Rogério"},"license":"MIT","_id":"breakwater@1.1.1","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"dist":{"shasum":"c3830e7327f6136fd67e656434cf5f1e1f99448d","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-1.1.1.tgz","fileCount":20,"integrity":"sha512-Ic/gzGQtqmXx7/vCEEfJRTfyGHL6a1S8NgOGoZ9FuRMJ06WD1MgPtHov/yjQYBPEpFBWG3Z6IP8qsa6rR4gu8A==","signatures":[{"sig":"MEQCIDvH/1D7vNm6uc22WpGcASQoEFzviRp0MY7lk7PPDg5xAiBTVGnMyxiw0s1ecw0s/oCMx9anKotQe2JWgQinYvb/NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":444167},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./redis":{"import":{"types":"./dist/redis.d.ts","default":"./dist/redis.mjs"},"require":{"types":"./dist/redis.d.cts","default":"./dist/redis.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}}},"gitHead":"15535bc845b67384c6733b996c4e687758fb4886","scripts":{"lint":"eslint .","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","prepack":"npm run build","lint:fix":"eslint . --fix","check:types":"tsc --noEmit","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"overrides":{"qs":"^6.15.3"},"repository":{"url":"git+https://github.com/pinceladasdaweb/breakwater.git","type":"git"},"_npmVersion":"12.0.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","directories":{},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"otel":["dist/otel.d.ts"],"redis":["dist/redis.d.ts"],"prometheus":["dist/prometheus.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.62.2","ioredis":"^6.0.0","typescript":"^6.0.3","@types/node":"^26.1.1","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","typescript7":"npm:typescript@^7.0.2","@commitlint/cli":"^21.2.1","rollup-plugin-dts":"^6.4.1","@opentelemetry/api":"^1.9.1","@stryker-mutator/core":"^10.0.0","@rollup/plugin-typescript":"^12.3.0","@opentelemetry/sdk-metrics":"^2.10.0","@stryker-mutator/tap-runner":"^10.0.0","@opentelemetry/sdk-trace-base":"^2.10.0","@commitlint/config-conventional":"^21.2.0","@opentelemetry/context-async-hooks":"^2.10.0"},"peerDependencies":{"prom-client":"^15.0.0","@opentelemetry/api":"^1.9.0"},"peerDependenciesMeta":{"prom-client":{"optional":true},"@opentelemetry/api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/breakwater_1.1.1_1787321044885_0.0512304000481596","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"breakwater","version":"1.1.2","description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./prometheus":{"import":{"types":"./dist/prometheus.d.ts","default":"./dist/prometheus.mjs"},"require":{"types":"./dist/prometheus.d.cts","default":"./dist/prometheus.cjs"}},"./otel":{"import":{"types":"./dist/otel.d.ts","default":"./dist/otel.mjs"},"require":{"types":"./dist/otel.d.cts","default":"./dist/otel.cjs"}},"./redis":{"import":{"types":"./dist/redis.d.ts","default":"./dist/redis.mjs"},"require":{"types":"./dist/redis.d.cts","default":"./dist/redis.cjs"}}},"typesVersions":{"*":{"prometheus":["dist/prometheus.d.ts"],"otel":["dist/otel.d.ts"],"redis":["dist/redis.d.ts"]}},"scripts":{"build":"rollup -c rollup.config.mjs","hooks":"git config core.hooksPath .hooks","lint":"eslint .","lint:fix":"eslint . --fix","prepack":"npm run build","test":"node --import tsx --test --test-timeout=10000 'tests/**/*.test.ts'","test:coverage":"node --import tsx --experimental-test-coverage --test --test-timeout=10000 'tests/**/*.test.ts'","test:mutation":"stryker run","check:types":"tsc --noEmit","check:types:next":"node node_modules/typescript7/bin/tsc --noEmit"},"keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics","redis","distributed"],"author":{"name":"Pedro Rogério"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pinceladasdaweb/breakwater.git"},"bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"homepage":"https://github.com/pinceladasdaweb/breakwater#readme","engines":{"node":">=22"},"publishConfig":{"access":"public"},"overrides":{"qs":"^6.15.3"},"devDependencies":{"@commitlint/cli":"^21.2.1","@commitlint/config-conventional":"^21.2.0","@opentelemetry/api":"^1.9.1","@opentelemetry/context-async-hooks":"^2.10.0","@opentelemetry/sdk-metrics":"^2.10.0","@opentelemetry/sdk-trace-base":"^2.10.0","@rollup/plugin-typescript":"^12.3.0","@stryker-mutator/core":"^10.0.0","@stryker-mutator/tap-runner":"^10.0.0","@types/node":"^26.1.1","eslint":"^9.39.5","ioredis":"^6.0.0","lint-staged":"^17.2.0","neostandard":"^0.13.0","prom-client":"^15.1.3","rollup":"^4.62.2","rollup-plugin-dts":"^6.4.1","tslib":"^2.8.1","tsx":"^4.23.1","typescript":"^6.0.3","typescript7":"npm:typescript@^7.0.2"},"lint-staged":{"src/**/*.ts":"eslint","tests/**/*.ts":"eslint"},"sideEffects":false,"peerDependencies":{"@opentelemetry/api":"^1.9.0","prom-client":"^15.0.0"},"peerDependenciesMeta":{"@opentelemetry/api":{"optional":true},"prom-client":{"optional":true}},"gitHead":"3924972a01964df06c0096136ff54a02cba2f949","_id":"breakwater@1.1.2","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-HOinbE3cB7TWtstAH2YmzH9XFGObK2nJtqjfYm9VrfT20UhslZgOpVbmMeMzjpzc2B7YNDik6Iz53XHDQgGjag==","shasum":"41fbedadb58d340933939fd28213607397a3a5b4","tarball":"https://registry.npmjs.org/breakwater/-/breakwater-1.1.2.tgz","fileCount":20,"unpackedSize":451802,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/breakwater@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDykkMpivFMUI0pHEn6C6D7eEeRLiEQ25GIq911t0ThKQIgQ05BgPoZh4aBlW6+r9hvywofK37mqnjmwCC6dpUq6Ss="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:097f6ad0-75a0-402a-a7cf-915b78ba027f"}},"directories":{},"maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/breakwater_1.1.2_1787520032089_0.8835802312568322"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T20:02:17.849Z","modified":"2026-08-23T21:20:32.550Z","0.1.0":"2026-07-24T20:02:18.214Z","0.2.0":"2026-07-26T14:56:34.722Z","0.3.0":"2026-07-26T17:40:18.351Z","0.4.0":"2026-07-26T18:13:17.179Z","0.5.0":"2026-07-26T18:36:52.597Z","0.5.1":"2026-07-26T18:45:12.122Z","0.5.2":"2026-07-28T19:10:43.020Z","0.5.3":"2026-07-29T01:39:59.644Z","0.5.4":"2026-07-29T21:09:00.443Z","0.6.0":"2026-08-01T22:31:36.405Z","0.7.0":"2026-08-02T13:43:08.352Z","0.8.0":"2026-08-09T13:02:16.098Z","0.9.0":"2026-08-09T19:06:52.642Z","0.10.0":"2026-08-13T17:14:20.296Z","1.0.0":"2026-08-15T16:10:49.485Z","1.1.0":"2026-08-15T18:56:59.995Z","1.1.1":"2026-08-21T14:04:05.050Z","1.1.2":"2026-08-23T21:20:32.246Z"},"bugs":{"url":"https://github.com/pinceladasdaweb/breakwater/issues"},"author":{"name":"Pedro Rogério"},"license":"MIT","homepage":"https://github.com/pinceladasdaweb/breakwater#readme","keywords":["resilience","circuit-breaker","retry","timeout","fallback","backoff","policy","fault-tolerance","resilience4j","observability","prometheus","opentelemetry","otel","tracing","metrics","redis","distributed"],"repository":{"type":"git","url":"git+https://github.com/pinceladasdaweb/breakwater.git"},"description":"Resilience toolkit for Node.js — retry, circuit breaker, timeout, and policy composition with first-class observability.","maintainers":[{"name":"pinceladasdaweb","email":"pinceladasdaweb@hotmail.com"}],"readme":"# breakwater\n\n> **Resilience toolkit for Node.js** — retry, circuit breaker, timeout, fallback, and policy composition with first-class observability.\n\n[![CI](https://github.com/pinceladasdaweb/breakwater/actions/workflows/ci.yml/badge.svg)](https://github.com/pinceladasdaweb/breakwater/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/breakwater.svg)](https://www.npmjs.com/package/breakwater)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nWhen waves of failure hit, the breakwater keeps your service standing. It brings the design of [resilience4j](https://resilience4j.readme.io/) (Java) and [Polly](https://github.com/App-vNext/Polly) (.NET) to Node.js: composable resilience policies with explicit ordering, typed events, and metrics — no third-party plugins required.\n\n```ts\nimport { resilience, exponential } from 'breakwater'\n\nconst payments = resilience({\n  retry: { attempts: 3, backoff: exponential({ initial: 200 }) },\n  circuitBreaker: { name: 'payments-api', failureThreshold: 0.5 },\n  timeout: 2_000,\n  fallback: () => ({ status: 'pending', queued: true })\n})\n\nconst charge = await payments.execute(({ signal }) => api.post('/charge', body, { signal }))\n```\n\n## Table of contents\n\n- [Why another resilience library?](#why-another-resilience-library)\n- [Install](#install)\n- [Quick start](#quick-start)\n- [Core concepts](#core-concepts)\n- [The policies](#the-policies)\n- [Composing policies](#composing-policies)\n- [Observability](#observability)\n- [Errors](#errors)\n- [Documentation](#documentation)\n- [Requirements](#requirements)\n\n## Why another resilience library?\n\n| | breakwater | [opossum](https://github.com/nodeshift/opossum) | [cockatiel](https://github.com/connor4312/cockatiel) |\n|---|---|---|---|\n| Circuit breaker | ✅ | ✅ | ✅ |\n| Retry with backoff strategies | ✅ | ➖ rudimentary | ✅ |\n| Timeout / fallback | ✅ | ➖ fallback only | ✅ |\n| Bulkhead | ✅ | ❌ | ✅ |\n| Rate limiter (token bucket / sliding window) | ✅ | ❌ | ❌ |\n| Stale-while-open cache (last good response) | ✅ [`staleCache`](docs/stale-cache.md) | ❌ | ❌ |\n| Policy composition with explicit ordering | ✅ first-class | ❌ | ✅ |\n| Named policy registry (central config) | ✅ | ❌ | ❌ |\n| Typed events + pluggable metrics collector | ✅ native | ➖ via plugin | ❌ |\n| Prometheus / OpenTelemetry adapters | ✅ [`/prometheus`](docs/prometheus.md) · [`/otel`](docs/otel.md) | ➖ via plugin | ❌ |\n| Distributed circuit breaker state (Redis) | ✅ [`/redis`](docs/redis.md) | ❌ | ❌ |\n| TypeScript | ✅ native | ➖ via `@types` | ✅ native |\n| Runtime dependencies | **0** | 0 | 0 |\n\nDesign principles:\n\n- **TypeScript first** — strict types, no `@types` package\n- **Zero dependencies in the core** — integrations ship as optional entry points (Prometheus, OpenTelemetry and Redis)\n- **Declarative composition** — policies combine into pipelines with explicit, documented ordering\n- **Native observability** — typed events and a pluggable `MetricsCollector` in the core\n\n## Install\n\n```bash\nnpm install breakwater\n```\n\nWorks with both module systems:\n\n```ts\nimport { retry, timeout, circuitBreaker } from 'breakwater' // ESM\nconst { retry, timeout, circuitBreaker } = require('breakwater') // CJS\n```\n\n## Quick start\n\nProtect a flaky HTTP call in three lines:\n\n```ts\nimport { retry } from 'breakwater'\n\nconst policy = retry({ attempts: 3 })\nconst user = await policy.execute(() => fetchUser(id))\n```\n\nAdd a time budget and a circuit breaker, composed in an explicit order:\n\n```ts\nimport { compose, retry, circuitBreaker, timeout } from 'breakwater'\n\nconst policy = compose(\n  retry({ attempts: 3 }),                      // outermost\n  circuitBreaker({ name: 'user-service' }),\n  timeout(2_000)                               // innermost, hugs the function\n)\n\nconst user = await policy.execute(({ signal }) => fetchUser(id, { signal }))\n```\n\nOr let `resilience()` pick the battle-tested default order for you:\n\n```ts\nimport { resilience } from 'breakwater'\n\nconst policy = resilience({\n  retry: { attempts: 3 },\n  circuitBreaker: { name: 'user-service' },\n  timeout: 2_000,\n  fallback: cachedUser\n})\n```\n\n## Core concepts\n\n### Every policy speaks the same contract\n\nA policy — and the result of composing policies — is an object with:\n\n```ts\npolicy.execute(fn, options?)  // run fn under the policy's protection\npolicy.wrap(fn)               // decorate: same signature in, protected function out\npolicy.invoke(fn, ctx)        // composition primitive (used by compose())\n```\n\nTwo everyday shapes:\n\n```ts\n// 1. execute — fn receives the execution context (with the combined signal)\nconst data = await policy.execute(({ signal }) => fetch(url, { signal }))\n\n// 2. wrap — decorate once, call everywhere\nconst safeFetchUser = policy.wrap(fetchUser)\nconst user = await safeFetchUser(id)\n```\n\n> `wrap` keeps the function signature untouched, so the wrapped function does not\n> receive the context. Use `execute` when you need the inner signal. Also note\n> `this` is not forwarded — bind methods first: `policy.wrap(svc.method.bind(svc))`.\n\n### The execution context\n\nOne context travels through the whole pipeline:\n\n```ts\ninterface ExecutionContext {\n  signal: AbortSignal    // external cancellation + timeouts, combined into ONE signal\n  attempt: number        // 0 on the first execution; incremented by retry\n  correlationId: string  // generated if not provided; present in every event payload\n  metadata: Record<string, unknown>  // yours, crosses every policy\n}\n```\n\nYour function only ever needs to observe **one** `AbortSignal` — the policies\ncombine external cancellation, timeouts and retry cancellation into it:\n\n```ts\nawait policy.execute(\n  ({ signal }) => fetch(url, { signal }),\n  { signal: request.signal, correlationId: request.id }\n)\n```\n\n### Cancellation is not failure\n\nAborting via `AbortSignal` is treated as *cancellation* everywhere: retry does not\nretry it, the circuit breaker does not count it, and fallback does not replace it.\nThe abort reason propagates to the caller untouched.\n\n## The policies\n\n| Policy | One-liner | Docs |\n|---|---|---|\n| [`timeout(ms, options?)`](docs/timeout.md) | Bound the time of each execution, cooperatively or aggressively | [docs/timeout.md](docs/timeout.md) |\n| [`retry(options?)`](docs/retry.md) | Retry transient failures with configurable backoff and a total deadline | [docs/retry.md](docs/retry.md) |\n| [`circuitBreaker(options?)`](docs/circuit-breaker.md) | Fail fast while a dependency is down; probe and recover automatically | [docs/circuit-breaker.md](docs/circuit-breaker.md) |\n| [`bulkhead(options?)`](docs/bulkhead.md) | Bound concurrent executions, with an optional FIFO wait queue | [docs/bulkhead.md](docs/bulkhead.md) |\n| [`rateLimit(options)`](docs/rate-limit.md) | Cap the execution rate — token bucket or exact sliding window | [docs/rate-limit.md](docs/rate-limit.md) |\n| [`fallback(handler, options?)`](docs/fallback.md) | Replace a failure with a value, a function result, or a chain of them | [docs/fallback.md](docs/fallback.md) |\n| [`staleCache(options?)`](docs/stale-cache.md) | Serve the last good response while the circuit is open | [docs/stale-cache.md](docs/stale-cache.md) |\n| [`compose(...policies)`](docs/composition.md) | Combine policies with explicit ordering; compositions compose again | [docs/composition.md](docs/composition.md) |\n| [`resilience(options)`](docs/composition.md#resilience-the-batteries-included-order) | The batteries-included pipeline with a sane default order | [docs/composition.md](docs/composition.md) |\n\n## Composing policies\n\n`compose(a, b, c)` runs exactly like the nested calls `a(b(c(fn)))` — the first\npolicy is the outermost. **Order changes behavior**: retry outside the circuit\nbreaker behaves very differently from retry inside it. This is the part most\nlibraries leave undocumented; we document it with diagrams in\n[docs/composition.md](docs/composition.md).\n\nThe default order used by `resilience()`:\n\n```\nfallback( retry( rateLimit( bulkhead( circuitBreaker( timeout( fn ) ) ) ) ) )\n```\n\nEvery attempt flows through the breaker (feeding its stats individually), and once\nthe circuit opens, retry sees `CircuitOpenError` — which is not retryable — and\ngives up immediately instead of hammering an open circuit.\n\n## Named policies\n\nDefine your resilience configuration once, at startup; ask for policies by\nname everywhere else — same name, same instance, genuinely shared state:\n\n```ts\nimport { policies } from 'breakwater'\n\n// config/resilience.ts\npolicies.define('payments-api', {\n  retry: { attempts: 3 },\n  circuitBreaker: { failureThreshold: 0.5 },\n  timeout: 2_000\n})\n\n// anywhere else\nawait policies.get('payments-api').execute(({ signal }) => api.post('/charge', body, { signal }))\n```\n\nTypos fail fast (`get` throws listing the defined names), duplicates throw,\nand the registry name flows into metrics automatically. See\n[docs/named-policies.md](docs/named-policies.md).\n\n## Observability\n\nEvery policy emits **typed events** — no plugin required:\n\n```ts\nconst breaker = circuitBreaker({ name: 'payments-api' })\n\nbreaker\n  .on('stateChange', ({ from, to, stats }) => log.warn({ from, to, stats }, 'circuit state changed'))\n  .on('reject', ({ correlationId }) => log.debug({ correlationId }, 'request rejected fast'))\n\nbreaker.stats()\n// { state, successes, failures, totalCalls, failureRate, latency, lastError, openedAt, nextAttemptAt }\n// latency: { count, min, max, mean, p50, p95, p99 } over the same window\n```\n\nFor metrics pipelines, implement the `MetricsCollector` interface once and plug it\ninto `resilience()` — it wires every policy for you:\n\n```ts\nconst policy = resilience({\n  retry: { attempts: 3 },\n  circuitBreaker: { name: 'payments-api' },\n  timeout: 2_000,\n  metrics: myCollector // onExecution, onRetry, onTimeout, onStateChange, onFallback, onReject\n})\n```\n\nBuilding with `compose()` instead? `attachMetrics(pipeline, collector)` wires\na whole composition in one call, and `metricsPolicy(collector)` measures the\npipeline as a regular outermost policy. Compositions also expose an\naggregated `stats()` of their inner policies.\n\nDon't want to write a collector? Two ready-made adapters ship as optional\nentry points. **`breakwater/prometheus`** emits prom-client metrics —\nexecutions, durations, rejections and circuit states — plus a Grafana\ndashboard to import:\n\n```ts\nimport { prometheusCollector } from 'breakwater/prometheus' // prom-client is a peer dependency\n\nconst policy = resilience({ name: 'payments-api', metrics: prometheusCollector() })\n```\n\n**`breakwater/otel`** emits the same signals as OpenTelemetry metrics, and\nadds `spanPolicy()` — a composable policy that wraps each execution in an\nactive span, so instrumented HTTP clients and database drivers nest under it\nin the trace:\n\n```ts\nimport { otelCollector, spanPolicy } from 'breakwater/otel' // @opentelemetry/api is a peer dependency\n\nconst policy = resilience({ name: 'payments-api', metrics: otelCollector() })\n```\n\nSee [docs/prometheus.md](docs/prometheus.md) and [docs/otel.md](docs/otel.md).\n\n## Errors\n\nEvery error breakwater throws extends `BreakwaterError` and carries a stable\n`code` — branch on the code or the type guards, never on messages:\n\n| Error | `code` | Thrown by |\n|---|---|---|\n| `TimeoutError` | `TIMEOUT` | timeout |\n| `RetryExhaustedError` | `RETRY_EXHAUSTED` | retry (last error in `cause`) |\n| `CircuitOpenError` | `CIRCUIT_OPEN` | circuit breaker (carries `stats`) |\n| `IsolatedError` | `CIRCUIT_ISOLATED` | circuit breaker (manual isolation) |\n| `BulkheadRejectedError` | `BULKHEAD_REJECTED` | bulkhead (carries `stats`; stays retryable) |\n| `RateLimitedError` | `RATE_LIMITED` | rate limit (carries `stats` and `retryAfterMs`; stays retryable) |\n| `FallbackFailedError` | `FALLBACK_FAILED` | fallback (operation error in `originalError`) |\n\n```ts\nimport { isCircuitOpenError, isTimeoutError } from 'breakwater'\n\ntry {\n  await policy.execute(chargeCard)\n} catch (error) {\n  if (isCircuitOpenError(error)) return res.status(503).json({ retryAfter: error.stats.nextAttemptAt })\n  if (isTimeoutError(error)) return res.status(504).end()\n  throw error\n}\n```\n\nSee [docs/errors.md](docs/errors.md).\n\n## Documentation\n\n- [Timeout](docs/timeout.md)\n- [Retry & backoff](docs/retry.md)\n- [Circuit breaker](docs/circuit-breaker.md)\n- [Bulkhead](docs/bulkhead.md)\n- [Rate limit](docs/rate-limit.md)\n- [Fallback](docs/fallback.md)\n- [Stale cache (stale-while-open)](docs/stale-cache.md)\n- [Composition & ordering](docs/composition.md) — read this one; ordering is where resilience goes right or wrong\n- [Named policies](docs/named-policies.md)\n- [Observability: events, stats & metrics](docs/observability.md)\n- [Prometheus adapter](docs/prometheus.md) — ready-made prom-client collectors + a Grafana dashboard\n- [OpenTelemetry adapter](docs/otel.md) — OTel metrics + spans as a composable policy\n- [Redis: distributed state](docs/redis.md) — one circuit, and one rate limit quota, shared across every instance\n- [Errors](docs/errors.md)\n- [Versioning policy](docs/versioning.md) — what the semver promise covers, and what it deliberately does not\n\n## Requirements\n\n- Node.js >= 22\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}