{"_id":"@allstak/otel","_rev":"8-fa46db574aae0a50ad446aedb2c8b7cb","name":"@allstak/otel","dist-tags":{"beta":"0.1.1","latest":"0.1.2"},"versions":{"0.1.0-beta.1":{"name":"@allstak/otel","version":"0.1.0-beta.1","license":"MIT","_id":"@allstak/otel@0.1.0-beta.1","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/allstak-io/allstak-otel/issues"},"dist":{"shasum":"b557e8672d2eeb8833d9e45773b2eb2e6e95f8a8","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.0-beta.1.tgz","fileCount":9,"integrity":"sha512-GFcurN7LpISb09dJmWOVz/iTGbznaZsriwFbE6JQ7kvpHtDz9BlGy6R4mTescpj7AmITBNEtnhf18FGZXc50IQ==","signatures":[{"sig":"MEQCIE7w5hc2CA1oeRFeGHQeGxYB/d4bjEKEdLaZ8rGJx7SPAiBJMy2nZ1Lw2sIQdpA2quTfF3jfvb6FqmqiicAG/A6G8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24320},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a5d491195c5b4c72191d2f29811fbccac8f58644","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","pack:dry":"npm pack --dry-run"},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"repository":{"url":"git+https://github.com/allstak-io/allstak-otel.git","type":"git"},"_npmVersion":"10.9.3","description":"Internal experimental AllStak OpenTelemetry OTLP JSON exporter preview. Public Stable certification is not complete.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.1","typescript":"^5.3.0"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/otel_0.1.0-beta.1_1778477494094_0.9614504800207635","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"@allstak/otel","version":"0.1.0-beta.2","license":"MIT","_id":"@allstak/otel@0.1.0-beta.2","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/allstak-io/allstak-otel/issues"},"dist":{"shasum":"6afd684bdbe5f49a6d45b03b15263aa5d93fd9d1","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.0-beta.2.tgz","fileCount":9,"integrity":"sha512-39aayyjZx7FxFyo9ZJ/ocMe4Sr2QKhK65wxMNDBtk+4nl0XaXUE17C+zt96Nm4s5DralS8KZvJSqOWE0bd+arg==","signatures":[{"sig":"MEQCIH4Scho6ICqb2GgxGl8AfpEPTDIC3ajRrkUif/P41wR5AiB8A+zPgG/R/3Dxio95AG/bLcyKUSckljGswCrNkxTtAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25924},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b8dc2b48dd58dba61d81516e3dcd65dc0842c4f1","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","pack:dry":"npm pack --dry-run"},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"repository":{"url":"git+https://github.com/allstak-io/allstak-otel.git","type":"git"},"_npmVersion":"10.9.3","description":"Internal experimental AllStak OpenTelemetry OTLP JSON exporter preview. Public Stable certification is not complete.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.1","typescript":"^5.3.0"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/otel_0.1.0-beta.2_1778480064254_0.20169223891537613","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"@allstak/otel","version":"0.1.0-beta.4","license":"MIT","_id":"@allstak/otel@0.1.0-beta.4","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/AllStak/allstak-otel/issues"},"dist":{"shasum":"e3d4bf0cd85814681c8460dafac8a44fa85bf945","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.0-beta.4.tgz","fileCount":10,"integrity":"sha512-KuJDim7OyXcdwiDDko/J+ellIpDCuXAMvEnVwMeMKxjJq9A18X2nZV7asPL3Ap27AswW/4F5Rnvr/1YYQfkmig==","signatures":[{"sig":"MEYCIQDrKPKSo7Dk9SioMz/kLzkhWp6BU2bSqReM3+DY8LZSzQIhAPdBTK6MljXZtRZIq7wVto0Hz0nqejvOnZhfNv1k/p5e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102196},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a964504587f6efb2c23d794e671d90ad447489f6","scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","pack:dry":"npm pack --dry-run"},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"repository":{"url":"git+https://github.com/AllStak/allstak-otel.git","type":"git"},"_npmVersion":"10.9.3","description":"AllStak OpenTelemetry OTLP JSON exporter (beta). Batches, retries, and redacts sensitive attributes before sending spans to AllStak.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.1","typescript":"^5.3.0"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/otel_0.1.0-beta.4_1779125160520_0.4780229701116949","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@allstak/otel","version":"0.1.0","license":"MIT","_id":"@allstak/otel@0.1.0","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/AllStak/allstak-otel/issues"},"dist":{"shasum":"b0d38b72d0d21b4e9bfe6e73fcd5162fe03aab42","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.0.tgz","fileCount":10,"integrity":"sha512-39wVC4kRS6JfHC1+3VUcsfvVvsAmemU8OKhYMmLr3SnePoXtyTRc1C2LymMMItKkPBCdbMrNH11PtELwek1tzw==","signatures":[{"sig":"MEUCIQClnieobbO9uNuIvjVBtMYZepPmurONrjqwZ6J+tEbGcQIgVnwzimr+qJQn1nHWyfrRytZtIm4xu+F/nT19uALs7Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allstak%2fotel@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401728},"main":"./dist/index.js","_from":"file:/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","pack:dry":"npm pack --dry-run"},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"_resolved":"/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.0.tgz","_integrity":"sha512-39wVC4kRS6JfHC1+3VUcsfvVvsAmemU8OKhYMmLr3SnePoXtyTRc1C2LymMMItKkPBCdbMrNH11PtELwek1tzw==","repository":{"url":"git+https://github.com/AllStak/allstak-otel.git","type":"git"},"_npmVersion":"10.8.2","description":"AllStak OpenTelemetry OTLP JSON exporter (beta). Batches, retries, and redacts sensitive attributes before sending spans to AllStak.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.1","typescript":"^5.3.0"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/otel_0.1.0_1780080730691_0.6402032220599325","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@allstak/otel","version":"0.1.1","license":"MIT","_id":"@allstak/otel@0.1.1","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/AllStak/allstak-otel/issues"},"dist":{"shasum":"1b17b7bafb346055e6a1d159899d2564ed523694","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.1.tgz","fileCount":10,"integrity":"sha512-EaFK9bDUS3693t8HrGdKUlIcB5BaVf/gqFazh/Jv+jDNy+yE2acyRhPXQ1NmyXSOv95yqkwkwzVLPQqdP22xRw==","signatures":[{"sig":"MEUCIQCZaW3wzyYPQ1gRIx16XT/5UIZaG4Ak8oY6jaJIaw1sZQIgBFhuuRcgkAgnQryGDz4fZuh7I/nsK2bAOXtY5Nw29p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allstak%2fotel@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401309},"main":"./dist/index.js","_from":"file:/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","pack:dry":"npm pack --dry-run"},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"_resolved":"/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.1.tgz","_integrity":"sha512-EaFK9bDUS3693t8HrGdKUlIcB5BaVf/gqFazh/Jv+jDNy+yE2acyRhPXQ1NmyXSOv95yqkwkwzVLPQqdP22xRw==","repository":{"url":"git+https://github.com/AllStak/allstak-otel.git","type":"git"},"_npmVersion":"10.8.2","description":"AllStak OpenTelemetry OTLP JSON exporter (beta). Batches, retries, and redacts sensitive attributes before sending spans to AllStak.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.1","typescript":"^5.3.0"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/otel_0.1.1_1780099338312_0.8355803973413738","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@allstak/otel","version":"0.1.2","description":"AllStak OpenTelemetry OTLP JSON exporter (beta). Batches, retries, and redacts sensitive attributes before sending spans to AllStak.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"repository":{"type":"git","url":"git+https://github.com/AllStak/allstak-otel.git"},"homepage":"https://allstak.sa","bugs":{"url":"https://github.com/AllStak/allstak-otel/issues"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","test":"vitest run","pack:dry":"npm pack --dry-run"},"peerDependencies":{"@opentelemetry/sdk-trace-base":">=1.0.0"},"peerDependenciesMeta":{"@opentelemetry/sdk-trace-base":{"optional":true}},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","vitest":"^1.6.1"},"engines":{"node":">=20"},"license":"MIT","_id":"@allstak/otel@0.1.2","_integrity":"sha512-1xxyAKe6ALKNs1FCtVfAHMQh8RgvW5UcPFh1w+gZbrpso9KuFQuyLff3pvRA4CD2eNbHFiGKsSI+EH3pEEdELg==","_resolved":"/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.2.tgz","_from":"file:/home/runner/work/allstak-otel/allstak-otel/pack/allstak-otel-0.1.2.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1xxyAKe6ALKNs1FCtVfAHMQh8RgvW5UcPFh1w+gZbrpso9KuFQuyLff3pvRA4CD2eNbHFiGKsSI+EH3pEEdELg==","shasum":"e1b706f6bf1edbc222eef6337f52115a7bf26915","tarball":"https://registry.npmjs.org/@allstak/otel/-/otel-0.1.2.tgz","fileCount":10,"unpackedSize":401309,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allstak%2fotel@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpzhhZOsiwti0kfX3jeGM3VGPKDCGMxOk4EPzAj1y+TAIgEyiIAljtSNPMCkaQGrsl0rF0/9kLBOEB194niu/2xsE="}]},"_npmUser":{"name":"allstak-","email":"hello@allstak.sa"},"directories":{},"maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/otel_0.1.2_1780196347049_0.5239444297703235"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T05:31:33.990Z","modified":"2026-05-31T02:59:07.521Z","0.1.0-beta.1":"2026-05-11T05:31:34.252Z","0.1.0-beta.2":"2026-05-11T06:14:24.390Z","0.1.0-beta.4":"2026-05-18T17:26:00.691Z","0.1.0":"2026-05-29T18:52:10.854Z","0.1.1":"2026-05-30T00:02:18.471Z","0.1.2":"2026-05-31T02:59:07.206Z"},"bugs":{"url":"https://github.com/AllStak/allstak-otel/issues"},"license":"MIT","homepage":"https://allstak.sa","repository":{"type":"git","url":"git+https://github.com/AllStak/allstak-otel.git"},"description":"AllStak OpenTelemetry OTLP JSON exporter (beta). Batches, retries, and redacts sensitive attributes before sending spans to AllStak.","maintainers":[{"name":"allstak-","email":"hello@allstak.sa"}],"readme":"# @allstak/otel\n\nAllStak OpenTelemetry exporter for Node.js. Converts OpenTelemetry spans to OTLP JSON and sends them to AllStak.\n\n## Install\n\n```bash\nnpm install @allstak/otel @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node\n```\n\n## Setup\n\n```ts\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { AllStakOtelExporter } from '@allstak/otel';\n\nconst sdk = new NodeSDK({\n  traceExporter: new AllStakOtelExporter({\n    apiKey: process.env.ALLSTAK_API_KEY!,\n    environment: process.env.NODE_ENV ?? 'production',\n    release: process.env.ALLSTAK_RELEASE,\n    serviceName: 'api',\n  }),\n  instrumentations: [getNodeAutoInstrumentations()],\n});\n\nsdk.start();\n```\n\n## Manual exporter\n\n```ts\nimport { AllStakOtelExporter } from '@allstak/otel';\n\nconst exporter = new AllStakOtelExporter({\n  apiKey: process.env.ALLSTAK_API_KEY!,\n  environment: 'production',\n  serviceName: 'worker',\n});\n\nexporter.export([span], (result) => {\n  if (result.code !== 0) {\n    console.error(result.error);\n  }\n});\n\nawait exporter.forceFlush();\n```\n\n## Configuration\n\n| Option | Description |\n| --- | --- |\n| `apiKey` | Project API key. |\n| `serviceName` | Service name attached to resource attributes. |\n| `environment` | Deployment environment. |\n| `release` | App version or commit SHA. |\n| `maxBatchSize` | Max spans per request. |\n| `maxQueueSize` | Max buffered spans. |\n| `scheduledDelayMs` | Flush interval. Set `0` for immediate export. |\n| `exportTimeoutMs` | Per-request timeout. |\n| `maxRetries` | Retry attempts for transient failures. |\n| `redactKeys` | Extra attribute keys to redact. |\n| `sendDefaultPii` | Allow personal data (email/IP) in free-text values. Default `false`. |\n\n## Privacy\n\nThe exporter scrubs sensitive data before sending spans, in two layers:\n\n- **Key-name redaction** — attribute keys that look sensitive (`authorization`,\n  `cookie`, `*_token`, `*_password`, `*_secret`, `api_key`, `jwt`, `bearer`, …)\n  have their value replaced with `[REDACTED]`. Add `redactKeys` for app-specific\n  fields.\n- **Value-pattern scrubbing** — PII that leaks into free-text *values* (error\n  messages, breadcrumb/log data, captured HTTP fields):\n  - **Always** redacted: credit-card numbers that pass the Luhn checksum, and\n    hyphenated US SSNs (`ddd-dd-dddd`).\n  - Redacted **unless `sendDefaultPii: true`**: email addresses and IPv4/IPv6\n    addresses.\n\n`sendDefaultPii` defaults to `false` for safe-by-default behavior. Set it to `true` only if\nyou intentionally want emails/IPs in telemetry. Explicitly-set user fields\n(`user.*`), stack-frame file paths, URLs, and release/version/SDK fields are\nnever value-scrubbed.\n\n## Troubleshooting\n\n- No traces: confirm your OpenTelemetry SDK is started before the app handles requests.\n- Missing service name: set `serviceName` on the exporter.\n- Process exits early: call `await sdk.shutdown()` or `await exporter.forceFlush()`.\n\n## Contributing and Support\n\n- Report bugs with the GitHub bug report template: https://github.com/AllStak/allstak-otel/issues/new/choose\n- Open pull requests using the checklist in [CONTRIBUTING.md](CONTRIBUTING.md).\n- Report security vulnerabilities privately through [SECURITY.md](SECURITY.md).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}