{"_id":"@absolutejs/audit-elysia","_rev":"11-ee7e9aed0513dbd969506606d3cc3de0","name":"@absolutejs/audit-elysia","dist-tags":{"latest":"0.2.1"},"versions":{"0.0.1":{"name":"@absolutejs/audit-elysia","version":"0.0.1","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6cfe9eaae7b61af7db4a6e42bd2c0d29304cca70","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.0.1.tgz","fileCount":6,"integrity":"sha512-6MVXcVF5SWsge7IrMnCimeMMsqRJgKRb45hBIYZq1TLoTt7pvHo2iO34v4K06ypowvIMhfFt+g97mFoz89VQFQ==","signatures":[{"sig":"MEYCIQCLuXSzxlWUosyQTwo709f3TUkpwEtzpFbjcP/8qxPeIwIhAKdyumXlqXhfdNfYF/YmrN1j8MUbN9NeRfvyTeAwGrv9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29752},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6cfe9eaae7b61af7db4a6e42bd2c0d29304cca70","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external elysia && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-6MVXcVF5SWsge7IrMnCimeMMsqRJgKRb45hBIYZq1TLoTt7pvHo2iO34v4K06ypowvIMhfFt+g97mFoz89VQFQ==","repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"^1.4.26","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"^0.0.1"},"peerDependencies":{"elysia":">= 1.4.0","@absolutejs/audit":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.0.1_1780165496732_0.6011379634432743","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/audit-elysia","version":"0.0.2","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"68ccf7177edcdd2a14bcaae99aaecdcefffc7de0","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.0.2.tgz","fileCount":6,"integrity":"sha512-JrvJ7WpKCzsX1dogOYCqMYfmup/fj3gLz2eioFoxmLBKQ+7IMeY1zjW2E5yA7YlYHfKEWBG0za+u1PsuosGLpA==","signatures":[{"sig":"MEUCIHUvHS3ATQAtCCxryK8rN2/fLu55BQ+aHU0bZEi93ppAAiEA1LVpA4+9IpxhkbKAYkxk92fYoqe4IC5P8rBrE4UCJMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28137},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"68ccf7177edcdd2a14bcaae99aaecdcefffc7de0","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-JrvJ7WpKCzsX1dogOYCqMYfmup/fj3gLz2eioFoxmLBKQ+7IMeY1zjW2E5yA7YlYHfKEWBG0za+u1PsuosGLpA==","repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@absolutejs/telemetry":"^0.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"^1.4.26","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"^0.0.1","@absolutejs/telemetry":"^0.0.3"},"peerDependencies":{"elysia":">= 1.4.0","@absolutejs/audit":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.0.2_1780170964544_0.8461905684530056","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/audit-elysia","version":"0.0.3","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"8b28152a1cf6de9db014b14b597825dcf767baa5","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.0.3.tgz","fileCount":11,"integrity":"sha512-eegM3j5XsCoEvd9mZJPBsgQszHNKXOLTP+LJL9qX6Vhgmcpd3FdOuEJ+cF1d6dGtrsyXGCEj7umH4nMPTQ31fA==","signatures":[{"sig":"MEQCIDOhY0LiJLHKLtoeeMe/QxPkxIgDjYdtVmAIudkMQAAwAiA9LuAKoW5h9JLXaVxJ1uKgSmq5guwnoB6xlHT5hvZirQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1112803},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"8b28152a1cf6de9db014b14b597825dcf767baa5","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","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-eegM3j5XsCoEvd9mZJPBsgQszHNKXOLTP+LJL9qX6Vhgmcpd3FdOuEJ+cF1d6dGtrsyXGCEj7umH4nMPTQ31fA==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0","@absolutejs/telemetry":"^0.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"^1.4.26","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"^0.0.1","@absolutejs/telemetry":"^0.0.3"},"peerDependencies":{"elysia":">= 1.4.0","@absolutejs/audit":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.0.3_1783965322164_0.7355269096111727","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@absolutejs/audit-elysia","version":"0.0.4","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.0.4","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"f7edc477ccbf25d5b81603f4394bb1cc9a46f213","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.0.4.tgz","fileCount":11,"integrity":"sha512-hNH687P0n9Me3URl9aXv38yoiGp9wsbVXQfJk1nTTChRz70GWnjkLqLC1+//99MuyAdzbYIezLRbzgbj+jOLlw==","signatures":[{"sig":"MEQCIAbRdomaoZLv+N8swtHeff4wJYkqJe6YRf1/FlFb8ifvAiAzIWrsYpl4bIzNCLSN9ldTr0eKSBkXfFHE7q81WgZaWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1112803},"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":"ef58b5c9ddcdd253afbb6b3be62dac3c9f3f75aa","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":1},"repository":{"url":"git+https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.9.2","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","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":{"elysia":"^1.4.26","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"^0.0.1","@absolutejs/telemetry":"^0.1.1"},"peerDependencies":{"elysia":">= 1.4.0","@absolutejs/audit":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.0.4_1784008747288_0.986213961656955","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@absolutejs/audit-elysia","version":"0.0.5","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.0.5","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"3c0d858be7aff51a55fbf19711ca6031e2eed309","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.0.5.tgz","fileCount":11,"integrity":"sha512-7DwMNjTmr5IIq2JH84Z9F9FcYZFjiZPw2YlSO6awU9XIiAWZ7xmIj5/pd8gss0qjhAKFeRDMRMMwGJzgjPU+pw==","signatures":[{"sig":"MEQCIGEKud7AVel5Po3sPYv/MlbmN/qEK1/9zLSRx3TZcv9UAiAupZ6cfhHqQkSQJK5LIxPh+fuVerHLed5GX/uWiqf0vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1114309},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3c0d858be7aff51a55fbf19711ca6031e2eed309","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","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-7DwMNjTmr5IIq2JH84Z9F9FcYZFjiZPw2YlSO6awU9XIiAWZ7xmIj5/pd8gss0qjhAKFeRDMRMMwGJzgjPU+pw==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","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":{"elysia":"^1.4.26","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"^0.0.1","@absolutejs/telemetry":"^0.1.1"},"peerDependencies":{"elysia":">= 1.4.0","@absolutejs/audit":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.0.5_1784011782313_0.7152029525371475","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/audit-elysia","version":"0.1.0","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"94645ee5f04e14d47a75367c3bc8685db298f0c2","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.1.0.tgz","fileCount":11,"integrity":"sha512-NKT27kP1MNuweBnQfZmxNPqqWWgFv0eVqtDiRescfaOJGSPYOObAGPDWU2wMxKchk/avF3M/RRo2LeU2WLQ/fg==","signatures":[{"sig":"MEUCIQC9isLQot63kEFRoqc63cnND/c9lnXIqjNGJY/Aixs8owIgXUPgQ9hGVdBOWc3Za/VpCI21Vi93lj7fSX/6rwgcSdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880704},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"94645ee5f04e14d47a75367c3bc8685db298f0c2","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","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-NKT27kP1MNuweBnQfZmxNPqqWWgFv0eVqtDiRescfaOJGSPYOObAGPDWU2wMxKchk/avF3M/RRo2LeU2WLQ/fg==","absolutejs":{"runtimePeers":{"elysia":{"range":">=1.4.29 <2","tested":"1.4.29","buildExternals":["elysia"],"artifactImports":["elysia"]},"@absolutejs/audit":{"range":">=0.2.1 <0.3.0","tested":"0.2.1","buildExternals":["@absolutejs/audit"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.1","@absolutejs/telemetry":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"1.4.29","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"0.2.1","@absolutejs/telemetry":"^0.1.1"},"peerDependencies":{"elysia":">=1.4.29 <2","@absolutejs/audit":">=0.2.1 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.1.0_1784914968665_0.05678634161062068","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/audit-elysia","version":"0.1.1","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"d7a26c490f0095b33e1111f390409b447e38d7da","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.1.1.tgz","fileCount":11,"integrity":"sha512-xxC+2ikQx7MqxetKdn1iLF9A6OzzD9i+D0TZmYfqf27pITvNcxQqFGBiAjZrUqwKD7eaFLkGkkteeR2xg0uaYQ==","signatures":[{"sig":"MEQCIDku1x8nFOh223QNOOyj7YrfIHFhta5bH0DFKL0AxoPmAiB5oX40bJptRa8/CkMcviS2sseUA2iyW+qsuCfZHwMECg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":881408},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d7a26c490f0095b33e1111f390409b447e38d7da","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","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-xxC+2ikQx7MqxetKdn1iLF9A6OzzD9i+D0TZmYfqf27pITvNcxQqFGBiAjZrUqwKD7eaFLkGkkteeR2xg0uaYQ==","absolutejs":{"runtimePeers":{"elysia":{"range":">=1.4.29 <2","tested":"1.4.29","buildExternals":["elysia"],"artifactImports":["elysia"]},"@absolutejs/audit":{"range":">=0.2.1 <0.3.0","tested":"0.2.1","buildExternals":["@absolutejs/audit"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.8.3","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","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":{"elysia":"1.4.29","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"0.2.1","@absolutejs/telemetry":"0.2.0"},"peerDependencies":{"elysia":">=1.4.29 <2","@absolutejs/audit":">=0.2.1 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.1.1_1784959082525_0.5246572185913225","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@absolutejs/audit-elysia","version":"0.1.2","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.1.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"43a2aba4cdd2bb5c179fc04033b0f5b822f8df08","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.1.2.tgz","fileCount":11,"integrity":"sha512-MmtQw0N9VLUTaX9jZGMEFEHafqySlBrjwNg+pzCs+rB0a+owBoMpnB2yutpn2vYuT+LIALhHXD7pIGq2c9W68g==","signatures":[{"sig":"MEQCIERGURzkm+1+uRytOOYv+fROYjRd0kIo90VTei0A2MbkAiBZwb9NPFWT4k57y8bbnK/f0VixSQaTl081hgCztcccrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":881816},"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":"45ff7db566b6b521b02230e94bcebb830ef36258","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && 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":{"elysia":{"range":">=1.4.29 <2","tested":"1.4.29","buildExternals":["elysia"],"artifactImports":["elysia"]},"@absolutejs/audit":{"range":">=0.2.1 <0.3.0","tested":"0.2.2","buildExternals":["@absolutejs/audit"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.9.2","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","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":{"elysia":"1.4.29","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"0.2.2","@absolutejs/telemetry":"0.2.0"},"peerDependencies":{"elysia":">=1.4.29 <2","@absolutejs/audit":">=0.2.1 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.1.2_1784962363801_0.2982973939299718","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@absolutejs/audit-elysia","version":"0.1.3","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.1.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"4114f36e2d51e48b871584cfbe756122480712bc","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.1.3.tgz","fileCount":11,"integrity":"sha512-DWD/fZkHMOrGUQ88MEWKd+Go305dRvd9xLIEon5WM1Mm1EQPdWl/m7lyoOI3009+hsg2V//xgqgVpL0Lfr3fCA==","signatures":[{"sig":"MEUCIQD0wWzuem+Dkk8d8lF1qKguQeHYfxzI4tzqPf6a35ImjQIgfgBi3H+Z/vq0TsxNWwmObGzHyQqEU2Oi9o0uYR9RWf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":489217},"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"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && 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":{"elysia":{"range":">=1.4.29 <2","tested":"1.4.29","buildExternals":["elysia"],"artifactImports":["elysia"]},"@absolutejs/audit":{"range":">=0.2.1 <0.3.0","tested":"0.2.2","buildExternals":["@absolutejs/audit"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.9.2","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into onRequest + onAfterResponse so success AND error paths are captured. Orthogonal to @elysiajs/server-timing (perf headers) and @elysiajs/opentelemetry (sampled","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2","@absolutejs/telemetry":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"1.4.29","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/audit":"0.2.2","@absolutejs/telemetry":"0.3.0"},"peerDependencies":{"elysia":">=1.4.29 <2","@absolutejs/audit":">=0.2.1 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.1.3_1786078097175_0.730459732552468","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/audit-elysia","version":"0.2.0","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/audit-elysia@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"dist":{"shasum":"7c3076d2389d43ac559e3fa6ec2add6b20ebe936","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.2.0.tgz","fileCount":11,"integrity":"sha512-1BOIbCosfZ8DyqU0xYrmXIDeAAM6Dl76r3kV/piPJfSIHqwemqGB5MaqBHAkeusce/YPwovIBrMdrNYiohJ/SA==","signatures":[{"sig":"MEYCIQDFcLba5Lb7wJ5wnwBtwzhK+7TX9v1HAkozFnkC5TQHHAIhAKTH5RNCqhPPgB1/qDABoW/IVk5TfDKWMgkHy8lX7B2l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496400},"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":"9205442b80566e1037f489bc17b79e28536ffad3","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && 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 test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/audit-adapters.git","type":"git","directory":"elysia"},"_npmVersion":"10.9.2","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into request + afterResponse so success AND error paths are captured. Orthogonal to @elysia/server-timing (perf headers) and @elysia/opentelemetry (sampled tracing","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0","@absolutejs/telemetry":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"elysia":"2.0.0-beta.6","typebox":"1.3.16","prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","exact-mirror":"1.2.4","@absolutejs/audit":"0.2.2","@absolutejs/telemetry":"0.2.0"},"peerDependencies":{"elysia":"^2.0.0-beta.6","@absolutejs/audit":">=0.2.1 <0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/audit-elysia_0.2.0_1787188210673_0.1866564939788733","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@absolutejs/audit-elysia","version":"0.2.1","description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into request + afterResponse so success AND error paths are captured. Orthogonal to @elysia/server-timing (perf headers) and @elysia/opentelemetry (sampled tracing","repository":{"type":"git","url":"git+https://github.com/absolutejs/audit-adapters.git","directory":"elysia"},"homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"Apache-2.0","author":{"name":"Alex Kahn"},"absolutejs":{"manifestContract":2},"publishConfig":{"access":"public"},"keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/audit --external @absolutejs/telemetry --external elysia && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test","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 test","release":"bun run format && bun run check:package && bun publish"},"dependencies":{"@absolutejs/manifest":"^0.9.0","@absolutejs/telemetry":">=0.2.0 <0.4.0","@sinclair/typebox":"^0.34.0"},"peerDependencies":{"@absolutejs/audit":">=0.2.1 <0.3.0","elysia":"^2.0.0-beta.6"},"devDependencies":{"@absolutejs/audit":"0.2.2","@absolutejs/telemetry":"0.2.0","@types/bun":"1.3.14","elysia":"2.0.0-beta.6","exact-mirror":"1.2.4","prettier":"3.5.3","typebox":"1.3.16","typescript":"5.8.3"},"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"},"_id":"@absolutejs/audit-elysia@0.2.1","gitHead":"23d688eddbec2c615e8e3f149fa17b69173c9dcc","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-kW8mnww/66fVqrJzetdDtYFBCz+6w/OFtTMlKsUIS7mIbCOvfjfkMmbAN9deSrs2mDForywCx0RGXo/ITddPBA==","shasum":"6feae55a2313e3498a4805e6a1abf43034bdef85","tarball":"https://registry.npmjs.org/@absolutejs/audit-elysia/-/audit-elysia-0.2.1.tgz","fileCount":11,"unpackedSize":496408,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDQZQDwCdvzCQOl40wY5QNML7YEiSU348xtSgnrD67g5AiBMGbBHjzvwXIkg+QbjLlkVBM8J5DgTIHjU2suGHQl8JQ=="}]},"_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/audit-elysia_0.2.1_1787449011087_0.026873040501249834"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T18:24:56.560Z","modified":"2026-08-23T01:36:51.394Z","0.0.1":"2026-05-30T18:24:56.859Z","0.0.2":"2026-05-30T19:56:04.691Z","0.0.3":"2026-07-13T17:55:22.328Z","0.0.4":"2026-07-14T05:59:07.444Z","0.0.5":"2026-07-14T06:49:42.451Z","0.1.0":"2026-07-24T17:42:48.805Z","0.1.1":"2026-07-25T05:58:02.665Z","0.1.2":"2026-07-25T06:52:43.966Z","0.1.3":"2026-08-07T04:48:17.344Z","0.2.0":"2026-08-20T01:10:10.852Z","0.2.1":"2026-08-23T01:36:51.222Z"},"bugs":{"url":"https://github.com/absolutejs/audit-adapters/issues"},"author":{"name":"Alex Kahn"},"license":"Apache-2.0","homepage":"https://github.com/absolutejs/audit-adapters/tree/main/elysia","keywords":["audit","elysia","middleware","plugin","audit-log","compliance","http","absolutejs"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/audit-adapters.git","directory":"elysia"},"description":"Elysia plugin emitting one structured audit event per request into @absolutejs/audit. Wires into request + afterResponse so success AND error paths are captured. Orthogonal to @elysia/server-timing (perf headers) and @elysia/opentelemetry (sampled tracing","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/audit-elysia\n\nElysia plugin that emits one structured audit event per HTTP request into\n[@absolutejs/audit](https://github.com/absolutejs/audit).\n\n## Why this exists\n\nThe Elysia ecosystem already has:\n\n- **`@elysia/server-timing`** — emits an IETF `Server-Timing` response\n  header with per-lifecycle-phase durations. Performance instrumentation\n  visible in browser devtools. **Off by default in production.** Useful,\n  but not compliance-shaped.\n- **`@elysia/opentelemetry`** — wires the request lifecycle into OTel\n  spans. Distributed tracing exported to Jaeger / Honeycomb / Axiom /\n  Datadog. **Sampled, ephemeral.** Useful, but not retention-shaped.\n\nNeither is structured audit. Audit is \"an append-only event per request,\ntamper-evident when paired with `withIntegrity`, queryable, and retained\nfor compliance\" — a separate concern. This plugin fills that gap. **No\nofficial Elysia audit plugin exists**; the community has logging plugins\n(`logestic`, `logixlysia`, etc.) but none are structured tamper-evident\naudit pipelines.\n\nInstall all three side-by-side if you want all three.\n\n## Install\n\n```sh\nbun add @absolutejs/audit @absolutejs/audit-elysia elysia\n```\n\n## Usage\n\n```ts\nimport { Elysia } from 'elysia';\nimport { createAudit, memorySink, withIntegrity } from '@absolutejs/audit';\nimport { auditElysia } from '@absolutejs/audit-elysia';\n\nconst audit = createAudit({\n  sinks: [withIntegrity(memorySink(), { secret: process.env.AUDIT_SECRET })],\n});\n\nnew Elysia()\n  .use(auditElysia({\n    audit,\n    actor: (ctx) => ctx.request.headers.get('x-user-id') ?? undefined,\n  }))\n  .get('/', () => 'ok')\n  .get('/admin', () => 'secret')\n  .listen(3000);\n```\n\nEvery request — `200`, `4xx`, `5xx`, even handlers that throw — emits one\naudit event with shape:\n\n```ts\n{\n  at: 1748623380000,\n  kind: 'http.request.ok',           // .ok | .client_error | .error\n  actor: 'user-42',                  // from your `actor` resolver (optional)\n  target: 'GET /admin',\n  metadata: {\n    requestId: 'a4f9...',\n    durationMs: 12,\n  }\n}\n```\n\n## API\n\n```ts\nauditElysia({\n  audit,                       // required — the Audit handle\n  actor?: (ctx) => string | undefined | Promise<...>,\n  exclude?: ({ request }) => boolean | Promise<boolean>,\n  redact?: (req) => Record<string, unknown> | undefined,\n  correlateOtelTraceId?: boolean,\n  kind?: string,               // default 'http.request'\n  requestIdHeader?: string | null, // default 'x-request-id'\n});\n```\n\nExclude high-frequency operational traffic from the compliance stream:\n\n```ts\nauditElysia({\n  audit,\n  exclude: ({ request }) =>\n    ['/healthz', '/readyz', '/metrics'].includes(new URL(request.url).pathname),\n});\n```\n\nAn exclusion callback that throws fails closed: the request is audited.\n\n### `actor`\n\nResolve the actor identifier (userId / session / api-key fingerprint) from\nthe request. Errors are swallowed — a misbehaving resolver doesn't break\nthe response. Default: no `actor` field on the emitted event.\n\n### `redact`\n\nBuild the `metadata` payload. Receives `{ method, path, status,\ndurationMs, headers }` and returns whatever you want in metadata:\n\n```ts\nredact: (req) => ({\n  durationMs: req.durationMs,\n  userAgent: req.headers['user-agent'],\n  // omit anything you don't want logged\n})\n```\n\nThe plugin does **not** capture request or response bodies by default —\nPII redaction surface area is too speculative to ship without a real\nconsumer asking. Add it through `redact` (or call `audit.append` directly\nfrom a handler) when you need it.\n\n### `correlateOtelTraceId`\n\nIf `true`, the plugin tries to read the active OTel trace id via\n`@opentelemetry/api` (if installed) and attaches it as `metadata.traceId`.\nFalls back silently when OTel isn't installed. **Default `false`** —\nopt-in because not every app runs OTel, and we don't want a hidden dynamic\nimport in the request hot path.\n\nWhen combined with `@elysia/opentelemetry`, this is the principled\nbridge: every audit row carries the trace_id of the span that produced it,\nso SREs investigating a flagged audit row can pivot to the trace.\n\n### `kind`\n\nOverride the event kind namespace. Default `'http.request'` — the plugin\nappends `.ok` / `.client_error` / `.error` based on response status.\nOverride to differentiate audit streams:\n\n```ts\nauditElysia({ audit, kind: 'api.request' })   // emits api.request.ok / .client_error / .error\nauditElysia({ audit, kind: 'admin.request' }) // for an admin-routes-only sub-app\n```\n\n### `requestIdHeader`\n\nHeader name to extract a client-supplied request id from. Default\n`'x-request-id'`. Pass `null` to always mint a UUID.\n\n## Which hook does it use?\n\n`afterResponse` — the only Elysia lifecycle hook that fires once per\nrequest **including error paths**. Verified against Elysia 2 and tested\nwith handlers that throw. `request` is also wired (to stamp the wall-\nclock start), but the emission is in `afterResponse`.\n\nThe plugin scopes both hooks to `'global'` so they apply to every route\nregistered on the parent app, not just routes defined on the plugin.\n\n## What's NOT in 0.0.1\n\n- **Body capture / redaction config schema** — speculative. Add via\n  `redact` for now; we'll formalize once a real consumer's needs are\n  clear.\n- **Per-route opt-out** — every request on the mounted app emits. Two\n  separate `auditElysia()` instances on different sub-apps can give\n  per-prefix scoping.\n- **Sampling** — every request emits. Audit isn't a place to sample.\n\n## License\n\nApache 2.0. Substrate-adjacent — rides\n`@absolutejs/audit` (BSL Tier A) and `elysia` (MIT).\n","readmeFilename":"README.md"}