{"_id":"@absolutejs/secrets","_rev":"23-186515cf866339d3fec119e01f72bcda","name":"@absolutejs/secrets","dist-tags":{"latest":"0.9.7"},"versions":{"0.0.1":{"name":"@absolutejs/secrets","version":"0.0.1","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"dbd9cef1a68da6e606cdd0e07f67eb199a42bea8","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.0.1.tgz","fileCount":6,"integrity":"sha512-pmNeoX6GiuZUjnnWIXSPYEINa6FRsrhsgUvrB+MR0fC9k5jid6QZFR9tfGuC1fu85xiwSbqdaQAzpOEApUr2+Q==","signatures":[{"sig":"MEYCIQDxwlzQRuAZshDytIIvDvyQuqW7eZnXe13utHszFrzwCgIhAJ8KH9RIomTf/5eXWVb4DAzV3LCNGz1PD/gj5K82918B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50883},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"dbd9cef1a68da6e606cdd0e07f67eb199a42bea8","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-pmNeoX6GiuZUjnnWIXSPYEINa6FRsrhsgUvrB+MR0fC9k5jid6QZFR9tfGuC1fu85xiwSbqdaQAzpOEApUr2+Q==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.0.1_1780082912506_0.2775919569330185","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/secrets","version":"0.1.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6a246efd41201a0fe512776640d39b37c61c6ad5","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.1.0.tgz","fileCount":6,"integrity":"sha512-HwsDXaTHwIMl2NC0KKLRQeiaH6csni21qq52rNa5zinkh43EGCDIPZGMczYMdmiBkj1/agvy10pWNFJbQYOJoA==","signatures":[{"sig":"MEYCIQC3kFA3za82jwcPjHLUst3b9ZMhoqHpwqtZniGv6+nrjQIhAJs3L6CTMki0IcjebiQZKh5UGVOxZSsGqYYsBk9BdPxE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62940},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6a246efd41201a0fe512776640d39b37c61c6ad5","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-HwsDXaTHwIMl2NC0KKLRQeiaH6csni21qq52rNa5zinkh43EGCDIPZGMczYMdmiBkj1/agvy10pWNFJbQYOJoA==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.1.0_1780089791699_0.9934894541467527","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/secrets","version":"0.2.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"f6b5d35765c329112f2d9ec5afbec53395da4ca2","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.2.0.tgz","fileCount":6,"integrity":"sha512-qxI3QsTpIFbmGM/xASMlSs1itcyj+DbIccTKNpL6W42XK7TtfYj+rJus00SPKu+9N1+kyYW6RKRjxWe0QFb6Ug==","signatures":[{"sig":"MEQCIDBTuQTucPlpoFpN8W0ygaIlzu9dJxrriZ9Hyt6/ep/4AiBm26wQzNIqky0C/pi8qAqGk6svxcBi9WR33AN45d0oUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"f6b5d35765c329112f2d9ec5afbec53395da4ca2","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-qxI3QsTpIFbmGM/xASMlSs1itcyj+DbIccTKNpL6W42XK7TtfYj+rJus00SPKu+9N1+kyYW6RKRjxWe0QFb6Ug==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.2.0_1780109761867_0.45625884003275363","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/secrets","version":"0.3.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.3.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"b21655fe7e9382829279854645e939b313a7668b","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.3.0.tgz","fileCount":6,"integrity":"sha512-XP2YO9EAtvhCpNLXoh1nODJrfwwGET+L/q1RHhCpS8VbLw7AVqZitCOk2lAL7C7tza8G8oRDNyGn1ioo9/Re9g==","signatures":[{"sig":"MEYCIQCdmwW0aeZJN676AK+xqOH2yToX7BaAs0MwrXwLNUeaPQIhANL0y2RAHQD4O1vhbP8NbaOJgWQeGECArEw4dG4h3o1l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81556},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"b21655fe7e9382829279854645e939b313a7668b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-XP2YO9EAtvhCpNLXoh1nODJrfwwGET+L/q1RHhCpS8VbLw7AVqZitCOk2lAL7C7tza8G8oRDNyGn1ioo9/Re9g==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@absolutejs/telemetry":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/telemetry":"^0.0.2"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.3.0_1780168968563_0.25218526560641785","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@absolutejs/secrets","version":"0.4.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.4.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"affe578b54d0f7c74db1aae38f61c635cd8b23a6","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.4.0.tgz","fileCount":6,"integrity":"sha512-tSvAj0tEQYBwIMhXIqR2J1ZoAQ8UWfN2sPZhkZrkhwSzbFgSZ/33mbHnu1BcytviXHbbsH1thvU53dpCzItwig==","signatures":[{"sig":"MEUCIQC7kRG9sYfBZ0Yr+blI057gRX1Jcj1IgUyJruTESy2c9QIgYHv/aDuTJFgd6FEUtjadY1Espo6Lz5MlqS3lly7BQhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102697},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"affe578b54d0f7c74db1aae38f61c635cd8b23a6","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-tSvAj0tEQYBwIMhXIqR2J1ZoAQ8UWfN2sPZhkZrkhwSzbFgSZ/33mbHnu1BcytviXHbbsH1thvU53dpCzItwig==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@absolutejs/telemetry":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/telemetry":"^0.0.2"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.4.0_1780219492467_0.23160744613322692","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@absolutejs/secrets","version":"0.5.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.5.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6f3ec2419fe3e89ab9b9ca6bc454e75c7c7d8a78","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.5.0.tgz","fileCount":6,"integrity":"sha512-57jE1DUCupSKAVOOrtpr1K+3G84/P9QBEc2947m0Zc1x1xJZqWmb1VZ/+dhUqLM7xm7s7+WomJaqrszs1fbDIA==","signatures":[{"sig":"MEYCIQDozFacJmt78eQ5ozGybRLel8lztTvrvJ7bBbikUH2qmQIhAKQfb4CYEyUiUIMupe3UItyYwe5ddeUMaxEJEk6Wc6Dg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113998},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6f3ec2419fe3e89ab9b9ca6bc454e75c7c7d8a78","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-57jE1DUCupSKAVOOrtpr1K+3G84/P9QBEc2947m0Zc1x1xJZqWmb1VZ/+dhUqLM7xm7s7+WomJaqrszs1fbDIA==","repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@absolutejs/telemetry":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/telemetry":"^0.0.2"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.5.0_1780219791841_0.09014805284763683","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@absolutejs/secrets","version":"0.5.1","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.5.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"71d21f96ea275e22630705545a9d9497759d45e9","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.5.1.tgz","fileCount":10,"integrity":"sha512-m4gWyo0MAgrqqjQpVgdYoYg8pxlTmPCy5ckuqm8TnAbAhanKDomNnau4QuAL23TXrUlBJHcm4aQ7LqXwTE797w==","signatures":[{"sig":"MEYCIQD+6fEF/xjj2SfOn7OQM+QQqeIoo/PDqIDp2BOPWvFT/gIhANLxFptLx42dpwXUlq0wpoHwmLnpsxdZWtfDOd3M8qMx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1213921},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"71d21f96ea275e22630705545a9d9497759d45e9","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-m4gWyo0MAgrqqjQpVgdYoYg8pxlTmPCy5ckuqm8TnAbAhanKDomNnau4QuAL23TXrUlBJHcm4aQ7LqXwTE797w==","absolutejs":{"manifestContract":1},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0","@absolutejs/telemetry":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/telemetry":"^0.0.2"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.5.1_1783964187198_0.4397345802371939","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@absolutejs/secrets","version":"0.5.2","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.5.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"4733eeee2d83f65826e22debd30e4324b233fd15","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.5.2.tgz","fileCount":10,"integrity":"sha512-jcveOfyzGkMn/HqDLudbiIBleyvYCQqFTfqBLxYVyMutEyIi5I+hqrDR1KQsYo4uuPdudwnb4hzwvtkHhMY5iA==","signatures":[{"sig":"MEUCIFShdOZj1gwIW5egwAkH40Ii/2FA0tDdmyLcw+Ku8NJLAiEApeToDcAWGLYfGScQtEAGRj0C/0nj6rvJ6VfUe7zRwh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1214297},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"3fd9aa91dc34206ef60b8a8e3e64cba87f725dcd","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":1},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.5.2_1784008351619_0.1652300498623014","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@absolutejs/secrets","version":"0.5.3","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.5.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"a453eaad151beebeebddd0c9bf88cdcf36c7361c","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.5.3.tgz","fileCount":10,"integrity":"sha512-+CjMjJbFSJyFtRckIZwksP02kUqbUFEJLzrwz5TJ016AfkTcWY2WgJti+Mn3438yRPa/V53CPzwbxjS8L+xVGw==","signatures":[{"sig":"MEYCIQDIEvnS1IaCjxH9Hxrnd1wkhgIIJtSAeCMouq6yKlUN0QIhAJ6koYrq4BvDAxy+ksF5dv2wvWO8uOG4QbZO+qNFvsNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215168},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a453eaad151beebeebddd0c9bf88cdcf36c7361c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-+CjMjJbFSJyFtRckIZwksP02kUqbUFEJLzrwz5TJ016AfkTcWY2WgJti+Mn3438yRPa/V53CPzwbxjS8L+xVGw==","absolutejs":{"manifestContract":1},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.5.3_1784131239241_0.48579177297978027","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@absolutejs/secrets","version":"0.6.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.6.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"c945603b06250729e51f6634d3839eff811c288a","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.6.0.tgz","fileCount":11,"integrity":"sha512-Tb4/P3tYUfdwZpba/HNV8EDzTkOoAJJW/ftQp/7RzeTORcin5VXyaarIABgAHOOOgggUkTh1wco0HSAW5TAL6g==","signatures":[{"sig":"MEUCIAa8Sgq+84TzEfqmVfZswp5J8DVZLxjG1iVBCBjPbOd1AiEA98hY5mB0SupdWxjvFh5j4/g1H2B7WmgguuGx7CxWFSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1257717},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"c945603b06250729e51f6634d3839eff811c288a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-Tb4/P3tYUfdwZpba/HNV8EDzTkOoAJJW/ftQp/7RzeTORcin5VXyaarIABgAHOOOgggUkTh1wco0HSAW5TAL6g==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.1.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.6.0_1784147328668_0.34044656137644114","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@absolutejs/secrets","version":"0.6.1","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.6.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"d01791bc9ceaf7fb25cd2b4812a04f31d48ad443","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.6.1.tgz","fileCount":11,"integrity":"sha512-ewN3tHzZEVr1pzgH+y3E6ArYdxDS0JWVKr87LTr5v/DCL9r+zY+nOMmC+WDKetGj4voeHyabVEQ6qIzx1d7W/Q==","signatures":[{"sig":"MEQCIHSu+JNz/dKC1euToKDtqtr8BXPiDW/zaJgmpbJLXg24AiAE0HVwib2tDArJIQJBYFfbu6YFvYRz3J4lhPvySqOOfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1265854},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d01791bc9ceaf7fb25cd2b4812a04f31d48ad443","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-ewN3tHzZEVr1pzgH+y3E6ArYdxDS0JWVKr87LTr5v/DCL9r+zY+nOMmC+WDKetGj4voeHyabVEQ6qIzx1d7W/Q==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.2.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.6.1_1784148254776_0.9173599107967814","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@absolutejs/secrets","version":"0.7.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.7.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"7626979458b9845d17a430b49c92576e1d72b2a7","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.7.0.tgz","fileCount":12,"integrity":"sha512-++Jl6BizHpXAgUi428jhzylULrJigDxKJsz+xoEPVgA6F+YdyopqT4nNlI6/PaK7860aHFmuaY27FZ7eAaeF7A==","signatures":[{"sig":"MEYCIQDwn8tdK7llGNoF8muVwnwkNaZBB/GjUwgPaNSbxnl9kAIhAIWVuV6vrBkudnhTa8zrpCHrQgabpTfoMeqemUV/8tKG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280792},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"7626979458b9845d17a430b49c92576e1d72b2a7","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-++Jl6BizHpXAgUi428jhzylULrJigDxKJsz+xoEPVgA6F+YdyopqT4nNlI6/PaK7860aHFmuaY27FZ7eAaeF7A==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.3.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.7.0_1784149153656_0.06570608310982595","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@absolutejs/secrets","version":"0.7.1","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.7.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"b4947d19f62e04d9d3d3d562b2fd4b54790fb444","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.7.1.tgz","fileCount":18,"integrity":"sha512-3Ds2R1ZdKrcxuSos0qQoolhZU243tO1QWXuUc33jlHNsvDl7hzZvAWW6Y/4aicEW7lFHYkeAxbL5fpyp2MOYqw==","signatures":[{"sig":"MEQCIA2kE66wvswzfU0nW6mdk5HhJt2dPf75mKjKtYFnhqolAiA/x6HeQPFcYc4QlIpC9VCZRmzST8z8A46R7xaxukCC4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1429258},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"32c8679ab3c422b4bfcb3773d84c54f3c56a5c97","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.3.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.7.1_1784259465384_0.8020781938291146","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@absolutejs/secrets","version":"0.7.2","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.7.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"1242f3ee87f4d7330302417cd70919c60d1927ae","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.7.2.tgz","fileCount":18,"integrity":"sha512-aIXPjswtsHVWrRHzaS20PMEyHzRCMgrsvHcmgN4PPl8VbMjti+J6zbGomm9bAhNdZ1mAw7MULl3yGyj+nw7c5A==","signatures":[{"sig":"MEQCIAHb2/w0B5/vsNFFTHWQGW/EHAngOQBxaAULMSc/YdK0AiBvXRX/x/O4fMV2m+swaTm+FK0iWJos/pjIQzSNIh9v/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1451004},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"32c8679ab3c422b4bfcb3773d84c54f3c56a5c97","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.5.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.7.2_1784338340256_0.843100133262517","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@absolutejs/secrets","version":"0.8.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.8.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"cb382ed1ac19c69c698846c47fc1a3289d1ec33c","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.8.0.tgz","fileCount":18,"integrity":"sha512-exb4yjogLazNqzS22/PastOMMekf/eEcXSE2NtnBOvbZIROrnv6CUX+otzhjksLcZTAYP/oa1p6/sN6v9798XQ==","signatures":[{"sig":"MEUCIQDjsuuboOONN1I+tDSAGAmpUVLttCuZ3vbuW3zxdXzoRwIgTxY8ZQ7tIqlXuHWKOzYGY9Urt6FXSHyHgrNtoiJknec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1451314},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"cb382ed1ac19c69c698846c47fc1a3289d1ec33c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-exb4yjogLazNqzS22/PastOMMekf/eEcXSE2NtnBOvbZIROrnv6CUX+otzhjksLcZTAYP/oa1p6/sN6v9798XQ==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.6.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.8.0_1784503066051_0.14601122485585205","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@absolutejs/secrets","version":"0.9.0","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"54535339cc86308fd53f2d012bc044eb0413f061","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.0.tgz","fileCount":21,"integrity":"sha512-iuYdrQjOA1iURjnx1jDgN0HIOV8z4fVufVDI9Vxj6yulPvel8cIAzvczRRPRpa2dJ9oelhZkOUl82tw0fULYkQ==","signatures":[{"sig":"MEQCIFqgVK7GgAWKKWKW9nn1OttELzwarfKSzvAhdIt4+dfRAiAVcrzrEHNwudrw0Emtl7J2YUDk93P7gLwb1RnuFdnxaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1462193},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"54535339cc86308fd53f2d012bc044eb0413f061","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-iuYdrQjOA1iURjnx1jDgN0HIOV8z4fVufVDI9Vxj6yulPvel8cIAzvczRRPRpa2dJ9oelhZkOUl82tw0fULYkQ==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.6.0","@absolutejs/manifest":"^0.2.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.0_1784669862901_0.6253070231372144","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@absolutejs/secrets","version":"0.9.1","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"79252b04c7e310b387b12cc64d8017ce683261eb","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.1.tgz","fileCount":21,"integrity":"sha512-vXH6D4Ab56vhxMWAz8P0itaOR6Zg/DC/+P27iRyWR2MQgme56jhqvLuoFqHy/LFONZuF00HcHRXfq51nerRChw==","signatures":[{"sig":"MEQCIH2+7IyVNF/POoTVR01QpFSxh+MxIBvekIhnhlKN8/asAiAx1AGUVqGu8r91z3al2KCNvEUhIRoTgsY8fiRXlaXbjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1479131},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"91afeb789a8ece01b3c35ec6afa0e4113b519663","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/agency":"^0.6.0","@absolutejs/manifest":"^0.4.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.1_1784805699735_0.7022544214481892","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@absolutejs/secrets","version":"0.9.2","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"ca58654b73d6bd47774eab3815cbe43eba9a3c1a","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.2.tgz","fileCount":21,"integrity":"sha512-qZpprqyArXMvU+C6TEu/4JBhFeLmfs5o+wViPrC37jK83wc/FvJYHH014NfY7r8/KLGFGL1wtuIY0Vs9WeUptw==","signatures":[{"sig":"MEQCIBQW4HDY5Ioa91W0SqIsWeF5v8AtAzXhNk+KmlkC2/buAiBC2dI8NulMfaQ3GBSLEBjjNPCDg1Dq5HBPS8Szcj0hwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1407293},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ca58654b73d6bd47774eab3815cbe43eba9a3c1a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-qZpprqyArXMvU+C6TEu/4JBhFeLmfs5o+wViPrC37jK83wc/FvJYHH014NfY7r8/KLGFGL1wtuIY0Vs9WeUptw==","absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.4.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/agency":"0.7.1"},"peerDependencies":{"bun-types":"^1.3.14","@absolutejs/agency":">=0.7.1 <0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.2_1784864923446_0.17703430197480552","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@absolutejs/secrets","version":"0.9.3","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"3b475882e28dce243c80b1a0afe5a35df9fc689f","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.3.tgz","fileCount":21,"integrity":"sha512-Y8PPJzyWfEmhddcXzp5ggQJlNVxXV2H5NUBUfNV3vARmFFHNBE3FWAGbPURVyU9jWIMD5BRDp9L0o/cgh5+fmw==","signatures":[{"sig":"MEQCIEjNrPZztrkmPkXdNlCB9bYZ234W5vO1TurHtdn5N5idAiB0Kw2RNiKSrf6pKp+6bTE/FOOTFp62zkNR2YQdD2CWDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":748162},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3b475882e28dce243c80b1a0afe5a35df9fc689f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-Y8PPJzyWfEmhddcXzp5ggQJlNVxXV2H5NUBUfNV3vARmFFHNBE3FWAGbPURVyU9jWIMD5BRDp9L0o/cgh5+fmw==","absolutejs":{"runtimePeers":{"@absolutejs/agency":{"range":">=0.7.1 <0.8.0","tested":"0.7.1","buildExternals":["@absolutejs/agency","@absolutejs/agency/*"]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.6.0","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/agency":"0.7.1"},"peerDependencies":{"bun-types":"^1.3.14","@absolutejs/agency":">=0.7.1 <0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.3_1784867102887_0.8952672910273274","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@absolutejs/secrets","version":"0.9.4","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.4","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"4b47af3e5ee83a73dc648053e69039b1d48f3834","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.4.tgz","fileCount":21,"integrity":"sha512-NoraFxJ5loLDdoK8XOgW1HbNbrRMRd3DM2pfNSkv0Wf90+9BiNy4dvmWIEbLfcLcQDYGPr2Y0A9hhk0NctvYew==","signatures":[{"sig":"MEUCIQDe8RqqL44nv5kjgF47slmOhYMNys7bFdXhF5RHe4s9GAIgamMClcbZOMVwHZJspXRidOxvg+wC0uvl3kbKtdNhZpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":749601},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"1c14e0f0e0f7900c8eca0add8763ccddda29645b","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/agency":{"range":">=0.7.1 <0.8.0","tested":"0.7.1","buildExternals":["@absolutejs/agency","@absolutejs/agency/*"],"artifactImports":["@absolutejs/agency"]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.6.3","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^6.0.3","@absolutejs/agency":"0.7.1"},"peerDependencies":{"bun-types":"^1.3.14","@absolutejs/agency":">=0.7.1 <0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.4_1784911423786_0.713159708529223","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@absolutejs/secrets","version":"0.9.5","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.5","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"0f8b10a063b55bc8183fdab10e77bcc1876788d7","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.5.tgz","fileCount":21,"integrity":"sha512-DdOZKF2cHhp8mg3hOUlbh+aeT0S0Ecaq57NvDMZv9mh2a/Atcq1EoQZVEQTQwI+kgJ3u3Oz61IHA9PjYAf7a1g==","signatures":[{"sig":"MEYCIQDwvjiTtUL2EIvQCKwJ5eSJLwg9AdAq5i30jk54OPcJ8AIhAMDniJrWl8qKN5NmpV2lFKyWy3DJtJ4C5Hptowxx740p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"0f8b10a063b55bc8183fdab10e77bcc1876788d7","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-DdOZKF2cHhp8mg3hOUlbh+aeT0S0Ecaq57NvDMZv9mh2a/Atcq1EoQZVEQTQwI+kgJ3u3Oz61IHA9PjYAf7a1g==","absolutejs":{"runtimePeers":{"@absolutejs/agency":{"range":">=0.7.1 <0.8.0","tested":"0.7.1","buildExternals":["@absolutejs/agency","@absolutejs/agency/*"],"artifactImports":["@absolutejs/agency"]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.8.3","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2","@absolutejs/telemetry":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.8.3","@types/bun":"1.3.14","typescript":"6.0.3","@absolutejs/agency":"0.7.1"},"peerDependencies":{"@absolutejs/agency":">=0.7.1 <0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.5_1784959116070_0.8901249618682667","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@absolutejs/secrets","version":"0.9.6","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/secrets@0.9.6","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"dist":{"shasum":"266fbe96fa3c8c4658db4bd065b067578b255288","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.6.tgz","fileCount":21,"integrity":"sha512-8adu+pNfyeZdp8ilKAEWsA+DDC7djnj+m/sIjpTm+E3c4Qf2w0r5zHYCAnzpYd+SB3lOf9u5lL3iVYrqZmlLew==","signatures":[{"sig":"MEYCIQD1Rtk3i6ewhU0Zbij3XstGn6Lgz7Qrw1j+8inFzjSOpgIhAP2PqsAvJ916C4t2E0qHwpPw1Rn/9iOBfMJ8tGRXxDJu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755660},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"c3dab790dc6f4c48eb04ea462f829ce9544da12d","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/agency":{"range":">=0.7.1 <0.8.0","tested":"0.7.3","buildExternals":["@absolutejs/agency","@absolutejs/agency/*"],"artifactImports":["@absolutejs/agency"]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/secrets.git","type":"git"},"_npmVersion":"10.9.2","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2","@absolutejs/telemetry":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.8.3","@types/bun":"1.3.14","typescript":"6.0.3","@absolutejs/agency":"0.7.3"},"peerDependencies":{"@absolutejs/agency":">=0.7.1 <0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/secrets_0.9.6_1784961918600_0.7526989404352118","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@absolutejs/secrets","version":"0.9.7","description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","repository":{"type":"git","url":"git+https://github.com/absolutejs/secrets.git"},"homepage":"https://github.com/absolutejs/secrets","bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"BSL-1.1","author":{"name":"Alex Kahn"},"absolutejs":{"manifestContract":2,"runtimePeers":{"@absolutejs/agency":{"artifactImports":["@absolutejs/agency"],"range":">=0.7.1 <0.8.0","tested":"0.7.3","buildExternals":["@absolutejs/agency","@absolutejs/agency/*"]}}},"publishConfig":{"access":"public"},"keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/agent.ts src/broker.ts src/manifest.ts src/rotation.ts --outdir dist --sourcemap --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test tests/","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","verify-package":"absolute-manifest verify-package","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","release":"bun run format && bun run check:package && bun publish"},"dependencies":{"@absolutejs/manifest":"^0.7.2","@absolutejs/telemetry":"^0.3.0","@sinclair/typebox":"^0.34.0"},"peerDependencies":{"@absolutejs/agency":">=0.7.1 <0.8.0"},"devDependencies":{"@absolutejs/agency":"0.7.3","@types/bun":"1.3.14","prettier":"3.8.3","typescript":"6.0.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./broker":{"types":"./dist/broker.d.ts","import":"./dist/broker.js","default":"./dist/broker.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"_id":"@absolutejs/secrets@0.9.7","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-GDkoRyKh+XoMZ9ZmIt4cIY2U2MVKN92kOmSmZJrC6EE5+9f3jWjCzS9M4xREWf/Ox49AqlDw73jZgDyadweEvw==","shasum":"550eef537bc459ae4f70e7f8f6309fafa7258694","tarball":"https://registry.npmjs.org/@absolutejs/secrets/-/secrets-0.9.7.tgz","fileCount":21,"unpackedSize":776091,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE0Dz/t4zG/jQzGXgzxY7ICexUr7mWl10YybU6ey7YImAiEAn7ZHpjM7ABCQQ8dym8ZJL0AIjFiscwl6lWRVFuLWl4I="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secrets_0.9.7_1786078120956_0.8276875012845171"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T19:28:32.322Z","modified":"2026-08-07T04:48:41.278Z","0.0.1":"2026-05-29T19:28:32.660Z","0.1.0":"2026-05-29T21:23:11.848Z","0.2.0":"2026-05-30T02:56:02.064Z","0.3.0":"2026-05-30T19:22:48.749Z","0.4.0":"2026-05-31T09:24:52.604Z","0.5.0":"2026-05-31T09:29:51.973Z","0.5.1":"2026-07-13T17:36:27.580Z","0.5.2":"2026-07-14T05:52:31.785Z","0.5.3":"2026-07-15T16:00:39.415Z","0.6.0":"2026-07-15T20:28:48.910Z","0.6.1":"2026-07-15T20:44:14.977Z","0.7.0":"2026-07-15T20:59:13.828Z","0.7.1":"2026-07-17T03:37:45.511Z","0.7.2":"2026-07-18T01:32:20.421Z","0.8.0":"2026-07-19T23:17:46.229Z","0.9.0":"2026-07-21T21:37:43.073Z","0.9.1":"2026-07-23T11:21:39.886Z","0.9.2":"2026-07-24T03:48:43.673Z","0.9.3":"2026-07-24T04:25:03.108Z","0.9.4":"2026-07-24T16:43:43.974Z","0.9.5":"2026-07-25T05:58:36.239Z","0.9.6":"2026-07-25T06:45:18.785Z","0.9.7":"2026-08-07T04:48:41.136Z"},"bugs":{"url":"https://github.com/absolutejs/secrets/issues"},"author":{"name":"Alex Kahn"},"license":"BSL-1.1","homepage":"https://github.com/absolutejs/secrets","keywords":["absolutejs","bun","paas","multi-tenant","secrets","credential-broker","redaction","rotation"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/secrets.git"},"description":"Host-side secret broker for multi-tenant Bun runtimes. Pluggable adapters (env-var, in-memory, composite, encrypted-file); audit hook per resolve; safe fingerprints for logs; redact() walks known secrets out of arbitrary text before it lands in a log sink","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/secrets\n\nHost-side secret broker for multi-tenant Bun runtimes. Three jobs, kept narrow:\n\n1. **Resolve** secrets through a pluggable adapter. The broker caches the\n   value, returns a `{ value, fingerprint }` pair where the fingerprint is\n   a sha256 prefix safe to log, and fires an audit event per call.\n2. **Redact** known cached secrets out of arbitrary strings (an error\n   message, a stdout line, a stack trace) before the text lands in any\n   log sink. Replacement: `[REDACTED:NAME]`.\n3. **Rotate** through the adapter, invalidate the cache, return the new\n   value.\n\nPure logic, zero Bun / Elysia surface. The intended consumers inside the\nSB-6 substrate are `@absolutejs/sync`'s `bridgeFetch.authorization()` hook\n(host-side credential injection for sandboxed mutations) and `unsafeHost`\ndeclarations (per-customer host functions like Stripe charge, Slack ping,\nqueue push).\n\n## Agent credential operations\n\nAgents should not call `resolve()` and should never receive a bearer token.\n`createCredentialOperationBroker()` instead gives them bounded capabilities:\nan exact agent and user, provider, operation scopes, URL origins, expiry, and\nmaximum use count. The host resolves the secret only after the grant is\natomically consumed, then passes it directly to an allowlisted provider\noperation. Results and audit events contain digests and identifiers, never the\ncredential.\n\nAgency is a required host peer (`>=0.7.1 <0.8.0`) and is externalized from the\nSecrets build. The credential broker therefore uses the host's one approval\nledger instead of embedding a second enforcement runtime. This package tests\nagainst exactly `0.7.1`; a new Agency minor requires an explicit compatibility\nrelease.\n\n```ts\nimport {\n  createCredentialOperationBroker,\n  createMemoryCredentialGrantStore,\n} from \"@absolutejs/secrets/agent\";\n\nconst grants = createMemoryCredentialGrantStore();\nawait grants.put({\n  agentId: \"research-agent\",\n  allowedOrigins: [\"https://api.example.com\"],\n  createdAt: Date.now(),\n  expiresAt: Date.now() + 60_000,\n  grantId: \"grant_123\",\n  maximumUses: 1,\n  provider: \"example\",\n  scopes: [\"create-report\"],\n  secretName: \"EXAMPLE_API_KEY\",\n  used: 0,\n  userId: \"user_123\",\n});\n\nconst operations = createCredentialOperationBroker({\n  agency,\n  providers: [\n    {\n      provider: \"example\",\n      operations: {\n        \"create-report\": ({ credential, destination, input, signal }) =>\n          fetch(new URL(\"/reports\", destination), {\n            body: JSON.stringify(input),\n            headers: { authorization: `Bearer ${credential}` },\n            method: \"POST\",\n            signal,\n          }).then((response) => response.json()),\n      },\n    },\n  ],\n  secrets: broker,\n  store: grants,\n});\n```\n\nUse a durable `CredentialGrantStore` in production. Passing an `agency` adds\npolicy, approval, single-use execution lease, and receipt enforcement.\nRequestable denials can be resumed after approval with\n`operations.resume(actionId)`.\n\n```ts\nimport {\n  createSecretBroker,\n  envAdapter,\n  inMemoryAdapter,\n  compositeAdapter,\n} from \"@absolutejs/secrets/broker\";\n\nconst broker = createSecretBroker({\n  adapter: compositeAdapter([\n    inMemoryAdapter({ initial: { TEST_KEY: \"sk_test_local_value\" } }),\n    envAdapter({ prefix: \"ABS_SECRET_\" }),\n  ]),\n  audit: (event) => observabilitySink.write(event),\n  cacheTtlMs: 60_000,\n});\n\n// In bridgeFetch.authorization():\nconst { value, fingerprint } = (await broker.resolve(\"STRIPE_KEY\"))!;\nlogger.info(\"charging\", { tenant, fingerprint }); // safe — no plaintext\nreturn { Authorization: `Bearer ${value}` };\n\n// In a log sink, before text leaves the host:\nconst sanitized = broker.redact(line); // [REDACTED:STRIPE_KEY] replaces plaintext\nsinkToCustomerVisibleLog(sanitized);\n\n// Rotate:\nconst next = await broker.rotate(\"STRIPE_KEY\");\nnotifyDependents(next.fingerprint); // tell consumers a new key is in cache\n```\n\n## v0.0.1 surface\n\n| API                           | Purpose                                                                                                                                     |\n| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\n| `createSecretBroker(options)` | Factory. Returns a `SecretBroker`.                                                                                                          |\n| `broker.resolve(name)`        | Returns `{ value, fingerprint }                                                                                                             | null`. Uses cache within `cacheTtlMs`. |\n| `broker.fingerprint(value)`   | Pure helper — sha256 prefix of any string. No adapter call.                                                                                 |\n| `broker.redact(text)`         | Rewrite arbitrary text, replacing every cached value (longer-first) with `[REDACTED:NAME]`. Skips values shorter than `redactionMinLength`. |\n| `broker.rotate(name)`         | Calls `adapter.rotate?`, caches the result, returns it. Throws if the adapter doesn't support rotation.                                     |\n| `broker.invalidate(name?)`    | Clear one entry or the whole cache.                                                                                                         |\n| `broker.dispose()`            | Tear down — clears cache; subsequent resolves return `null`.                                                                                |\n\n### Bundled adapters\n\n| Adapter                                  | Use                                                                                                                       |\n| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| `inMemoryAdapter({ initial?, rotate? })` | Tests, dev, and starter templates. Supports every operation. Default rotate = random base36.                              |\n| `envAdapter({ prefix?, env? })`          | Reads `process.env` (or any injected `env` map). Prefix-scoped to avoid leaking unrelated env vars via `list`. Read-only. |\n| `compositeAdapter([...])`                | Fan-out / fallback. `fetch` falls through; writes go to the first writeable adapter.                                      |\n\nAWS Secrets Manager / HashiCorp Vault / Doppler / Infisical / GCP Secret\nManager / Azure Key Vault adapters ship later as siblings — they're the\nones with real auth surface, so they don't belong in v0.0.1.\n\n### Versioned overlap rotation\n\n`defineSecretOverlapRotation`, `secretOverlapCandidateVersions`,\n`verifySecretOverlapVersion`, and `secretOverlapDisposition` provide the pure\nhost-side state machine for zero-downtime credential changes. The current\nversion is always tried first, proof from the retained version cannot verify\nthe replacement, a proven replacement retires the old version at the deadline,\nand an unproven replacement restores the known-good version. Storage adapters\nretain and remove the encrypted material; these helpers keep that policy\nconsistent without handling plaintext.\n\n### Audit\n\nEvery `resolve`, `rotate`, and `invalidate` fires the `audit` hook with\none of:\n\n- `{ event: 'resolve.hit', name, fingerprint, at }`\n- `{ event: 'resolve.miss', name, fingerprint?, at }` — fingerprint present when the miss turned into a cache write\n- `{ event: 'resolve.error', name, error, at }` — adapter threw\n- `{ event: 'rotate', name, fingerprint, at }`\n- `{ event: 'invalidate', name, at }` — `name` is `null` for a full clear\n\nA throwing or rejecting hook is logged + discarded. The broker is on the\nhot path for every credential lookup — one broken audit sink must not\ntake everything down.\n\n### Why fingerprints\n\n`broker.fingerprint(value)` is a deterministic sha256 prefix. Two purposes:\n\n- **Logs.** Trace records can say \"served credentials/abc12345\" without\n  leaking the secret; if the same fingerprint shows up across two requests\n  you know they used the same key.\n- **Webhook verification.** Compare an inbound HMAC hex against\n  `fingerprint(expectedSecret)` to confirm rotation propagation without\n  ever putting the secret next to the comparison.\n\nIt is NOT a security construct — 8 hex chars has only 32 bits of entropy.\nTreat it as a tag, not a token.\n\n## What v0.0.1 does NOT include\n\n- Vendored AWS / Vault / Doppler / Infisical adapters (siblings, later).\n- Encrypted on-disk cache.\n- Cross-process secret sharing.\n- Streaming key-rotation propagation to downstream sandboxes (caller wires that on top of `rotate`'s return).\n\n## Architectural role\n\n- **`@absolutejs/sync`** — `bridgeFetch.authorization()` and `unsafeHost` host functions ask the broker for credentials per call. The plaintext never crosses the sandbox boundary.\n- **`@absolutejs/runtime`** — passes the broker into the per-tenant process via the `env` it injects (or via a side-channel; the broker doesn't care).\n- **`@absolutejs/router`** — no direct relationship; runs upstream of the broker.\n- **`@absolutejs/metering`** — `audit` can sink directly into the metering pipeline so credential lookups are billable observability events.\n\n## License\n\nBSL 1.1 with a named carveout for the hosted secrets-management / credential-broker / runtime-secrets-injection category (AWS Secrets Manager, HashiCorp Vault Cloud, Doppler, 1Password Secrets, Infisical, GCP Secret Manager, Azure Key Vault, Akeyless, Cloudflare Workers Secrets, Vercel Environment Variables as a product). See [LICENSE](./LICENSE). Change Date: 4 years from first release; Change License: Apache 2.0.\n","readmeFilename":"README.md"}