{"_id":"@apirelio/core","_rev":"2-6522a4d0d25db8d66a5b452741e6f402","name":"@apirelio/core","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@apirelio/core","version":"0.1.0","keywords":["apirelio","api","analytics","observability","telemetry"],"license":"MIT","_id":"@apirelio/core@0.1.0","maintainers":[{"name":"pryznar","email":"pryznar@gmail.com"}],"homepage":"https://apirelio.com/docs","bugs":{"url":"https://github.com/pryznar/apirelio-node-core/issues"},"dist":{"shasum":"64133e553c613317ad8bc63a5024fab762438c08","tarball":"https://registry.npmjs.org/@apirelio/core/-/core-0.1.0.tgz","fileCount":8,"integrity":"sha512-fKZchyuykiSmtgEtcq/jy+yOeSlRLqrtUI64WtIWFx8u3+8ktS4UJ9YwHuxD1MDbJGvv7kLHw2kDbJMQ73XJ0w==","signatures":[{"sig":"MEUCIQD7ePUV1KZX0jBan6WfFda2c1LNM1P96o/8ridZkfCyPgIge6+jlmibKhMbNVw/JsuEHMYs8Q+zHLrwH3SdKF9vsEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34824},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4c872b639aff68f4f8775df11b6129b6a84fa751","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --clean","prepare":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"pryznar","email":"pryznar@gmail.com"},"overrides":{"tsup":{"esbuild":"^0.28.1"}},"repository":{"url":"git+https://github.com/pryznar/apirelio-node-core.git","type":"git"},"_npmVersion":"11.9.0","description":"Fail-safe asynchronous ingestion core for Apirelio Node.js SDKs.","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^4.0.0","esbuild":"^0.28.1","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1785508107091_0.22313411327258947","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@apirelio/core","version":"0.2.0","description":"Fail-safe asynchronous ingestion core for Apirelio Node.js SDKs.","keywords":["apirelio","api","analytics","observability","telemetry"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pryznar/apirelio-node-core.git"},"homepage":"https://apirelio.com/docs","bugs":{"url":"https://github.com/pryznar/apirelio-node-core/issues"},"type":"module","sideEffects":false,"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"engines":{"node":">=20"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --clean","prepare":"npm run build","typecheck":"tsc --noEmit","test":"vitest run","prepublishOnly":"npm run typecheck && npm test && npm run build"},"devDependencies":{"@types/node":"^24.0.0","esbuild":"^0.28.1","tsup":"^8.5.0","typescript":"^5.9.0","vitest":"^4.0.0"},"publishConfig":{"access":"public"},"overrides":{"tsup":{"esbuild":"^0.28.1"}},"gitHead":"9b109fb2217eba8229f832b49c816b815631b5f7","_id":"@apirelio/core@0.2.0","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-aOyWp5BqaTIz84F7hEOAImPTrMFsdJL8o6y8VKIMLUW7SKXaQE8bPiKqW52Z9HDOSCztlSiURFJu3PuBBSK8MA==","shasum":"5b553bfd48838bcf482707000eeeb2e10d7cddcd","tarball":"https://registry.npmjs.org/@apirelio/core/-/core-0.2.0.tgz","fileCount":8,"unpackedSize":37999,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIANIe+0DvPXqNiyRdNC7JClv91F0mwg5pPsBQQSotPgNAiEAxwrPDxKywNc7dgzQVHQaHnZ1yv7FfCqOuypOItSrEtw="}]},"_npmUser":{"name":"pryznar","email":"pryznar@gmail.com"},"directories":{},"maintainers":[{"name":"pryznar","email":"pryznar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.2.0_1785512527145_0.38480514567372426"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-31T14:28:26.881Z","modified":"2026-07-31T15:42:07.510Z","0.1.0":"2026-07-31T14:28:27.225Z","0.2.0":"2026-07-31T15:42:07.311Z"},"bugs":{"url":"https://github.com/pryznar/apirelio-node-core/issues"},"license":"MIT","homepage":"https://apirelio.com/docs","keywords":["apirelio","api","analytics","observability","telemetry"],"repository":{"type":"git","url":"git+https://github.com/pryznar/apirelio-node-core.git"},"description":"Fail-safe asynchronous ingestion core for Apirelio Node.js SDKs.","maintainers":[{"name":"pryznar","email":"pryznar@gmail.com"}],"readme":"# Apirelio Node.js Core\n\nFail-safe asynchronous delivery core shared by the official Express, Fastify and NestJS SDKs.\nIt creates the same customer-aware event contract as the PHP SDKs without capturing bodies,\ncredentials, cookies, query strings, email addresses or IP addresses.\n\n## Installation\n\n```bash\nnpm install @apirelio/core\n```\n\nApplications normally install a framework adapter instead of using Core directly.\n\n```ts\nimport { ApirelioClient, installProcessHooks } from '@apirelio/core'\n\nconst apirelio = new ApirelioClient({\n  apiKey: process.env.APIRELIO_API_KEY ?? '',\n  endpoint: process.env.APIRELIO_ENDPOINT ?? 'https://apirelio.com',\n  service: 'billing-api',\n  environment: 'production',\n  release: process.env.APP_RELEASE,\n  metadataKeys: ['region'],\n})\n\nconst removeHooks = installProcessHooks(apirelio)\n```\n\n`capture()` only validates and enqueues an event. A bounded in-memory queue sends batches in the\nbackground every five seconds or after 100 events. Network failures never affect the observed API\nresponse. The queue is intentionally bounded; overload drops new telemetry instead of consuming\nunbounded memory.\n\nCall `await apirelio.shutdown()` during graceful application shutdown. In serverless runtimes use\nan external durable queue or explicitly flush before the runtime freezes the process.\n\n## Route filtering\n\nFramework adapters use the shared `shouldCaptureRoute()` matcher. Patterns are either exact paths\nsuch as `/api/health` or bounded prefixes ending in `/**`, such as `/api/**`. Exclusions always win;\nan omitted or empty include list matches every route.\n\n## Defaults\n\n| Option | Default |\n| --- | --- |\n| endpoint | `https://apirelio.com` |\n| batch size | `100` (maximum `500`) |\n| flush interval | `5000ms` |\n| maximum queue | `10000` events |\n| HTTP timeout | `2000ms` |\n| retries | `2` |\n\n## Privacy\n\nMetadata is opt-in through `metadataKeys`, limited to 20 scalar values and 4 KB. Sensitive key\nfragments such as `authorization`, `cookie`, `password`, `token`, `secret`, `email` and `ip` are\nalways discarded. Concrete numeric, UUID, ULID and long hexadecimal route segments are normalized.\n","readmeFilename":"README.md"}