{"_id":"@absolutejs/telemetry","_rev":"9-754c02f08414ac5a7558f8271fcaba6b","name":"@absolutejs/telemetry","dist-tags":{"latest":"0.3.1"},"versions":{"0.0.1":{"name":"@absolutejs/telemetry","version":"0.0.1","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/telemetry@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"1ae582cea2c04cbda9e3d604b291454ac66ae364","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.0.1.tgz","fileCount":7,"integrity":"sha512-CicAA//sWPxuHC6LKaixFIoeHTzzbBfXu0A73b/FREj/9oLHvO3cJdv/EmGUZMvFEq+K+LyOSyiNEdiJdCeRvQ==","signatures":[{"sig":"MEUCIQCf6gqQFRT3DTyvLqhTnnCuNUAylJe7HAkGSoTIhshBZgIgFnciLMXa4DyikzcSZBi0UL2Wn6ZnSlgJk5s2BOo2mJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34885},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"1ae582cea2c04cbda9e3d604b291454ac66ae364","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 && 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-CicAA//sWPxuHC6LKaixFIoeHTzzbBfXu0A73b/FREj/9oLHvO3cJdv/EmGUZMvFEq+K+LyOSyiNEdiJdCeRvQ==","repository":{"url":"https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.8.3","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations and a tracerOrNoop helper, and pins ABS_ATTRS semantic conventions so spans from runtime / sync / queue / ","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.0.1_1780165872851_0.2679771730008622","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/telemetry","version":"0.0.2","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/telemetry@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6c44fc6fa668a95ac06d9e997ad2dacc61e48dbb","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.0.2.tgz","fileCount":7,"integrity":"sha512-MwbcKNZaY8ByzZ7HKergCmGkc219A5cQfn0lyljmWMYxdXecuXp2I5JkCu28K52vgbC0z1b03grVNHQgBeg5sQ==","signatures":[{"sig":"MEQCIHP9pcN7QgzTO6uGOd+hmtiKOrbB/c746mHhRVjs1NTbAiB5ZgcBRCA2FZeOTdsKTJV4t3ZOnIuRXD9Spf1stNeLnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35989},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6c44fc6fa668a95ac06d9e997ad2dacc61e48dbb","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 && 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-MwbcKNZaY8ByzZ7HKergCmGkc219A5cQfn0lyljmWMYxdXecuXp2I5JkCu28K52vgbC0z1b03grVNHQgBeg5sQ==","repository":{"url":"https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.8.3","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations and a tracerOrNoop helper, and pins ABS_ATTRS semantic conventions so spans from runtime / sync / queue / ","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.0.2_1780166238599_0.07544990092192672","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/telemetry","version":"0.0.3","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/telemetry@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6d6c993932daf8dc5ef52281263f480e995f6411","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.0.3.tgz","fileCount":7,"integrity":"sha512-lZSFmGaQa4MOC2bJbVK6uh3c2inbybgLqPGiYKKyUGUt8hfe5b8PQa40ItVKdD4aZbWwp/dk84ElhD4yIy0JbA==","signatures":[{"sig":"MEYCIQChL46mTKlWjj92MLAryUo893nSS2YmoZGNx2ry39NJNwIhAP5PktgCnIqu6UD/BsC0Y99/ikXPeesq4JcZXOk/J7nF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39399},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6d6c993932daf8dc5ef52281263f480e995f6411","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 && 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-lZSFmGaQa4MOC2bJbVK6uh3c2inbybgLqPGiYKKyUGUt8hfe5b8PQa40ItVKdD4aZbWwp/dk84ElhD4yIy0JbA==","repository":{"url":"https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.8.3","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations and a tracerOrNoop helper, and pins ABS_ATTRS semantic conventions so spans from runtime / sync / queue / ","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.0.3_1780170692202_0.2626995190396635","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/telemetry","version":"0.1.0","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/telemetry@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"f37389afb039d3f35b2067309efb1ef23039086f","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.1.0.tgz","fileCount":11,"integrity":"sha512-UZpYPldS1m5rE/MXDQnlng6zJN4AruCCcS7zdXkkcKBiIeE+Y4ajSZvbVLVocSV1H4NBPaxe+cKKddY6zyCCbQ==","signatures":[{"sig":"MEUCIEWdmo9mH3kOC/V0i1ycOHQ+lKBQq6Hn3/kA0tUvb9lOAiEAn3lmRB17Qwwc0jbET0W0+2N8lGPDbSjGvh1J+b8/xJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103610},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"f37389afb039d3f35b2067309efb1ef23039086f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts --outdir dist --root src --sourcemap --target=bun && 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-UZpYPldS1m5rE/MXDQnlng6zJN4AruCCcS7zdXkkcKBiIeE+Y4ajSZvbVLVocSV1H4NBPaxe+cKKddY6zyCCbQ==","repository":{"url":"https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.8.3","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.1.0_1780223195565_0.24445839083307086","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/telemetry","version":"0.1.1","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/telemetry@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"425eb5edc3fd4982765fc4c5493cc396a9a74751","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.1.1.tgz","fileCount":11,"integrity":"sha512-NcwsZytPOVQSnksYVofmvdDNqIwIJLbUmAMAZD5v2gLy98JgtvEmR1kHGNIXGAZgHA4rqofQt7PZlVCCwlx2mQ==","signatures":[{"sig":"MEUCIFz+gdSMeWv+zEUUEfScF8g444Xhe81cY+m51ufcwQqFAiEA3OymwLNSYmPxk2ANGRPA/WVvWsg+Ex4N2Q609OaK7zQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105670},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"425eb5edc3fd4982765fc4c5493cc396a9a74751","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts --outdir dist --root src --sourcemap --target=bun && 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-NcwsZytPOVQSnksYVofmvdDNqIwIJLbUmAMAZD5v2gLy98JgtvEmR1kHGNIXGAZgHA4rqofQt7PZlVCCwlx2mQ==","repository":{"url":"https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.8.3","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.1.1_1780545655472_0.8718091408640085","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/telemetry","version":"0.2.0","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/telemetry@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/telemetry","bugs":{"url":"https://github.com/absolutejs/telemetry/issues"},"dist":{"shasum":"0a3f7e2779ff0932bcf288426013a8f9e931de2e","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.2.0.tgz","fileCount":15,"integrity":"sha512-4Xh9lShoa1QrSvzRRjIR/5h5pqed60Wc6SLliCkoGjZd8XOtQM3tP4aKTA3LgQ22tUDmxpcZitRzuDU9dMX9Fw==","signatures":[{"sig":"MEQCIFVAywuHwarN9XPg4BeGd54Hz59Iqh6k1FqkjcIJALeXAiBh1qHeZZcOaj8RqQuNjE5yMNYjgI3Gay9UAHTCGFGY2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145382},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"}},"gitHead":"9ddd5bf17ffaec2df6b4ec70c311892dc373dbf7","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts src/agent.ts --outdir dist --root src --sourcemap --target=bun && 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"},"repository":{"url":"git+https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.9.2","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.2.0_1784168837760_0.1923745020555696","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@absolutejs/telemetry","version":"0.2.1","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/telemetry@0.2.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/telemetry","bugs":{"url":"https://github.com/absolutejs/telemetry/issues"},"dist":{"shasum":"def460bec323d7147ba2a7f1de05560d20493cff","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.2.1.tgz","fileCount":15,"integrity":"sha512-F3xGrKQ9d9MILlTw3glURAaMWzYTq7zo3XPvIdybWS7tv0KTRXqrC73I0AB5hjwj3k3zYCEWf0IgHPtBU2sMhA==","signatures":[{"sig":"MEQCIEI5Nn0eflMfqxrD3vVbJsfbmC0JRVfWbQ/9h2Z0bN5mAiBGUz5N1tWjVUvMwKDdQByHIKwMJAI0e30VaaXYQnOPfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156181},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"}},"gitHead":"63977f602a6d579a6c6f0809f52571abfc2620ec","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts src/agent.ts --outdir dist --root src --sourcemap --target=bun --external @absolutejs/handoff && 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"},"repository":{"url":"git+https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.9.2","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@absolutejs/handoff":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.2.1_1785372207579_0.940520121660229","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/telemetry","version":"0.3.0","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/telemetry@0.3.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/telemetry","bugs":{"url":"https://github.com/absolutejs/telemetry/issues"},"dist":{"shasum":"2c299b1c4038aed9fc3df4ef2b080fdb715cb551","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.3.0.tgz","fileCount":23,"integrity":"sha512-BPpx1Wl0asQh/vEX32dS3R6SfXZuaxxU/aFkHHtW1kSKYx0X32aYU6KxYICfDEOeScFDKn8AdkWojVEzVZG+Kw==","signatures":[{"sig":"MEUCIQDQ18XYtO8us7gQ7hyex+owHQuOP2dOFuT+Yz/pMMNcbAIgBGNgzwnr7uC1B7YjxYaRMepIcPfF2T0ETT7hpcWp9Zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330307},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","import":"./dist/drizzle.js","default":"./dist/drizzle.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"}},"gitHead":"2e95393679349a2e84cea7c020b95f536c68eed9","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts src/agent.ts src/store.ts src/drizzle.ts --outdir dist --root src --sourcemap --target=bun --external @absolutejs/handoff --external drizzle-orm --external 'drizzle-orm/*' && 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"},"repository":{"url":"git+https://github.com/absolutejs/telemetry.git","type":"git"},"_npmVersion":"10.9.2","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@absolutejs/handoff":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","drizzle-orm":"1.0.0-rc.4","@electric-sql/pglite":"0.3.14"},"peerDependencies":{"drizzle-orm":">=1.0.0-rc.4 <2"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/telemetry_0.3.0_1786076862130_0.22200141178760857","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@absolutejs/telemetry","version":"0.3.1","description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","repository":{"type":"git","url":"https://github.com/absolutejs/telemetry.git"},"homepage":"https://github.com/absolutejs/telemetry","bugs":{"url":"https://github.com/absolutejs/telemetry/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"Apache-2.0","author":"Alex Kahn","publishConfig":{"access":"public"},"keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/otlpHttp.ts src/agent.ts src/store.ts src/drizzle.ts --outdir dist --root src --sourcemap --target=bun --external @absolutejs/handoff --external drizzle-orm --external 'drizzle-orm/*' && tsc --project tsconfig.build.json","test":"bun test","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish"},"dependencies":{"@absolutejs/handoff":"0.1.0"},"devDependencies":{"@electric-sql/pglite":"0.3.14","@types/bun":"1.3.14","drizzle-orm":"1.0.0-rc.4","prettier":"3.5.3","typescript":"5.8.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./otlp-http":{"types":"./dist/otlpHttp.d.ts","import":"./dist/otlpHttp.js","default":"./dist/otlpHttp.js"},"./agent":{"types":"./dist/agent.d.ts","import":"./dist/agent.js","default":"./dist/agent.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","import":"./dist/drizzle.js","default":"./dist/drizzle.js"}},"peerDependencies":{"drizzle-orm":">=1.0.0-rc.4 <2"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_id":"@absolutejs/telemetry@0.3.1","_integrity":"sha512-Apd/FfS1BbDyeMDwoWsSx8ql5MeLjLY7MQn0yAHz1T1wxqpnQgFTdYKbvqcfAJ6/hpQLTHw4EY/QkihwtQuPjQ==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"80c1f3fb6937daedc7c56c4f4e013e7b284db187","dist":{"integrity":"sha512-Apd/FfS1BbDyeMDwoWsSx8ql5MeLjLY7MQn0yAHz1T1wxqpnQgFTdYKbvqcfAJ6/hpQLTHw4EY/QkihwtQuPjQ==","shasum":"80c1f3fb6937daedc7c56c4f4e013e7b284db187","tarball":"https://registry.npmjs.org/@absolutejs/telemetry/-/telemetry-0.3.1.tgz","fileCount":23,"unpackedSize":443735,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICRjO7/RV3kLZ+gXTyhoJI9eG/1dhMPr/KSsJwUd61KTAiBrGzqrst9T4Q8qMTb8ylwhVqboYgkvfgRFBBpa7fU7Aw=="}]},"_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/telemetry_0.3.1_1786081299865_0.9386512625379497"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T18:31:12.654Z","modified":"2026-08-07T05:41:40.159Z","0.0.1":"2026-05-30T18:31:13.022Z","0.0.2":"2026-05-30T18:37:18.748Z","0.0.3":"2026-05-30T19:51:32.371Z","0.1.0":"2026-05-31T10:26:35.732Z","0.1.1":"2026-06-04T04:00:55.628Z","0.2.0":"2026-07-16T02:27:17.889Z","0.2.1":"2026-07-30T00:43:27.743Z","0.3.0":"2026-08-07T04:27:42.269Z","0.3.1":"2026-08-07T05:41:40.017Z"},"bugs":{"url":"https://github.com/absolutejs/telemetry/issues"},"author":"Alex Kahn","license":"Apache-2.0","homepage":"https://github.com/absolutejs/telemetry","keywords":["opentelemetry","otel","observability","tracing","absolutejs"],"repository":{"type":"git","url":"https://github.com/absolutejs/telemetry.git"},"description":"Tiny shared OpenTelemetry substrate for the AbsoluteJS ecosystem. Type-replicates @opentelemetry/api's Tracer/Span shape, ships noop implementations + a tracerOrNoop helper + a zero-dep OTLP-HTTP-JSON span exporter (/otlp-http subpath), and pins ABS_ATTRS","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/telemetry\n\nTiny shared OpenTelemetry substrate for the AbsoluteJS substrate\npackages.\n\nIt also ships a provider-neutral agent observer at\n`@absolutejs/telemetry/agent`. Pass `createAgentTelemetryObserver(tracer)`\ndirectly as `@absolutejs/agent-runtime`'s `onEvent` callback to correlate\nruns, signed discovery identities, steps, effects, budgets, and failures.\nPrompts and effect payloads are excluded, and actor IDs are private by default.\n\n**Docs:** [absolutejs.com/documentation/telemetry-package](https://absolutejs.com/documentation/telemetry-package)\n\n**What it is.** Type-replicated OTel surface + noop implementations +\nthe `tracerOrNoop()` helper + `ABS_ATTRS` semantic conventions. ~250\nLOC, zero runtime deps.\n\n**What it solves.** The deep-research audit's G2 gap: substrate\npackages (runtime / sync / queue / router / secrets / rate-limit /\nisolated-jsc) need OTel spans for the \"one trace from edge → runtime\n→ sync → queue → secret\" SRE narrative. Without a shared substrate,\nevery package writes its own peer-dep / noop-fallback boilerplate\nand picks its own attribute names.\n\n**How it's wired.** Every substrate package factory takes an\noptional `tracerProvider?: TracerProvider`. Internally it calls:\n\n```ts\nconst tracer = tracerOrNoop(options.tracerProvider, '@absolutejs/<pkg>');\n```\n\nand uses `tracer.startActiveSpan(name, options, fn)` in hot paths.\nWhen the user passes their `@opentelemetry/api` `TracerProvider`, real\nspans flow through. When they don't, the noop tracer executes the\ncallback with zero allocations.\n\n## Install\n\n```sh\nbun add @absolutejs/telemetry\n# Optional — only if you want real OTel spans:\nbun add @opentelemetry/api @opentelemetry/sdk-node\n```\n\nThe package has **no** runtime dependencies. It does not peer-dep\n`@opentelemetry/api` — its types are structurally compatible, so a\nreal OTel `TracerProvider` satisfies the shape this package expects.\n\n## Durable trace storage\n\n`@absolutejs/telemetry` owns the provider-neutral `TraceStore` contract.\n`createTraceStoreSpanExporter()` projects OpenTelemetry SDK spans into a\nbounded, credential-safe stored shape and writes batches through that contract.\nIt drops secret-bearing attribute keys, strips URL query/hash values, bounds\nattributes/events/links, drops request/response bodies and database statements\nby default, supports an application-specific attribute allowlist, and preserves\nnanosecond timestamps as strings.\n\n`createFanoutSpanExporter()` sends each batch to multiple exporters and reports\npartial failures without hiding a healthy destination. This supports durable\nfirst-party storage alongside an optional OTLP collector without coupling the\nstorage contract to either provider.\n\nUse `createMemoryTraceStore()` for tests. For production PostgreSQL/Neon\nstorage, import `createDrizzleTraceStore()` and `telemetryDrizzleSchema` from\n`@absolutejs/telemetry/drizzle`. The exported table is intended for host-owned\nDrizzle migrations. Writes are idempotent on `(trace_id, span_id)`; the store\nsupports filtered trace summaries, complete trace retrieval, retention through\n`prune()`, aggregate storage statistics, bucketed error/latency time series,\nper-service health summaries, and a parent/child service dependency map without\nprescribing a hosted observability vendor. The in-memory implementation exposes\nthe same `TraceAnalyticsStore` interface for local development and tests.\n\n## Usage\n\n### As a substrate-package author\n\n```ts\nimport { tracerOrNoop, ABS_ATTRS, type TracerProvider } from '@absolutejs/telemetry';\n\nexport type MyPackageOptions = {\n  // existing options...\n  tracerProvider?: TracerProvider;\n};\n\nexport const createMyPackage = (options: MyPackageOptions) => {\n  const tracer = tracerOrNoop(options.tracerProvider, '@absolutejs/my-package');\n\n  return {\n    doWork: async (input: string) => {\n      return tracer.startActiveSpan(\n        'my-package.doWork',\n        { attributes: { [ABS_ATTRS.tenant]: input } },\n        async (span) => {\n          try {\n            const result = await actuallyDoWork(input);\n            return result;\n          } catch (error) {\n            span.recordException(error);\n            throw error;\n          } finally {\n            span.end();\n          }\n        }\n      );\n    },\n  };\n};\n```\n\nOr use the convenience wrapper `withSpan(tracer, name, options, fn)`\nthat auto-sets `status` + `recordException` + `end()` for the common\ncase.\n\n### As a consumer wiring it all together\n\n```ts\nimport { NodeTracerProvider } from '@opentelemetry/sdk-node';\nimport { createMyPackage } from '@absolutejs/my-package';\n\nconst tracerProvider = new NodeTracerProvider({ /* exporter, sampler, etc */ });\ntracerProvider.register();\n\nconst pkg = createMyPackage({ tracerProvider });\n// Spans now flow through to your configured exporter.\n```\n\n## API\n\n### `tracerOrNoop(provider, name, version?)`\n\nReturns `provider.getTracer(name, version)` if `provider` is defined;\notherwise a noop tracer. The canonical entry point for substrate\npackages.\n\n### `withSpan(tracer, name, options, fn)` / `withSpanSync(...)`\n\nWrap an async (or sync) callback in a span that auto-sets:\n\n- `status: OK` on success\n- `status: ERROR` + `recordException(error)` on throw\n- `span.end()` in either case (`finally`)\n\n```ts\nconst result = await withSpan(\n  tracer,\n  'sync.runMutation',\n  { attributes: { [ABS_ATTRS.mutation]: 'createIssue' } },\n  async (span) => {\n    span.setAttribute(ABS_ATTRS.mutationAttempt, 1);\n    return await engine.runMutation('createIssue', args, ctx);\n  }\n);\n```\n\n### `createNoopSpan()` / `createNoopTracer()` / `createNoopTracerProvider()`\n\nSingletons. Useful in tests + as default fallbacks.\n\n### `ABS_ATTRS`\n\nStandard attribute names. Use these instead of inline string literals\nso cross-package queries (`abs.tenant = \"acme\"`) resolve in one\nfilter:\n\n```\nabs.tenant                  // tenant / shard key\nabs.shard.id\n\n// sync\nabs.engine.id\nabs.collection\nabs.mutation\nabs.mutation.attempt\nabs.subscription.id\nabs.batch.size\nabs.cluster.origin\n\n// queue\nabs.job.id\nabs.job.kind\nabs.job.attempt\nabs.job.max_attempts\nabs.worker.id\n\n// runtime\nabs.runtime.key\nabs.runtime.pid\nabs.runtime.port\nabs.runtime.exit_reason\nabs.runtime.readiness_ms\n\n// router\nabs.route.shard\nabs.route.decision\n\n// secrets\nabs.secret.name\nabs.secret.fingerprint\n\n// audit\nabs.audit.kind\n\n// handoff\nabs.handoff.correlation_id\nabs.handoff.operation\nabs.handoff.outcome\nabs.handoff.service\nabs.handoff.source\nabs.handoff.attempt\nabs.handoff.contradiction\n```\n\nAdding NEW attributes is a minor bump; renaming an existing one is a\nbreaking change (anyone querying their span store has hard-coded the\nold name).\n\n### Type re-exports\n\n`Tracer`, `Span`, `TracerProvider`, `SpanContext`, `SpanStatus`,\n`SpanStatusCode`, `SpanKind`, `SpanOptions`, `Attributes`,\n`AttributeValue`, `AbsAttrName`. Mirror `@opentelemetry/api` exactly;\na real OTel `TracerProvider` satisfies these types structurally.\n\n`handoffSpanAttributes()` and `handoffSummarySpanAttributes()` project\n`@absolutejs/handoff` evidence into these conventions without copying messages,\nreferences, external ids, raw payloads, or customer data into spans.\n\n## License\n\n[Apache 2.0](./LICENSE). Tier B substrate-adjacent under the\nAbsoluteJS licensing policy.\n","readmeFilename":"README.md"}