{"_id":"@c9up/blackhole","_rev":"22-b204b49855f88af870226c85011d7fc4","name":"@c9up/blackhole","dist-tags":{"latest":"0.1.24"},"versions":{"0.1.3":{"name":"@c9up/blackhole","version":"0.1.3","license":"MIT","_id":"@c9up/blackhole@0.1.3","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"29606a81b56537f09ac840ac789dace2667b588c","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.3.tgz","fileCount":16,"integrity":"sha512-OiSzbG3ts2HBMTX/uAI+mCfVL7uwpykFTYEcj6JAO32mTvBq8GfCJcwY44eNdJ9m1K5LK2Rj1pIljpaWUOSi7Q==","signatures":[{"sig":"MEYCIQCtWGg+teqSQz1juJ2J2ycy3TjNENQ4LY0sgO8/SM38OgIhAJ5/mUo0YBdBpDgwq2Ib3COJ3d0lu2EnGdnoMkD9X4im","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9762703},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/8026e4d40760f9593a54aa9c80ac0f17/c9up-blackhole-0.1.3.tgz","_integrity":"sha512-OiSzbG3ts2HBMTX/uAI+mCfVL7uwpykFTYEcj6JAO32mTvBq8GfCJcwY44eNdJ9m1K5LK2Rj1pIljpaWUOSi7Q==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.3_1780914636588_0.04710476678878339","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@c9up/blackhole","version":"0.1.4","license":"MIT","_id":"@c9up/blackhole@0.1.4","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"888e637e96e251414a8b3151b4326326d8ccf10e","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.4.tgz","fileCount":44,"integrity":"sha512-zgZJ9VgL2LKccnN8lFnQjk2GQbEcoA5t2227uglUZ7BwdUyfY5qZyTaETZ35fDmaL586HPPo6BNagWM8BwUHPw==","signatures":[{"sig":"MEQCIFO4udbmnOIxYZyfOZIbuvpNbALfjiXVA4HNwuPXsFrlAiAi8snXbvd+GCzmc/9Mh1gr4lDupbUvNPgYh0S0HYQFZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9839285},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/c291990d20d0081da52d5bfaa392cc39/c9up-blackhole-0.1.4.tgz","_integrity":"sha512-zgZJ9VgL2LKccnN8lFnQjk2GQbEcoA5t2227uglUZ7BwdUyfY5qZyTaETZ35fDmaL586HPPo6BNagWM8BwUHPw==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.4_1780925932569_0.06476033444172291","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@c9up/blackhole","version":"0.1.5","license":"MIT","_id":"@c9up/blackhole@0.1.5","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"46e55bfdf401ac46029cb46beeeceeac7d975fc0","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.5.tgz","fileCount":44,"integrity":"sha512-FQqwZsf9Sc1BS82yHijxDxmYcZDQ0GEsqvtQl1vKNd3wW3/tOM8ex8WemOEY6tmRNkrZHW6zIf409p4EImHWXA==","signatures":[{"sig":"MEQCICydMo5qWRfLIRJxFT/Z5SbeczuJ/7WDu61gZXaFQGyuAiBVATLPEMHhBxJND+pIYdgNSDctoAnn+6pLadZ1508hsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9844568},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/305212103ff50858a9aecc15dc4045b8/c9up-blackhole-0.1.5.tgz","_integrity":"sha512-FQqwZsf9Sc1BS82yHijxDxmYcZDQ0GEsqvtQl1vKNd3wW3/tOM8ex8WemOEY6tmRNkrZHW6zIf409p4EImHWXA==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.5_1781519003429_0.822503338298491","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@c9up/blackhole","version":"0.1.6","license":"MIT","_id":"@c9up/blackhole@0.1.6","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"6f0fa3018bbf2ecced9b6d836e7c42cc3fc11e87","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.6.tgz","fileCount":44,"integrity":"sha512-kchCF9p85j6xrJG+ddIYNC7WsYOEU7sAN/PlBHk4iP/GWHwmS70tWBqlvsynuLaxK7KDJcaMNCBLs6EkaHzqww==","signatures":[{"sig":"MEUCIQDwN6bVzp8WiKfihOUNqLlDX5LTDywcVD+hw2JDAyvpBAIgJTKkdUhyQFCE82PuZ/WSxXCn/z77q15CUA5OYlkJGxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9846326},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/6eb96442b642baa74aff806468a06d53/c9up-blackhole-0.1.6.tgz","_integrity":"sha512-kchCF9p85j6xrJG+ddIYNC7WsYOEU7sAN/PlBHk4iP/GWHwmS70tWBqlvsynuLaxK7KDJcaMNCBLs6EkaHzqww==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.6_1781805026718_0.3708606021595544","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@c9up/blackhole","version":"0.1.7","license":"MIT","_id":"@c9up/blackhole@0.1.7","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"13d7d02550e82b0b51139e8c20fe4e4f4cce44c1","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.7.tgz","fileCount":44,"integrity":"sha512-WuLmwt9Y96BVES2+DT+glOwIHNW0c1ePIHTI6C0VbTfWIftH+WaND5qI3fNykVkXlwhKulXuSX5ii97EYq2e2g==","signatures":[{"sig":"MEQCIE4vTzGBePpK9Q8yhVRye8Qo99RRafKfU/al9GUc7cl/AiBo/xLqwxPuMrJXD3bARu1X6lcaTVIPU8IJfYOBQs28Yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9847582},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/9108b9c810c4f0a335aaf6f4af681097/c9up-blackhole-0.1.7.tgz","_integrity":"sha512-WuLmwt9Y96BVES2+DT+glOwIHNW0c1ePIHTI6C0VbTfWIftH+WaND5qI3fNykVkXlwhKulXuSX5ii97EYq2e2g==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.7_1781816245903_0.6555941132092313","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@c9up/blackhole","version":"0.1.8","license":"MIT","_id":"@c9up/blackhole@0.1.8","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"c967b6fa48739c4ed2199961cc6ac895a128b28d","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.8.tgz","fileCount":44,"integrity":"sha512-HI1xZKnu7rPhm7yuRs7qaJc3rNYWhQr32IH5xxMMbvDHmHbVRt0G1tWPlKA5iRKx7+Cfz+2z/SeMSaGfau1S6Q==","signatures":[{"sig":"MEQCICL3iDip+/MXnu8V/E1Q3Je4MFtNIWnsXHIZe6VcF+K/AiATI673rEThbVaUAw/caTrfUWg97/Emtn6ux1phefpRPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9974291},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/029011ad87059982d8090a71261dad4e/c9up-blackhole-0.1.8.tgz","_integrity":"sha512-HI1xZKnu7rPhm7yuRs7qaJc3rNYWhQr32IH5xxMMbvDHmHbVRt0G1tWPlKA5iRKx7+Cfz+2z/SeMSaGfau1S6Q==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.8_1782589480885_0.9729957720703637","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@c9up/blackhole","version":"0.1.9","license":"MIT","_id":"@c9up/blackhole@0.1.9","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"a3b14480bbacdf4e8bd18963489bafc02a1cece1","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.9.tgz","fileCount":44,"integrity":"sha512-C7yrEjYL2Bf5J9vyaOr9IEbQ1FMt+HI+48sUQH9VDhxdnbV2bU2fXJhyvNucccecfiUWtfI4txRXHCm0t1mPgg==","signatures":[{"sig":"MEUCIQC8XcMuCYP2HKkZPB3R0uyNTd6Qx93yd67uuFZw1q8g6AIgfzkcbQTEC0mvIukBCihyaTyla6C1SkXR/zM+FYBQG54=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9969026},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/d7112b2b7fb069566954ac3ac4db6b94/c9up-blackhole-0.1.9.tgz","_integrity":"sha512-C7yrEjYL2Bf5J9vyaOr9IEbQ1FMt+HI+48sUQH9VDhxdnbV2bU2fXJhyvNucccecfiUWtfI4txRXHCm0t1mPgg==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.9_1783157062519_0.710222880258015","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@c9up/blackhole","version":"0.1.10","license":"MIT","_id":"@c9up/blackhole@0.1.10","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"90581489c1c8e1b0fc44e28a40cd1d419839e169","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.10.tgz","fileCount":44,"integrity":"sha512-u7yBhBzPwxcxvgvQraMI6A4MKcTMhFmfXvNkCKhZZd1nfQsUEYTLbTU/zHrCpyzpHKcLE4V7fCkevv6v34cjTA==","signatures":[{"sig":"MEQCIAmU1IQNACloBhFm6MVheLYu0/+O+LpQn/7iloVsQ6OOAiBjNftp5G0C/kknq4rPOpMEjXBCDilrooexu4UNov0lag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10482584},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/0a1fd77fb21c9e1a72e7cd68da3ca2ea/c9up-blackhole-0.1.10.tgz","_integrity":"sha512-u7yBhBzPwxcxvgvQraMI6A4MKcTMhFmfXvNkCKhZZd1nfQsUEYTLbTU/zHrCpyzpHKcLE4V7fCkevv6v34cjTA==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.10_1783961942723_0.763860418494223","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@c9up/blackhole","version":"0.1.11","license":"MIT","_id":"@c9up/blackhole@0.1.11","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"82ad703b897d3a43eae2be7fcf69248e638c1b78","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.11.tgz","fileCount":44,"integrity":"sha512-Y7wRr8wpp+FVbh4BR8cojTDbs5UEh8PkekApnKk89ZuebgZ3nZ9erZWvTymPFo9+EDESkg32BVyTaXZHH57ghA==","signatures":[{"sig":"MEYCIQCV9QTh89gaf1IkiDFtDq8rB9AJRzDemMtIEBSC7e96JQIhAIqlMc561k/HW4WQl9cOB8RtC49oxp92DcfEfljxU9mM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10527499},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/0c4c3c4e458c1a4bbe71273009730a48/c9up-blackhole-0.1.11.tgz","_integrity":"sha512-Y7wRr8wpp+FVbh4BR8cojTDbs5UEh8PkekApnKk89ZuebgZ3nZ9erZWvTymPFo9+EDESkg32BVyTaXZHH57ghA==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.11_1787640955781_0.9030414545562162","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@c9up/blackhole","version":"0.1.12","license":"MIT","_id":"@c9up/blackhole@0.1.12","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"f312112f50bd15fe2b69658daefac39db608b596","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.12.tgz","fileCount":44,"integrity":"sha512-df98so7bzwcn4cJ/vuDj5U7lR7soRUf0ISJCapSbcyAGkTkvEl7NgxiQmtR0pf+Y045U5htxnlQnbeBnq8g99g==","signatures":[{"sig":"MEYCIQCek9WegsoHsuoJDABEsNtlZ6NFHLeT6HqwnwUinsTJkwIhANA2irrZgUo27/Sc2op4cNQIrhXiXRiIXAfrkWgHSCsB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10533179},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/7e34887e8ce3f8f7a9657a58a1e76792/c9up-blackhole-0.1.12.tgz","_integrity":"sha512-df98so7bzwcn4cJ/vuDj5U7lR7soRUf0ISJCapSbcyAGkTkvEl7NgxiQmtR0pf+Y045U5htxnlQnbeBnq8g99g==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.1.10"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.12_1787842611595_0.7945032410504973","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@c9up/blackhole","version":"0.1.13","license":"MIT","_id":"@c9up/blackhole@0.1.13","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"1931f4014c422c56796f34a67b2c299747e2e681","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.13.tgz","fileCount":44,"integrity":"sha512-Yb76gd19dZ1ZSZ665Gr4QjYhwosZ93fANhpGGeaZimucLw/R/agnl7ISeq6BQKP7IKhJj+zDYaEuiTJMK0drBQ==","signatures":[{"sig":"MEUCIQDx3+Hrx3dYKFAXI5AJQOzPSZ6hbgLTo+lKmRnCxwftbgIgXQPvWonBcbVFVTj4C+31SIf9vXhNw/RyAmXsUWxGpyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10533178},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/dfa73ff634c7dda5009e809113817fc4/c9up-blackhole-0.1.13.tgz","_integrity":"sha512-Yb76gd19dZ1ZSZ665Gr4QjYhwosZ93fANhpGGeaZimucLw/R/agnl7ISeq6BQKP7IKhJj+zDYaEuiTJMK0drBQ==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.13_1787902032466_0.3215548553075036","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@c9up/blackhole","version":"0.1.14","license":"MIT","_id":"@c9up/blackhole@0.1.14","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"67500d4b2e2572f1dc4fb79e2c07551433ec0f63","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.14.tgz","fileCount":49,"integrity":"sha512-2ZYj45wIQl4WiheiOv4CI18Sh92+yfk/ATGW1D/4eiF3hquh1yFKteNiWrZuD3XuCHMRofKZ4ZEE8bLnGI6zcg==","signatures":[{"sig":"MEYCIQD2paKvnpPiSujtvRPZZck/5rWXgSY3OhyxmQ28/+PIggIhAOo/WDuTT6X7xzNMo/XT+KJavpbaVWuxY6YabI+4Ybbe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10540885},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/be2006ddc3c836ccba9e2fe757543bd2/c9up-blackhole-0.1.14.tgz","_integrity":"sha512-2ZYj45wIQl4WiheiOv4CI18Sh92+yfk/ATGW1D/4eiF3hquh1yFKteNiWrZuD3XuCHMRofKZ4ZEE8bLnGI6zcg==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.14_1787904584087_0.7872750483917679","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@c9up/blackhole","version":"0.1.15","license":"MIT","_id":"@c9up/blackhole@0.1.15","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"ef90b945f82d958494806934c7f695ffe0bc46c8","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.15.tgz","fileCount":56,"integrity":"sha512-+YjBTVAkAAux8td1zt1rp18+CYN9J0yuKN7X+wv0jbsFUDC/tleqgXrIqR6ZCzXF/sTQe85YFYnEN0Htu2bR4w==","signatures":[{"sig":"MEQCIHvWlpYF6rCKj3ocoFZvxYO8yYhyXLkzIiObpto+9AFeAiBISy3nqr2aCZqT/PcUlIfIs/B5DgRcokRlwoYej7PP+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10553600},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.15.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/bab4d5b6f815fb681b6da863a1083a5b/c9up-blackhole-0.1.15.tgz","_integrity":"sha512-+YjBTVAkAAux8td1zt1rp18+CYN9J0yuKN7X+wv0jbsFUDC/tleqgXrIqR6ZCzXF/sTQe85YFYnEN0Htu2bR4w==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.15_1787936590581_0.10970878895057923","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@c9up/blackhole","version":"0.1.16","license":"MIT","_id":"@c9up/blackhole@0.1.16","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"ecde15f3d1c5e1ff33df6ce503943a7e9b3d2d81","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.16.tgz","fileCount":71,"integrity":"sha512-BM44upnW4ViVqOyGt/wcyvfeMcvFYBEM/g7ftsuLnYB5JWw6M5U6+f27/8B0LhqBffLs/tZOpb4IjdrBK4ph/A==","signatures":[{"sig":"MEYCIQDGB+pCSsA9qOJvqe2mmiHeCbIAfT66v6UFbm3Ec90G1QIhAITPUAkAorz7ua7lDaRABZlibY47l+6eEsC/WX9AvWNa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10597791},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.16.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/4582d8b4aa8b348fba8da4d024fb9ced/c9up-blackhole-0.1.16.tgz","_integrity":"sha512-BM44upnW4ViVqOyGt/wcyvfeMcvFYBEM/g7ftsuLnYB5JWw6M5U6+f27/8B0LhqBffLs/tZOpb4IjdrBK4ph/A==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.16_1788167728369_0.5358255687404667","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@c9up/blackhole","version":"0.1.17","license":"MIT","_id":"@c9up/blackhole@0.1.17","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"c549f7200c801672b4acd94837d3506f18f5ff38","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.17.tgz","fileCount":71,"integrity":"sha512-NzPT75YRazIMsS8zFBJTWxryESKJ2xmsvQ4M0Lq3QdYAmIMvBTXKJ3y2Sz0qjsds9ypb2K6an0TxBX51335Wxg==","signatures":[{"sig":"MEYCIQCf2ZGbyG6bhp1eh7Xct+QFkPZshNuG8u4Dbu+1bNL5/wIhAOI9G/rWPTT/Hoo2zTG0OVGQIVeYaXsqjKqFIZ/vdDWg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10598207},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.17.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/6c559de84bf67e1932b7aaf0fe56e9e3/c9up-blackhole-0.1.17.tgz","_integrity":"sha512-NzPT75YRazIMsS8zFBJTWxryESKJ2xmsvQ4M0Lq3QdYAmIMvBTXKJ3y2Sz0qjsds9ypb2K6an0TxBX51335Wxg==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.17_1788192618979_0.412487200469309","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@c9up/blackhole","version":"0.1.18","license":"MIT","_id":"@c9up/blackhole@0.1.18","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"4741c968b4d6aba6d0e80d2e4a80952ff5844672","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.18.tgz","fileCount":71,"integrity":"sha512-+Bq6pMKV6ONA4Sj+xSzhUGaN1tErJgygDGuWAB0/6REBjPYH0YjCZa8xnYNgRsn0I2mKLbzScusbcnMgDcbJog==","signatures":[{"sig":"MEYCIQCmTGuj2XqAU5tTGdS0r7k3TSBqozm2kmobBeQJrEqkUgIhAKVxQRtOH5mkzK4JRyjVtgDyKWyH1kVYF9/qXVmywqQN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11294192},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.18.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/6ce10409b616b9ae1f53e5e891b19335/c9up-blackhole-0.1.18.tgz","_integrity":"sha512-+Bq6pMKV6ONA4Sj+xSzhUGaN1tErJgygDGuWAB0/6REBjPYH0YjCZa8xnYNgRsn0I2mKLbzScusbcnMgDcbJog==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.18_1788535899768_0.6205196255796372","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@c9up/blackhole","version":"0.1.19","license":"MIT","_id":"@c9up/blackhole@0.1.19","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"dabc5c0d961706e647bc294f365139a8a3a4e4ac","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.19.tgz","fileCount":76,"integrity":"sha512-wsLPDjjF/3DCC+WGsYt3g31neNf3E2MIuh+E+RsdH8YYneGmBGSLdS8A2Td6i6vDLQPG7pLe2u/Oj7QnjkBS3g==","signatures":[{"sig":"MEYCIQDjXHL+TJ4nfksWARywV22I5gdrPeKDqAhCa7SdhJFvlgIhAJhue3RqOst44OuExM3l4MkFfiDXNFKH9XuhY5bEsolW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11310993},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.19.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/31d60e1b8fdf409126877102ccfa31de/c9up-blackhole-0.1.19.tgz","_integrity":"sha512-wsLPDjjF/3DCC+WGsYt3g31neNf3E2MIuh+E+RsdH8YYneGmBGSLdS8A2Td6i6vDLQPG7pLe2u/Oj7QnjkBS3g==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10","@vitest/coverage-v8":"^4.1.2"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.19_1788680998077_0.3329145535872571","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@c9up/blackhole","version":"0.1.20","license":"MIT","_id":"@c9up/blackhole@0.1.20","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"bba6869a10c830c4c70da23631fd05ee4a545d28","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.20.tgz","fileCount":86,"integrity":"sha512-kp05v+yyPSvbOQyd/HfobTcy8xJ5uE4vAtJosHCEgJCu+0gSpYxd8wPx6XLxuLh/ea/2NMr/j8L32FYbcTgrug==","signatures":[{"sig":"MEYCIQC1qmYjqL+qvoIeJ07yocC8ell6Juh1u9Uf9eAme/Z6oAIhAKkr7YwPmAsoW/BpydX1j7w0/NzJc8zQ6kZxglPeif0p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11330300},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.20.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/98f8076197f3c5d116f8276ab9452d60/c9up-blackhole-0.1.20.tgz","_integrity":"sha512-kp05v+yyPSvbOQyd/HfobTcy8xJ5uE4vAtJosHCEgJCu+0gSpYxd8wPx6XLxuLh/ea/2NMr/j8L32FYbcTgrug==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^22.19.15","@biomejs/biome":"^2.4.10","@vitest/coverage-v8":"^4.1.2"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.20_1788707839659_0.06595096988586024","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@c9up/blackhole","version":"0.1.21","license":"MIT","_id":"@c9up/blackhole@0.1.21","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"3c776ee4378733586e6057b728a4be790778cbd7","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.21.tgz","fileCount":86,"integrity":"sha512-QE1zkRLy3dxmRvC1TDx8ziw4GLtxdBVbgBkYog3tLFReMzeVywRcHu1I9G4FRXpWsuzRgggfKpZoCm7Gpxc6uw==","signatures":[{"sig":"MEUCIALFch9rL6DHgkAN4q3EcyRSVzMiJdHg5OyMtY0ixCKcAiEAmtKS1dtbkUuw/qwm2v0Y343Ncf12T/mY7RCH40M/4os=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDmALTPqASJWn7WrGAjn00S3vJZNo03ubNmM72JFAPORQIhALzvgRIA70ObXqI7VSV45gI9p0YouHGcl3LYCEiiEXK8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11331263},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.21.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"_resolved":"/tmp/096bbf57970bb2fbbaf40542696184e3/c9up-blackhole-0.1.21.tgz","_integrity":"sha512-QE1zkRLy3dxmRvC1TDx8ziw4GLtxdBVbgBkYog3tLFReMzeVywRcHu1I9G4FRXpWsuzRgggfKpZoCm7Gpxc6uw==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"10.9.8","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.11","typescript":"^6.0.3","@types/node":"^22.20.1","@biomejs/biome":"^2.5.12","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0 || ^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.21_1789809621593_0.5618259028242536","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@c9up/blackhole","version":"0.1.22","license":"MIT","_id":"@c9up/blackhole@0.1.22","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"f69b5fd439eeba114f83793f7de3933d92bdc0f3","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.22.tgz","fileCount":86,"integrity":"sha512-vxoZS3u/qjDARLAYRIEQTfCFssy+hzRp///CPGQR550i99z3OhUMvISvZjV99CBiQlzZ1yF938l7wH9i7y7+Sg==","signatures":[{"sig":"MEUCIQDLCd3b49tJAwAQ3wkCfxmSAjXCcl5YIjiF+uTxbz7VUQIgRBCkGxeu3EoPLZZBjF6chbx9BBSezBwH9g3F84LKmQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDj3tdbHgq9/bi623rVFzdo82K0AuV3d2/u1AJ94nqOwIgW69BnFK/QAK0Y8UghsIj2tNb1FhtRDGVg8O2nNUrrCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10072368},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.22.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"//engines":"Node 24, not 22, because AsyncLocalStorage sits on the request hot path — the container resolves through it, HttpContext is it, and the emitter reads it on every event. Node 24 backs it with AsyncContextFrame by default, and measured on that exact pattern (one context per request, six async boundaries, several reads) it costs 0.61 us per request instead of 1.55 us: 2.5x, on every request, for free. Before 24 the same mechanism existed only behind an experimental flag, and a framework cannot base its performance on a flag the application has to remember to pass. This is NOT 'track the current LTS' — security fixes still land in 22 until 2027, npm 11 is irrelevant under pnpm, and node:sqlite is not what atlas uses.","_resolved":"/tmp/c0e8d6bc1677d789ce3c4efca6444ed6/c9up-blackhole-0.1.22.tgz","_integrity":"sha512-vxoZS3u/qjDARLAYRIEQTfCFssy+hzRp///CPGQR550i99z3OhUMvISvZjV99CBiQlzZ1yF938l7wH9i7y7+Sg==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"11.19.0","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.11","typescript":"^6.0.3","@types/node":"^22.20.1","@biomejs/biome":"^2.5.12","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"@c9up/ream":"^0.2.0","@c9up/quasar":"^0.1.0 || ^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.22_1790096416072_0.35666460662771193","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@c9up/blackhole","version":"0.1.23","license":"MIT","_id":"@c9up/blackhole@0.1.23","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"homepage":"https://github.com/C9up/blackhole#readme","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"b6f2d2ce935322d21a7ee9c966918a27e506f495","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.23.tgz","fileCount":92,"integrity":"sha512-z41J7e5t43DxX+DGn5MvMru5WBOlQb+92jmS1nERC95LzTjMeyLht1+0yXKJjOn0lu8K4M9Jcdtp4m4tcatPvg==","signatures":[{"sig":"MEUCIAG563YC/D5tXnV5gnhmZ3gR8Y0SzgO3O+r1n5cCQHzaAiEAkUsmDJ4stPiMNgZwxqLXCFTGzVIXpYrbWIXAV6vJobI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF8ha7omQwbbhWrt+Rrg6W2pNuwt2VhUfY0JDiy26wlyAiAL5U50gfwdae1ps27UWHb16Ghu+4Hd/fSkkVE4ty2xFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10074477},"main":"./dist/index.js","type":"module","_from":"file:c9up-blackhole-0.1.23.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"}},"scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"//engines":"Node 24, not 22, because AsyncLocalStorage sits on the request hot path — the container resolves through it, HttpContext is it, and the emitter reads it on every event. Node 24 backs it with AsyncContextFrame by default, and measured on that exact pattern (one context per request, six async boundaries, several reads) it costs 0.61 us per request instead of 1.55 us: 2.5x, on every request, for free. Before 24 the same mechanism existed only behind an experimental flag, and a framework cannot base its performance on a flag the application has to remember to pass. This is NOT 'track the current LTS' — security fixes still land in 22 until 2027, npm 11 is irrelevant under pnpm, and node:sqlite is not what atlas uses.","_resolved":"/tmp/c740ccdee380bc05c9326747dc105c7c/c9up-blackhole-0.1.23.tgz","_integrity":"sha512-z41J7e5t43DxX+DGn5MvMru5WBOlQb+92jmS1nERC95LzTjMeyLht1+0yXKJjOn0lu8K4M9Jcdtp4m4tcatPvg==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"11.19.0","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.11","typescript":"^6.0.3","@types/node":"^22.20.1","@biomejs/biome":"^2.5.12","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"@c9up/ream":"^0.2.26","@c9up/quasar":"^0.1.0 || ^0.2.0"},"peerDependenciesMeta":{"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/blackhole_0.1.23_1790184613047_0.522444080958143","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"_id":"@c9up/blackhole@0.1.24","bugs":{"url":"https://github.com/C9up/blackhole/issues"},"dist":{"shasum":"90ef30d991b332652ea380f4695815d8a2ec1f0f","tarball":"https://registry.npmjs.org/@c9up/blackhole/-/blackhole-0.1.24.tgz","fileCount":102,"integrity":"sha512-0gNKogUdVkVy2Ef5XRUUpbYy2WLVAY4AIzm4RHXntJu68xNOa8HrhilAyZrEjYpWzYQANYv8z30kNflCeLuVrQ==","signatures":[{"sig":"MEYCIQCnfI+Ang2vWQQhcsl05lmTAQ1fzXqiMmcsXK6uLmd+ogIhAP7FMK9r3LTPnZr+eNycL1HhJ1xG9ZDC50doQGI0KePY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDQKEglgehviDncvNcVBsHs3/SmR3LCn+00uXpJhLKyRAIgGj5NA/A7/O5TQFp2wOHZOkewgQbZx/iCbSJZIUIItOQ="}],"unpackedSize":10154424},"main":"./dist/index.js","name":"@c9up/blackhole","type":"module","_from":"file:c9up-blackhole-0.1.24.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./hono":{"types":"./dist/hono.d.ts","import":"./dist/hono.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"},"./express":{"types":"./dist/express.d.ts","import":"./dist/express.js"},"./fastify":{"types":"./dist/fastify.d.ts","import":"./dist/fastify.js"},"./provider":{"types":"./dist/BlackholeProvider.d.ts","import":"./dist/BlackholeProvider.js"},"./configure":{"types":"./dist/configure.d.ts","import":"./dist/configure.js"},"./middleware":{"types":"./dist/middleware.d.ts","import":"./dist/middleware.js"},"./server_middleware":{"types":"./dist/server_middleware.d.ts","import":"./dist/server_middleware.js"}},"license":"MIT","scripts":{"lint":"biome check src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","test:rust":"cargo test -p blackhole-engine","typecheck":"tsc --noEmit","build:napi":"pnpm build:rust && pnpm build:napi-types && node scripts/copy-napi.mjs","build:rust":"cargo build --release -p blackhole-engine-napi","test:coverage":"vitest run --coverage","build:napi-types":"node scripts/build-napi-types.mjs"},"version":"0.1.24","_npmUser":{"name":"kaen25","email":"kaen25@gmail.com"},"homepage":"https://github.com/C9up/blackhole#readme","//engines":"Node 24, not 22, because AsyncLocalStorage sits on the request hot path — the container resolves through it, HttpContext is it, and the emitter reads it on every event. Node 24 backs it with AsyncContextFrame by default, and measured on that exact pattern (one context per request, six async boundaries, several reads) it costs 0.61 us per request instead of 1.55 us: 2.5x, on every request, for free. Before 24 the same mechanism existed only behind an experimental flag, and a framework cannot base its performance on a flag the application has to remember to pass. This is NOT 'track the current LTS' — security fixes still land in 22 until 2027, npm 11 is irrelevant under pnpm, and node:sqlite is not what atlas uses.","_resolved":"/tmp/8004328af67af5b3253912d8957a3a4b/c9up-blackhole-0.1.24.tgz","_integrity":"sha512-0gNKogUdVkVy2Ef5XRUUpbYy2WLVAY4AIzm4RHXntJu68xNOa8HrhilAyZrEjYpWzYQANYv8z30kNflCeLuVrQ==","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"_npmVersion":"11.19.0","description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","directories":{},"maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.10","vitest":"4.1.11","typescript":"^6.0.3","@types/node":"^22.20.1","@biomejs/biome":"^2.5.12","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"hono":"^4.0.0","@c9up/ream":"^0.2.26","@c9up/quasar":"^0.1.0 || ^0.2.0"},"peerDependenciesMeta":{"hono":{"optional":true},"@c9up/ream":{"optional":true},"@c9up/quasar":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/blackhole_0.1.24_1790851996350_0.9349137388289481"}}},"time":{"created":"2026-06-08T10:30:36.464Z","modified":"2026-10-01T10:53:16.713Z","0.1.3":"2026-06-08T10:30:36.926Z","0.1.4":"2026-06-08T13:38:52.859Z","0.1.5":"2026-06-15T10:23:23.671Z","0.1.6":"2026-06-18T17:50:26.957Z","0.1.7":"2026-06-18T20:57:26.171Z","0.1.8":"2026-06-27T19:44:41.103Z","0.1.9":"2026-07-04T09:24:22.771Z","0.1.10":"2026-07-13T16:59:03.035Z","0.1.11":"2026-08-25T06:55:56.044Z","0.1.12":"2026-08-27T14:56:51.825Z","0.1.13":"2026-08-28T07:27:12.701Z","0.1.14":"2026-08-28T08:09:44.345Z","0.1.15":"2026-08-28T17:03:10.847Z","0.1.16":"2026-08-31T09:15:28.582Z","0.1.17":"2026-08-31T16:10:19.258Z","0.1.18":"2026-09-04T15:31:39.992Z","0.1.19":"2026-09-06T07:49:58.302Z","0.1.20":"2026-09-06T15:17:20.088Z","0.1.21":"2026-09-19T09:20:21.782Z","0.1.22":"2026-09-22T17:00:16.254Z","0.1.23":"2026-09-23T17:30:13.218Z","0.1.24":"2026-10-01T10:53:16.519Z"},"bugs":{"url":"https://github.com/C9up/blackhole/issues"},"license":"MIT","homepage":"https://github.com/C9up/blackhole#readme","repository":{"url":"git+https://github.com/C9up/blackhole.git","type":"git"},"description":"Blackhole — Rust-native security filter (XSS, CSRF, rate-limiting) for any Node.js framework","maintainers":[{"name":"kaen25","email":"kaen25@gmail.com"}],"readme":"# @c9up/blackhole\n\n> Rust-native security filter (XSS, CSRF, rate-limiting, CORS, security headers) for any Node.js framework.\n\nPart of **[Ream](https://github.com/C9up/ream)** — a Rust-powered, AdonisJS-compatible Node.js framework. Independent, publishable package.\n\n## Installation\n\n```bash\npnpm add @c9up/blackhole\nream configure @c9up/blackhole\n```\n\n## Usage\n\n**Ream** — register the middleware:\n\n```ts\n// start/kernel.ts\nrouter.use([() => import('@c9up/blackhole/middleware')])\n```\n\n**Express / Fastify** — standalone adapters:\n\n```ts\nimport { blackholeExpress } from '@c9up/blackhole/express'\n\n// `secret` is REQUIRED when CSRF is on (signed double-submit, fail-closed).\n// The Ream provider defaults it from APP_KEY; the standalone adapters do not,\n// so pass your app key explicitly here.\napp.use(blackholeExpress({\n  secret: process.env.APP_KEY,\n  csrf: true,\n  rateLimit: { max: 100, windowSeconds: 60 },\n}))\n```\n\n## Rate limiting\n\nWithout a store, counting happens in the Rust core — one process, so N\ninstances each allow the limit. Name a store and the count is shared:\n\n```ts\n// config/blackhole.ts\nimport { defineConfig, stores } from '@c9up/blackhole'\nimport env from '#start/env'\n\nexport default defineConfig({\n  rateLimit: {\n    max: 100,\n    windowSeconds: 60,\n    default: env.get('RATE_LIMIT_STORE'),\n    stores: {\n      memory: stores.memory(),\n      redis:  stores.redis({ connection: 'main' }),\n    },\n  },\n})\n```\n\n| Store | Counts in | Reach |\n| --- | --- | --- |\n| *(none)* | the Rust core | one process |\n| `stores.memory()` | this process's memory | one process |\n| `stores.redis({ connection })` | Redis | every process |\n\n`stores.redis` takes a `@c9up/quasar` connection name, resolved at first use so\nblackhole never imports quasar, which stays an optional peer. Pass a client (or\na function answering one) to use any other ioredis-shaped client.\n\nThe Redis counter sets the window's expiry once, on the first hit — refreshing\nit on every request would push the window forward for ever, and a client\nhitting steadily would never be limited.\n\nOnly the selected store is built, and a `default` naming nothing throws: an\napplication that meant to share its counter and silently got the in-process one\nwould allow N times its limit without a sign.\n\n## Entry points\n\n- `@c9up/blackhole` — main API\n- `@c9up/blackhole/middleware` — Ream middleware\n- `@c9up/blackhole/provider` — Ream IoC provider\n- `@c9up/blackhole/config` — `defineConfig()` helper\n- `stores` — rate-limit store factories, exported from the main entry\n- `@c9up/blackhole/express` — Express adapter\n- `@c9up/blackhole/fastify` — Fastify adapter\n\n## License\n\nMIT\n","readmeFilename":"README.md"}