{"_id":"autotel-audit","_rev":"29-156730fa3439772df8b00b733295397b","name":"autotel-audit","dist-tags":{"latest":"0.4.5"},"versions":{"0.1.0":{"name":"autotel-audit","version":"0.1.0","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.0","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"8c965c3c3c2ea67970e9cf3fc020891bfc96977c","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.0.tgz","fileCount":10,"integrity":"sha512-0/pstToJbmrpHhc7rrqPXVAw0tAJ7uPbOJCkAnHhasmVWmBiuOMU8/Lad8czTtIfxCPQUlczGhtmP4seSLvuag==","signatures":[{"sig":"MEUCIQCCvRLRWPMbK0Gtu8ST8E6fA0Q8rhfJ1HBTC2E7X6xTLAIgHitsfNCDb08KvDMfUURCPNDG8A3K8ibs4AetNSCZGsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40422},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"be14c0c35edb042d9338851d0b0019739684390b","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"jagreehal","email":"jag.reehal@gmail.com"},"repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.6.2","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"autotel":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","typescript-eslint":"^8.59.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.1","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.0_1777921843353_0.5702724781500286","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"autotel-audit","version":"0.1.2","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.2","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"596721bf7ca0dffb398d3311b49a68f7e7471f71","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.2.tgz","fileCount":11,"integrity":"sha512-UdCPMNLb5thvX7JVvbr4CBlcTuDjIJ1nEK0xP6HOfrm4HmMbbCQ5Vs3PAKPL33gN4e2q7I1MwPG6mh83cWI9bA==","signatures":[{"sig":"MEYCIQDNTb4KOHJf7U8ZaU+eMd9zCCFO5tpjGbt4gYsZmf0E0AIhALoedeUUnKpqfRwnLYtWpdG8FwFRXeSmjXlk0pSZWo3/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/4be065b44763aa5bd7513bf132e308ee/autotel-audit-0.1.2.tgz","_integrity":"sha512-UdCPMNLb5thvX7JVvbr4CBlcTuDjIJ1nEK0xP6HOfrm4HmMbbCQ5Vs3PAKPL33gN4e2q7I1MwPG6mh83cWI9bA==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.13.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"autotel":"3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","typescript-eslint":"^8.59.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.1","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.2_1777961186811_0.06676000988734354","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"autotel-audit","version":"0.1.3","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.3","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"9ddb5cf9abf3cef2562e3796afaf1875abd8be7e","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.3.tgz","fileCount":11,"integrity":"sha512-hVY28hSYlg/BYyhBNgUfl5f5rF7nLiYBoJ8/OKaydc0dMdZpueqvwLRBE5A/VaDxaHxkgIEWkofULM8B5BAZBw==","signatures":[{"sig":"MEUCIQC1r3+XlcUgK84yokykLvSML2JNn6MOvoZy0qIsbJ3iegIgBq1u+Up7Rte86Qh+2SQuLGsUT0tIc/jk2uYLEPC5uyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/bc5d50e187ee96ed23722fefa79e975d/autotel-audit-0.1.3.tgz","_integrity":"sha512-hVY28hSYlg/BYyhBNgUfl5f5rF7nLiYBoJ8/OKaydc0dMdZpueqvwLRBE5A/VaDxaHxkgIEWkofULM8B5BAZBw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"autotel":"3.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","typescript-eslint":"^8.59.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.1","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.3_1778420744674_0.3593147271402448","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"autotel-audit","version":"0.1.4","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.4","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"dd837ecd485fab8a1d223f0be9c4774f95fb280c","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.4.tgz","fileCount":11,"integrity":"sha512-Gen6Zq58URphCkJ+6CHjvdIaYCcEJlOyp8UDM5vyr8ARHIFWUDhrWELLfxt/uPUagkkF+mBnEt3f1MHbnxQudA==","signatures":[{"sig":"MEUCIAaI1wiZKS31W1q53ePcHMM5k0nd/j4+nnzI6FAxRIAHAiEApoh2uQqYTU4rYa/ws+mKy/RqW2knumi+wtd33hDGaRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/0939a0c49571f7ff45d25596b8f62090/autotel-audit-0.1.4.tgz","_integrity":"sha512-Gen6Zq58URphCkJ+6CHjvdIaYCcEJlOyp8UDM5vyr8ARHIFWUDhrWELLfxt/uPUagkkF+mBnEt3f1MHbnxQudA==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"autotel":"3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.4_1778712694647_0.4721442121572077","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"autotel-audit","version":"0.1.5","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.5","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"14d48cecf4b6c02f80b1be825344c7add14753cd","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.5.tgz","fileCount":11,"integrity":"sha512-5UJpmHdoMls+7O5pUSLF2Nl3o3Pyylk8JBD3cb8ECSSEm+Fx95/dC7IBO5cwIguQxJpXziYLl2jHt1lImkff6Q==","signatures":[{"sig":"MEUCIG2xrpLq6BpgP5vzEYZk5SgBeBYXZU8oi7ip4/vSQvg8AiEAxVmGwN0g2Ovmstrx4/7BLONySE+Pe78KY3Evoz2OIgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/54779fe5ee04543a6f77c00854788e85/autotel-audit-0.1.5.tgz","_integrity":"sha512-5UJpmHdoMls+7O5pUSLF2Nl3o3Pyylk8JBD3cb8ECSSEm+Fx95/dC7IBO5cwIguQxJpXziYLl2jHt1lImkff6Q==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"autotel":"3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.5_1779048549766_0.06420209063824567","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"autotel-audit","version":"0.1.6","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.6","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"0de828849b45c765bafff8ee10e47f13347528f9","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.6.tgz","fileCount":11,"integrity":"sha512-XpQ0/L93xkjkT/gTIa+XhidF5GvWJ749qVmndxVVeVONQigEg2NTGHU2TfM8q3m538epELxn0EwTr3zPsUXjGg==","signatures":[{"sig":"MEYCIQCRaJExKl//l280Yv0TtuzUGlynj28Or2yndkgGUeGfcQIhAInln8rWWB31TAQmUxvha2EaVVyJGynMlcdj565k62f/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/9ff7fbadfbf10e04df32db194cdc6e3f/autotel-audit-0.1.6.tgz","_integrity":"sha512-XpQ0/L93xkjkT/gTIa+XhidF5GvWJ749qVmndxVVeVONQigEg2NTGHU2TfM8q3m538epELxn0EwTr3zPsUXjGg==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"autotel":"3.0.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.6_1779266417171_0.2586889712109275","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"autotel-audit","version":"0.1.7","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.7","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"5b23f48bca1873aa6442059f298de007a7444abc","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.7.tgz","fileCount":11,"integrity":"sha512-EXa6V9MQy9kYWGp9soozLaV9Wu5fUn483QL5fd0LpXigvDnVkz4He5NvKOJJ3yJH4lAyuYznzbRRRQyTjAbRPw==","signatures":[{"sig":"MEUCIQD9pIjmd2Pls4zc420kgju2FcNfK8BE23B9GU7U5TMUxgIgYyqJHGLOA5Prcb3j/Htq9sozFUi7GkgwjC9GRRakrEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/0a21785775b1d4a34ae2d1f40c09d9de/autotel-audit-0.1.7.tgz","_integrity":"sha512-EXa6V9MQy9kYWGp9soozLaV9Wu5fUn483QL5fd0LpXigvDnVkz4He5NvKOJJ3yJH4lAyuYznzbRRRQyTjAbRPw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"autotel":"3.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.7_1779272757081_0.28615653940839314","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"autotel-audit","version":"0.1.8","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.8","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"a50218c603108ffee439c71ced19c83421d99872","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.8.tgz","fileCount":11,"integrity":"sha512-WfOv9mHupz3SXLoxoFnnh1lspifEzCIj1PYtF0PhplN8D7FPbZogG0o2YmsZe/Yad86YS3H07QTL/WwdKkDjVw==","signatures":[{"sig":"MEUCIAqxOvIqR0nLeo+eTaVtusZaIADczA+NOp9fG7PvjQuFAiEAj/BOW2rnV1WfwddPUq+XxAKqZH5CwXmCaCFb6MQmlY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/cd49c9d46f84483a7e0df17f9c2ec663/autotel-audit-0.1.8.tgz","_integrity":"sha512-WfOv9mHupz3SXLoxoFnnh1lspifEzCIj1PYtF0PhplN8D7FPbZogG0o2YmsZe/Yad86YS3H07QTL/WwdKkDjVw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.14.1","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"autotel":"3.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.8_1779273196082_0.2985376480956692","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"autotel-audit","version":"0.1.9","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.9","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"31d1ad61af29671b826890f6f16b15f72f92c085","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.9.tgz","fileCount":11,"integrity":"sha512-CjHA2TePy02nAt6Huk3Hk0vt7MQSNQKSQUhDKZUTbVn6fySl9DgtbEqGM9SGGLAUrhwudQJZZTEAuVrHwrQtSQ==","signatures":[{"sig":"MEQCIBCjGGp9EndK6dINbrYB908ESaszGMVfuHHLJXTlyRLUAiB8OutBvgc7O0hbYW0FJhmGH5WYe95fxScB6L819JfYMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41482},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/2a1896cd583014cda10d61cead5d03cd/autotel-audit-0.1.9.tgz","_integrity":"sha512-CjHA2TePy02nAt6Huk3Hk0vt7MQSNQKSQUhDKZUTbVn6fySl9DgtbEqGM9SGGLAUrhwudQJZZTEAuVrHwrQtSQ==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.15.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"autotel":"3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.9_1779650368106_0.5667400069104271","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"autotel-audit","version":"0.1.10","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.10","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"63e77a17dbca3e4f7743eaeb7802be321019f440","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.10.tgz","fileCount":11,"integrity":"sha512-bcC72J7Rr8OPQhFwXiCiy6GUObF+kxSjXjkozx15s7pZwHu9QagJbiJQ8Vku6QbYOVyHjxU2mYG0h0t7eCbH7A==","signatures":[{"sig":"MEUCICeRRKkw0QRKte/eW3uHs8hKFhxmU9G1YLs8CcVzcVZPAiEAu40TtB5mrj6KU8BwsfqNi+Mudn5tdTVydopQlnBWq6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/11690ac46452de875eb8c31e456deba1/autotel-audit-0.1.10.tgz","_integrity":"sha512-bcC72J7Rr8OPQhFwXiCiy6GUObF+kxSjXjkozx15s7pZwHu9QagJbiJQ8Vku6QbYOVyHjxU2mYG0h0t7eCbH7A==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.16.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","typescript-eslint":"^8.59.3","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.59.3","@typescript-eslint/eslint-plugin":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.10_1779990797626_0.8130901814433791","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"autotel-audit","version":"0.1.11","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.11","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"9fb04ac412f624c3f02ff647cf64ba899b660e31","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.11.tgz","fileCount":11,"integrity":"sha512-GBaptpwtJXJCvW4qxIknfA4n60mhevgLbgXMgc/zET3qAq82uNJKRsbJ2TrqwzJswCwMccfvrOioX+/L7NE05Q==","signatures":[{"sig":"MEYCIQD5Lj5+YJ5mFu7vcRwaDD9WGvBFcTrj4o/iRrfD7OKy6gIhAPyKOSx8zGDBs4DdJf7dYb9EMaqtmQdw+75c/lN7zGpi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.11.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/e1d7d91fd935ed9389c23b8e22ac6518/autotel-audit-0.1.11.tgz","_integrity":"sha512-GBaptpwtJXJCvW4qxIknfA4n60mhevgLbgXMgc/zET3qAq82uNJKRsbJ2TrqwzJswCwMccfvrOioX+/L7NE05Q==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.16.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.11_1780081626158_0.8011422824563719","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"autotel-audit","version":"0.1.12","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.12","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"a99c161237ca518fe1f9027552d01e72f8d4b847","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.12.tgz","fileCount":11,"integrity":"sha512-HmrF/5k2IR1KJLb/vG2wmLsW7pZehPBL20KhHVnAK6vehD+v4rddyFn2UZnzAdZrKgMPOGhQPJTKyrA4/C+Ysg==","signatures":[{"sig":"MEUCIQCiEZaHEjZ5fL5EoneKJiwOzi/PRKCYWC6eIqYvBgWwoQIgDxTB7yro6GqUHYC0etd7xowQeeS5lYsHjhn1aQ7rVBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.12.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/3869a81f81876655ed469b3d3c041850/autotel-audit-0.1.12.tgz","_integrity":"sha512-HmrF/5k2IR1KJLb/vG2wmLsW7pZehPBL20KhHVnAK6vehD+v4rddyFn2UZnzAdZrKgMPOGhQPJTKyrA4/C+Ysg==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.16.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.12_1780219218134_0.17133945901263048","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"autotel-audit","version":"0.1.13","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.13","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"8f6a880e1e963f0d1f0696d266e2d8d27e7f089b","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.13.tgz","fileCount":11,"integrity":"sha512-e5OoiMWp0LrGZyhdm44FP87uWkJtEHTEj8pAd5Xuyjispu+1DY0oj/jQ5QGX54rXkZ0R9tK1ahSoB1YTzJ/Emw==","signatures":[{"sig":"MEYCIQD5ruyfG6BDYOAkn32Jj/WEtM8/RDfr2XB33Um2N3I3uAIhAL/pP9ppET1eISBMf0adGKgRDVO+G5llA4XVlkcx4tov","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.13.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/62f0a241dc2a3d23e4b1826d8e7bc6ba/autotel-audit-0.1.13.tgz","_integrity":"sha512-e5OoiMWp0LrGZyhdm44FP87uWkJtEHTEj8pAd5Xuyjispu+1DY0oj/jQ5QGX54rXkZ0R9tK1ahSoB1YTzJ/Emw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.16.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.13_1780345167523_0.20632936595670137","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"autotel-audit","version":"0.1.14","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.14","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"dd5addcf1260e291abef0cb794ecedb9c3484adf","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.14.tgz","fileCount":11,"integrity":"sha512-nqpq9zseMldoGfb2FNh8Y8/eyr/PU3HBMy/wubTQqTzy5N+SmjLXl0Go2I531rN9zxuk0bxiaPNYA25hnxoNnA==","signatures":[{"sig":"MEUCIE4y5OCzvIGoQ1Ae05+x2A0YJEdJDGGnolCVIr4Q10EyAiEAscy5Jnyoleb5MogBMoTsyKiDM+JbekxvbjTOdakOO10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.14.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"_resolved":"/tmp/96a756d7713e7c8a441a054e405dd0a0/autotel-audit-0.1.14.tgz","_integrity":"sha512-nqpq9zseMldoGfb2FNh8Y8/eyr/PU3HBMy/wubTQqTzy5N+SmjLXl0Go2I531rN9zxuk0bxiaPNYA25hnxoNnA==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.16.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.14_1780523912497_0.28168005392337836","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"autotel-audit","version":"0.1.15","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":"Jag Reehal <jag@jagreehal.com> (https://jagreehal.com)","license":"MIT","_id":"autotel-audit@0.1.15","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"10c96faf399aabc02404a90192102711d8d1c587","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.15.tgz","fileCount":16,"integrity":"sha512-950OpTPRqkb2aFXELkM0ajVh1WMQssrtlIBfaemRX37PbtEjH0lT20QVLzLRM7xK0XWqmvjGKDJwjG/p8BHw3Q==","signatures":[{"sig":"MEUCIQD/cGRRj0M0/fK/ieTJ09b98ThCh0WQnsttBf+WI5JN7gIgDyW8MMi6RbanYzjWtzgI/BSmkA1FIlFp7gFvLhak+50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4560669},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9833e325-bdec-4424-8867-ad910a9a001b"}},"deprecated":"SECURITY: compromised supply-chain build (2026-06-04 worm) — do not use; upgrade to a known-good release.","repository":{"url":"https://github.com/jagreehal/autotel","type":"git","directory":"packages/autotel-audit"},"description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"dependencies":{"autotel":"3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.15_1780532734387_0.6945582857639858","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"autotel-audit","version":"0.1.16","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.1.16","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"e9dea3cb1cc2d750e3aafe3b8ff12f1a96298aec","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.1.16.tgz","fileCount":11,"integrity":"sha512-f7eGlO+P4BrHWZbTBYvSDuNhaEVo9TZbtOYvFZri0u2CQ43MFVK30HnYiF91M4JKTVsEIZuMNS1EpI7Wosqc1w==","signatures":[{"sig":"MEUCIEUzR9Dv2kqv83HijH7ohhBLdGnKvjY2pHM1jggPCyHiAiEAv5clFuRuMaS9qUDBURFzDJ5wZ49u0jQWqZiF+uVixAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41483},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.1.16.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"jagreehal","email":"jag.reehal@gmail.com"},"_resolved":"/private/var/folders/sp/__ydkqk53ss4hb4k3wbv1wbc0000gn/T/470473454a7dc88c46b3e01a3749719e/autotel-audit-0.1.16.tgz","_integrity":"sha512-f7eGlO+P4BrHWZbTBYvSDuNhaEVo9TZbtOYvFZri0u2CQ43MFVK30HnYiF91M4JKTVsEIZuMNS1EpI7Wosqc1w==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.13.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.4.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","typescript-eslint":"^8.60.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.0","@typescript-eslint/eslint-plugin":"^8.60.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.1.16_1780704304773_0.08983442222297877","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"autotel-audit","version":"0.2.0","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.2.0","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"20f8d7901b1623011feccc761ca6c6ceae2556f3","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.2.0.tgz","fileCount":19,"integrity":"sha512-L2G3Rzv6wV08iopd0WnS1iUE/zrCj2/O44WPBchxK7fkNo3TDrRWbFcR6i46CwCeop7E4O5h3sVCGn94LvvZZg==","signatures":[{"sig":"MEUCIE5nshq7TVOGadexipqXQu5ZPIWm6hC1B8PUeTLQ6c7rAiEAvwfAtdLaKL0skSSh7Z21nClNyuVXajbFDRTPvzTJPz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":222345},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/082914c96af19e216bad5376046b5f53/autotel-audit-0.2.0.tgz","_integrity":"sha512-L2G3Rzv6wV08iopd0WnS1iUE/zrCj2/O44WPBchxK7fkNo3TDrRWbFcR6i46CwCeop7E4O5h3sVCGn94LvvZZg==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.2.0_1781253182426_0.6417379532225067","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"autotel-audit","version":"0.2.1","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.2.1","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"5c2f89c3b021c28c8d022314fc6682ed8f047c1c","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.2.1.tgz","fileCount":19,"integrity":"sha512-X/Qh46wh6EUQWN3oxzvtQIioojTojL1exHOvFoSTyKNSLAwfiBcNrQFz1lkuiYC3Vk9OY1Hw5r8TyvmE2wdjqQ==","signatures":[{"sig":"MEYCIQD88Kj17x/X8MaeYVs3QWoH/rGjpNBD9V2MqCAYqcpRtQIhAJeBzfg9Kqb8eq/9CAj3+rY22zWD2mdLiLx2ytlIAiwR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":222345},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/be8af062cd28d3da4c7846e7cbd31e56/autotel-audit-0.2.1.tgz","_integrity":"sha512-X/Qh46wh6EUQWN3oxzvtQIioojTojL1exHOvFoSTyKNSLAwfiBcNrQFz1lkuiYC3Vk9OY1Hw5r8TyvmE2wdjqQ==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.6.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.2.1_1781296856803_0.7260415695470381","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"autotel-audit","version":"0.3.0","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.3.0","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"2953205de8413dd77c5ee8b41479dc65c45e505d","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.3.0.tgz","fileCount":21,"integrity":"sha512-pvm/T82j4a5XorCztB9qHf4ZcvCSjFMshcSSLB+U2MSpE8A3QTM/dEkx43Oo9rQLjbgRdMSDq0L7f2zMetRfsA==","signatures":[{"sig":"MEUCIEr35NoqO4z80EyHo5KlCmv0GyO5wgouWQpJQBiHzACgAiEA67UjG/4GIk0EIFiE0USCACLWc/kLjNz/iG9cIPPkbIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244498},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/dde4cb899f512a2fa80e473451985820/autotel-audit-0.3.0.tgz","_integrity":"sha512-pvm/T82j4a5XorCztB9qHf4ZcvCSjFMshcSSLB+U2MSpE8A3QTM/dEkx43Oo9rQLjbgRdMSDq0L7f2zMetRfsA==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"3.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.3.0_1781559495516_0.05118061320482492","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"autotel-audit","version":"0.3.1","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.3.1","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"4ba9344bb5057baa978d1d35bf9f1fb1fe2fa01a","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.3.1.tgz","fileCount":21,"integrity":"sha512-Jb4gmXQ55InSqZvzO8mj0064UefVn5vpWo3wQTVElyiqSRPpxXo6l7UJi8i0Mef0xWh3wSGw88UDbykBfuRhmw==","signatures":[{"sig":"MEYCIQC2i9hIHWCWLJmxWgUiOuXqvbzdoRv2eZly6eYcCwmDuQIhANkCcTBDO+zrLAKngxrwUs+34jlyb/JoG/d6uOzVo6up","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244498},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.3.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/f87ca59881d05d5a373bc5b2459aecc7/autotel-audit-0.3.1.tgz","_integrity":"sha512-Jb4gmXQ55InSqZvzO8mj0064UefVn5vpWo3wQTVElyiqSRPpxXo6l7UJi8i0Mef0xWh3wSGw88UDbykBfuRhmw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.3.1_1781596184292_0.7608703572950695","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"autotel-audit","version":"0.3.2","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.3.2","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"8143cd27b8d5489be267964788c7ff68ba0586b8","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.3.2.tgz","fileCount":21,"integrity":"sha512-bVysIShKwPQcWDOYALFN5ce6EeWDPeP035h/lDMWxfvQ0L7vhxaLqkF6EfbddT+o5SUtJxmi2YDtU8MxJdECvw==","signatures":[{"sig":"MEUCIQDx5ATdrr8aY6sEsaVZdRc1voYdaEc4SoCtlMTmVSHBTAIgaGckYbik2hfhQPn0sSanOBy4h1ufuc1FRNUOspwzX7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244498},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.3.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/74bc6ec043eb662f94e7424ac5b72ebd/autotel-audit-0.3.2.tgz","_integrity":"sha512-bVysIShKwPQcWDOYALFN5ce6EeWDPeP035h/lDMWxfvQ0L7vhxaLqkF6EfbddT+o5SUtJxmi2YDtU8MxJdECvw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.3.2_1781987822343_0.883375251910838","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"autotel-audit","version":"0.4.0","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.4.0","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"3751e129c09ac2a07a70079ed6868d869840fc2e","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.0.tgz","fileCount":11,"integrity":"sha512-rgaI8itnL95/9XlVsT3t4BCVgdcEAOwWoRZiry7HisVzfWN68DaCtzXw8pemYLus8dzGeWSnmRL/Z/br2uGXSQ==","signatures":[{"sig":"MEUCIHuVcACM1+jfpBnTug4eN/iF70UgG5V+kgCLpyjMe0nUAiEAxXWimOfXX9RoCNDMhrrwngax+xmgyA4T5QrPmSXdWBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211942},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/05b5fbae361be7f5cc1b0d45da558337/autotel-audit-0.4.0.tgz","_integrity":"sha512-rgaI8itnL95/9XlVsT3t4BCVgdcEAOwWoRZiry7HisVzfWN68DaCtzXw8pemYLus8dzGeWSnmRL/Z/br2uGXSQ==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.4.0_1781991050764_0.7847848589930251","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"autotel-audit","version":"0.4.1","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.4.1","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"bf632a9d2905781bafd314da03a733bdacabcdab","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.1.tgz","fileCount":11,"integrity":"sha512-67tnCaBCrgJJibtFy8Gx73wCPcPNzrsvo5AV1lSYTO2+oYgT3n98e4q01edU78JpaB4GRNTaZI4Id0feCBSXLQ==","signatures":[{"sig":"MEQCIHofFj3Z1wBMh51hYapz5Z087Ls0W2Cm5BtbGvYGzw2yAiANYhpXKi9gSMrqzCpILqEbvnFaGqYBSPyzcC8n4KJXyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211942},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.4.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/09976b468980467494798c8530351da3/autotel-audit-0.4.1.tgz","_integrity":"sha512-67tnCaBCrgJJibtFy8Gx73wCPcPNzrsvo5AV1lSYTO2+oYgT3n98e4q01edU78JpaB4GRNTaZI4Id0feCBSXLQ==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"4.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.4.1_1781992942913_0.7622557129217076","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"autotel-audit","version":"0.4.2","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.4.2","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"0bdff382d6a499bffa5f0630063a0893515977d0","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.2.tgz","fileCount":11,"integrity":"sha512-yppSEm5PGOcKNp/9qF1VQO7fr0n7HewNc1JP/uxH7snNgbOLmoC/v3RGYdcgYBA+T4kmB9n0CPnMGuC7+Su5gw==","signatures":[{"sig":"MEUCIQDtspdDxzuWFlTBZi5uSJtblfF/qV3JkEcuH6TyCn6DFQIgDDj+xoG5MUzukiF6ExLu3H/j0z6z8dCSjYl+BkA3mM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211942},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.4.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/88755c368471d5beeb19aa2ffe410185/autotel-audit-0.4.2.tgz","_integrity":"sha512-yppSEm5PGOcKNp/9qF1VQO7fr0n7HewNc1JP/uxH7snNgbOLmoC/v3RGYdcgYBA+T4kmB9n0CPnMGuC7+Su5gw==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.17.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"autotel":"4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.4.2_1782163246225_0.10485834816816109","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"autotel-audit","version":"0.4.3","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.4.3","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"415d42c210f9ee2368a4deda9df4774990e16dbb","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.3.tgz","fileCount":11,"integrity":"sha512-kB1zMgA/QYh32cnj7n91OcemQFu7TN/DLMeUEtVvEdOsi4uyVNuqBO6B26eR93AADG/hRmKJDfc9gK+DIrcWvg==","signatures":[{"sig":"MEUCIQCby7Q5h34phvOxBZhwG8LQVNym/fWzj3qD0D+M9csT+gIgVaF1dUMm3Hr55MlHoEywb3ZkureyETW5SB+bqDS6uaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211942},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.4.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/23466b422aa47c0cf5fa16a7bf1e97cb/autotel-audit-0.4.3.tgz","_integrity":"sha512-kB1zMgA/QYh32cnj7n91OcemQFu7TN/DLMeUEtVvEdOsi4uyVNuqBO6B26eR93AADG/hRmKJDfc9gK+DIrcWvg==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.18.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"autotel":"4.2.3"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","typescript-eslint":"^8.60.1","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/eslint-plugin":"^8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.4.3_1783716666518_0.1340453697910058","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"autotel-audit","version":"0.4.4","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"url":"https://jagreehal.com","name":"Jag Reehal","email":"jag@jagreehal.com"},"license":"MIT","_id":"autotel-audit@0.4.4","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"homepage":"https://github.com/jagreehal/autotel#readme","bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"dist":{"shasum":"1a508712bc29b47359e16c4348c3ea269f7e8d7b","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.4.tgz","fileCount":11,"integrity":"sha512-NbbCYjFd5B5HPjslwww1pF5cNNvFY5TkaNNijnfQDM05tqOSuIIAc1/tF6s5AqJBk1+ZA+fR3UNOiQaj4UGOHA==","signatures":[{"sig":"MEYCIQCejO9qmA4UOzP4Gl6t3Z9/umJn6ruBnJyRjjNdbJFFtQIhAJDqd7y6VpINEmOGJYwfuYeiSs3Xs1cqkd8yx64pZMOs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212023},"main":"./dist/index.js","type":"module","_from":"file:autotel-audit-0.4.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsdown","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"_resolved":"/tmp/256152da7c0033ac96817a4bb9c1cd20/autotel-audit-0.4.4.tgz","_integrity":"sha512-NbbCYjFd5B5HPjslwww1pF5cNNvFY5TkaNNijnfQDM05tqOSuIIAc1/tF6s5AqJBk1+ZA+fR3UNOiQaj4UGOHA==","repository":{"url":"git+https://github.com/jagreehal/autotel.git","type":"git","directory":"packages/autotel-audit"},"_npmVersion":"11.18.0","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"autotel":"4.2.4"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^26.1.0","typescript-eslint":"^8.63.0","eslint-plugin-unicorn":"^64.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.63.0","@typescript-eslint/eslint-plugin":"^8.63.0"},"_npmOperationalInternal":{"tmp":"tmp/autotel-audit_0.4.4_1783754479408_0.4608861298670526","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"autotel-audit","version":"0.4.5","description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"author":{"name":"Jag Reehal","email":"jag@jagreehal.com","url":"https://jagreehal.com"},"license":"Apache-2.0","dependencies":{"autotel":"4.2.5"},"devDependencies":{"@types/node":"^26.1.0","@typescript-eslint/eslint-plugin":"^8.63.0","@typescript-eslint/parser":"^8.63.0","eslint-config-prettier":"^10.1.8","eslint-plugin-unicorn":"^64.0.0","tsdown":"^0.22.3","typescript":"^6.0.3","typescript-eslint":"^8.63.0","vitest":"^4.1.10"},"repository":{"type":"git","url":"git+https://github.com/jagreehal/autotel.git","directory":"packages/autotel-audit"},"bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"homepage":"https://github.com/jagreehal/autotel#readme","scripts":{"build":"tsdown","dev":"tsdown --watch","lint":"eslint src/**/*.ts","type-check":"tsc --noEmit","test":"vitest run"},"_id":"autotel-audit@0.4.5","_integrity":"sha512-R3QYrpdStkHF2G8qZvcHQs+1B03Ork0arXuICMkRzIlzZjSU8K5v3MP6gxoCV9/JmP1JfUPKBW4VUswEXST9LA==","_resolved":"/tmp/e318819458dc7342d0bd4ca8a4035cc7/autotel-audit-0.4.5.tgz","_from":"file:autotel-audit-0.4.5.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-R3QYrpdStkHF2G8qZvcHQs+1B03Ork0arXuICMkRzIlzZjSU8K5v3MP6gxoCV9/JmP1JfUPKBW4VUswEXST9LA==","shasum":"af1f174a627a14be2473c5273acb017b4b083890","tarball":"https://registry.npmjs.org/autotel-audit/-/autotel-audit-0.4.5.tgz","fileCount":11,"unpackedSize":221243,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/autotel-audit@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEKq/hg/Ri5dDwcGp/6kftVhvqCMoGfIW2mSvFIfIGQuAiBdDf3ZzJ21549wRuidJ1vVQPFwsZ97BFt853Kuv7d2bw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6c79b5cc-7cee-4762-a607-d8c1e6ab7458"}},"directories":{},"maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/autotel-audit_0.4.5_1783978669236_0.4920379521505669"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T19:10:43.351Z","modified":"2026-07-13T21:37:49.655Z","0.1.0":"2026-05-04T19:10:43.502Z","0.1.2":"2026-05-05T06:06:26.966Z","0.1.3":"2026-05-10T13:45:44.832Z","0.1.4":"2026-05-13T22:51:34.778Z","0.1.5":"2026-05-17T20:09:09.903Z","0.1.6":"2026-05-20T08:40:17.318Z","0.1.7":"2026-05-20T10:25:57.237Z","0.1.8":"2026-05-20T10:33:16.323Z","0.1.9":"2026-05-24T19:19:28.243Z","0.1.10":"2026-05-28T17:53:17.768Z","0.1.11":"2026-05-29T19:07:06.317Z","0.1.12":"2026-05-31T09:20:18.280Z","0.1.13":"2026-06-01T20:19:27.664Z","0.1.14":"2026-06-03T21:58:32.649Z","0.1.15":"2026-06-04T00:25:34.584Z","0.1.16":"2026-06-06T00:05:04.918Z","0.2.0":"2026-06-12T08:33:02.575Z","0.2.1":"2026-06-12T20:40:56.960Z","0.3.0":"2026-06-15T21:38:15.668Z","0.3.1":"2026-06-16T07:49:44.432Z","0.3.2":"2026-06-20T20:37:02.492Z","0.4.0":"2026-06-20T21:30:50.899Z","0.4.1":"2026-06-20T22:02:23.045Z","0.4.2":"2026-06-22T21:20:46.412Z","0.4.3":"2026-07-10T20:51:06.667Z","0.4.4":"2026-07-11T07:21:19.556Z","0.4.5":"2026-07-13T21:37:49.362Z"},"bugs":{"url":"https://github.com/jagreehal/autotel/issues"},"author":{"name":"Jag Reehal","email":"jag@jagreehal.com","url":"https://jagreehal.com"},"license":"Apache-2.0","homepage":"https://github.com/jagreehal/autotel#readme","keywords":["autotel","audit","compliance","opentelemetry","tail-sampling"],"repository":{"type":"git","url":"git+https://github.com/jagreehal/autotel.git","directory":"packages/autotel-audit"},"description":"Audit-focused helpers for Autotel (force-keep + structured audit instrumentation)","maintainers":[{"name":"jagreehal","email":"jag.reehal@gmail.com"}],"readme":"# autotel-audit\n\nAudit and security-event helpers for `autotel`. Provides structured audit logging with automatic tail-sampling bypass and OpenTelemetry attribute normalization.\n\n## What it provides\n\n- **`withAudit(...)`** — Wraps an operation with audit metadata, automatic outcome tagging (success/failure), and optional immediate emit\n- **`forceKeepAuditEvent(...)`** — Marks the current trace to bypass tail-drop sampling for compliance/audit trails\n- **`setAuditAttributes(...)`** — Writes normalized `audit.*` attributes on the active span with automatic type conversion\n- **`securityEvent(...)`** / **`withSecurity(...)`** — Typed security events (OWASP A09-aligned) with a stable `security.*` schema, force-keep by default, a credential-key guard, and automatic counter metrics\n- **`createSecuritySignalProcessor(...)`** — Zero-code security signals derived from the HTTP spans you already have: suspicious-path flagging, denied-response metrics, and per-client auth-failure burst detection\n- **`hashIdentifier(...)`** — Stable one-way digest for correlating PII-bearing identifiers (emails, IPs) without logging raw values\n\n## Features\n\n- **Structured Metadata** — Enforce consistent audit schemas with `AuditMetadata` interface\n- **Automatic Outcome Tagging** — Operations auto-tagged as `success` or `failure` (override with explicit `outcome` field)\n- **Sampling Bypass** — Force critical audit events through tail-sampling with `forceKeepAuditEvent()` or `options.forceKeep`\n- **Type-Safe Attributes** — Automatic serialization of complex types (Objects, Dates, Arrays) to OpenTelemetry-compatible values\n- **Request Context Integration** — Propagates actor ID, resource, and action across structured logs\n- **Compliance Ready** — Emit audit events immediately (`emitNow: true`) for real-time compliance systems\n\n## Quick Start\n\n```ts\nimport { trace } from 'autotel';\nimport { withAudit } from 'autotel-audit';\n\nexport const deleteUser = trace(async () => {\n  return withAudit(\n    { action: 'user.delete', resource: 'user', actorId: 'admin-42' },\n    async (_ctx, log) => {\n      // business logic\n      log.info('User deleted successfully');\n      return { ok: true };\n    },\n    { emitNow: true },\n  );\n});\n```\n\n## API Reference\n\n### `withAudit<T>(metadata, fn, options?)`\n\nWraps an async operation with audit metadata and handles success/failure outcomes.\n\n**Parameters:**\n\n- `metadata: AuditMetadata` — Audit event metadata (action, resource, actor, etc.)\n- `fn: (ctx, logger) => Promise<T>` — Async function receiving audit context and request logger\n- `options?: WithAuditOptions` — Optional configuration:\n  - `emitNow?: boolean` — Immediately emit the audit event (default: false)\n  - `forceKeep?: boolean` — Force event through tail-sampling (default: true)\n  - `ctx?: AuditContext` — Provide custom audit context (auto-resolved from trace if omitted)\n  - `logger?: RequestLogger` — Override the request logger instance\n\n**Example with custom context:**\n\n```ts\nconst ctx = {\n  traceId: 'abc-123',\n  spanId: 'def-456',\n  correlationId: 'xyz-789',\n  setAttribute: (k, v) => span.setAttribute(k, v),\n  setAttributes: (attrs) => span.setAttributes(attrs),\n};\n\nawait withAudit({ action: 'data.export' }, fn, { ctx, emitNow: true });\n```\n\n### `setAuditAttributes(metadata, ctx?)`\n\nWrite audit metadata as normalized `audit.*` span attributes without wrapping an operation.\n\n```ts\nimport { setAuditAttributes } from 'autotel-audit';\n\nsetAuditAttributes({\n  action: 'config.update',\n  resource: 'settings',\n  actorId: 'user-123',\n  category: 'admin',\n});\n// Sets: audit.action, audit.resource, audit.actorId, audit.category, autotel.audit=true\n```\n\n### `forceKeepAuditEvent(ctx?)`\n\nMark the active trace to bypass tail-drop sampling. Called automatically by `withAudit` unless `forceKeep: false`.\n\n```ts\nimport { trace } from 'autotel';\nimport { forceKeepAuditEvent } from 'autotel-audit';\n\nexport const readSecrets = trace(async (req) => {\n  if (req.user.role !== 'admin') {\n    forceKeepAuditEvent(); // Keep sensitive access attempts\n    throw new Error('Unauthorized');\n  }\n  // ...\n});\n```\n\n## Type-Safe Metadata\n\nDefine audit schemas for different operations:\n\n```ts\nimport type { AuditMetadata } from 'autotel-audit';\n\ninterface DeleteUserAudit extends AuditMetadata {\n  action: 'user.delete';\n  resource: 'user';\n  actorId: string;\n  reason?: string;\n}\n\ninterface PermissionUpdate extends AuditMetadata {\n  action: 'permission.update';\n  resource: 'role';\n  oldValue?: Record<string, boolean>;\n  newValue?: Record<string, boolean>;\n  actorId: string;\n}\n```\n\n## Common Patterns\n\n### Emit audit events only on errors\n\n```ts\nawait withAudit(\n  { action: 'account.suspend', resource: 'account', actorId: 'admin-1' },\n  async (ctx, log) => {\n    try {\n      await suspendAccount();\n    } catch (err) {\n      log.error(err); // Auto-tagged with outcome: failure\n      throw;\n    }\n  },\n  { emitNow: true },\n);\n```\n\n### Track sensitive operations with context\n\n```ts\nawait withAudit(\n  {\n    action: 'secret.access',\n    resource: 'api-key',\n    actorId: user.id,\n    secretType: 'api-key',\n    env: 'prod',\n  },\n  async () => {\n    // Fetch secret...\n  },\n  { emitNow: true, forceKeep: true },\n);\n```\n\n### Nested audit context in complex flows\n\n```ts\nexport const transferFunds = trace(async (transfer) => {\n  return withAudit(\n    {\n      action: 'transfer.execute',\n      resource: 'transaction',\n      actorId: transfer.initiator,\n      amount: transfer.amount,\n      fromAccount: transfer.from,\n      toAccount: transfer.to,\n    },\n    async (ctx, log) => {\n      const debitResult = await debitAccount(transfer.from, transfer.amount);\n      const creditResult = await creditAccount(transfer.to, transfer.amount);\n\n      log.info('Transfer completed', {\n        transactionId: debitResult.txId,\n        debitStatus: debitResult.status,\n        creditStatus: creditResult.status,\n      });\n\n      return { success: true, txId: debitResult.txId };\n    },\n    { emitNow: true },\n  );\n});\n```\n\n## Compliance & Sampling\n\n### Why force-keep audit events?\n\nTail-sampling decisions are made after spans complete. Critical audit trails need guaranteed export regardless of sampling rate. `forceKeepAuditEvent()` marks spans as keeper-worthy, ensuring they bypass statistical sampling.\n\n```ts\n// Default: force-keep is enabled (critical for audit)\nawait withAudit(metadata, fn);\n\n// Disable if audit backend has separate retention\nawait withAudit(metadata, fn, { forceKeep: false });\n\n// Manual control for hybrid scenarios\nif (isPrivilegedOperation) {\n  forceKeepAuditEvent();\n}\n```\n\n## Security Events (OWASP A09)\n\nOWASP A09:2025 (Security Logging & Alerting Failures) calls out missing logs for important events, unclear messages, and ineffective alerting. `securityEvent()` gives security-relevant behaviours a **stable, queryable schema** so backends can build detection rules and dashboards instead of grepping free text.\n\n```ts\nimport { securityEvent, hashIdentifier } from 'autotel-audit';\n\n// Inside a trace()-wrapped handler:\nsecurityEvent({\n  name: 'auth.login.failed', // autocomplete for well-known names, free-form allowed\n  category: 'authentication',\n  outcome: 'failure',\n  severity: 'warning',\n  actorId: hashIdentifier(email), // correlate without logging PII\n  reason: 'invalid_password',\n});\n// Sets: security.event, security.category, security.outcome, security.severity,\n//       security.actor_id, security.reason, autotel.security=true\n```\n\n### Design guarantees\n\n- **Force-keep by default** — an attack you sampled away is an attack you cannot investigate. Opt out per-event with `forceKeep: false` for high-volume info events.\n- **Credential-key guard** — values under credential-shaped keys (`token`, `apiKey`, `password`, …, reusing autotel core's `REDACTOR_PATTERNS.sensitiveKey`) are never emitted, even by accident. Dropped key names are recorded in `security.dropped_keys`.\n- **Stable schema** — `security.event` / `security.category` / `security.outcome` / `security.severity` are always present; everything else flattens under `security.*`.\n- **Hash, don't log** — `hashIdentifier(value, { salt })` produces a stable sha256 digest for emails/IPs. Never log secrets, hashed or not.\n\n### Wrapping security-sensitive operations\n\n```ts\nimport { withSecurity } from 'autotel-audit';\n\nawait withSecurity(\n  {\n    name: 'api_key.created',\n    category: 'secrets',\n    outcome: 'success',\n    actorId: user.id,\n    keyId: newKey.id, // safe: identifier, not the key material\n  },\n  async () => createApiKey(user.id),\n  { emitNow: true },\n);\n// Success → outcome as given; thrown error → outcome: 'error',\n// severity escalated to at least 'error', logged, rethrown\n```\n\n### Categories\n\n`authentication` · `authorization` · `data_access` · `admin_action` · `configuration` · `secrets` · `rate_limit` · `validation` · `supply_chain` · `llm`\n\n### `securityEvent` vs `withAudit`\n\n- **`withAudit`** — compliance trail for business operations (\"who did what to which resource\").\n- **`securityEvent`** — detection signal for security-relevant behaviour (\"is the system being abused\"). Categories, outcomes, and severities are closed unions so alerting rules don't drift.\n\nThey compose: a sensitive admin operation can carry both an `audit.*` trail and a `security.*` event.\n\n### Metrics for alerting\n\nEvery `securityEvent()` also increments the `autotel.security.events` counter (attributes: `event`, `category`, `outcome`, `severity`) so security teams can alert on **rates** — failed-login spikes, denied-access bursts — without log-based alerting. Disable per-event with `metrics: false`.\n\n> Cardinality: the event name is a counter attribute. Keep names to a stable catalogue; never interpolate user input into them.\n\n### Library vs backend responsibility\n\nThis package's job ends at emitting **structured, correlated, redaction-safe, sampling-exempt** events. Detection rules, alert thresholds, dashboards, and SIEM routing belong in your observability backend.\n\n## Zero-Code Security Signals\n\nMost security-relevant traffic never reaches your handlers — scanners probing `/.env`, traversal attempts, credential stuffing producing 401 storms. `createSecuritySignalProcessor()` derives security signals from the **HTTP spans your instrumentation already produces**, with no per-route code:\n\n```ts\nimport { init } from 'autotel';\nimport { createSecuritySignalProcessor } from 'autotel-audit';\n\ninit({\n  service: 'api',\n  spanProcessors: [\n    createSecuritySignalProcessor({\n      onSignal: (signal) => {\n        // optional: forward to Slack/SIEM/pager\n      },\n    }),\n  ],\n});\n```\n\nWhat it does:\n\n| Signal | When | Output |\n|---|---|---|\n| **Suspicious request** | Request path matches a probe pattern (path traversal, `/.env` / `/.git` / `/etc/passwd` probes, SQLi/XSS probes, null bytes) | Span flagged `security.suspicious_request=true` + `security.signal=<pattern>`, **force-kept through tail sampling**, `autotel.security.http.suspicious` counter, `onSignal` callback |\n| **Denied response** | Response status is 401/403/429 (configurable) | `autotel.security.http.denied{status}` counter |\n| **Auth-failure burst** | One client crosses N denied responses (default 10) inside a sliding window (default 60s), keyed by `client.address` | `autotel.security.anomaly` counter + `onSignal` callback — fired **once per crossing**, so alert volume stays bounded under attack |\n\nWhy this pairing matters: a credential-stuffing run at 10% baseline sampling is invisible in traces and a `/.env` probe is one boring 404 in your logs — but flagged spans **bypass tail sampling**, and the counters give security teams something to alert on. The interesting traffic is guaranteed to exist in your backend.\n\nDesign notes:\n\n- Patterns are **conservative** (scanner/probe traffic, not a WAF) — `union+station+select` in a search query does not flag. Extend with `extraPatterns`.\n- Burst tracking is **per-process** with bounded memory (`maxKeys`, default 10k clients, oldest evicted) — random-IP floods can't grow the map forever. For fleet-wide correlation, alert on the metrics in your backend instead.\n- Both metric emission and your `onSignal` callback are guarded — they can never break the span pipeline.\n\n## Integration with Observability Backends\n\nAudit attributes are standard OpenTelemetry span attributes and work with any OTLP-compatible backend (Datadog, New Relic, Jaeger, etc.).\n\n- Attributes are stored as `audit.action`, `audit.resource`, `audit.actorId`, etc.\n- Root span contains `autotel.audit: true` for filtering\n- Use backend span filters to create audit dashboards and alerts\n\n## See Also\n\n- **[Advanced Features](/advanced)** — Trace helpers, metadata flattening, isolated tracer providers\n- **[Request Logging](/integrations/logging)** — Structured request context and event emission\n- **[Autotel Core](/)** — `trace()`, `span()`, and request context patterns\n","readmeFilename":"README.md"}