{"_id":"@aeterdum/client","_rev":"3-600567654a798535681be2004852f246","name":"@aeterdum/client","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@aeterdum/client","version":"1.0.0","keywords":["aeterdum","audit-log","sdk","api"],"author":{"name":"Aeterdum"},"license":"MIT","_id":"@aeterdum/client@1.0.0","maintainers":[{"name":"aeterdum","email":"contact@aeterdum.com"}],"dist":{"shasum":"4be0363ca0eac880933f3b623a046cbc43a48ce8","tarball":"https://registry.npmjs.org/@aeterdum/client/-/client-1.0.0.tgz","fileCount":10,"integrity":"sha512-7DqmfQ/oEr1jPTPSICYi+lC0Jac/CWF1rpsSrz/G6v88+5noQ/bArD4/QZdXJJH4esxvIxWlO9L+MhGKeYeXAQ==","signatures":[{"sig":"MEUCIQDcXnm8aV0fNd1dZh269egokW1BiX8SalSw3EDqFZf1kgIgTz+TfPzM3QYAFyTPIIZcWthUc8WWXwlxiTVE4R4lZD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8394},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c329e15ed9d30eb73d3bbb676ce72f130f4885fb","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aeterdum","email":"contact@aeterdum.com"},"_npmVersion":"9.2.0","description":"Official Node.js and TypeScript client for Aeterdum","directories":{},"_nodeVersion":"20.19.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.1","typescript":"^5.0.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/client_1.0.0_1768333530661_0.6424880550678023","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aeterdum/client","version":"1.0.1","keywords":["aeterdum","audit-log","sdk","api"],"author":{"name":"Aeterdum"},"license":"MIT","_id":"@aeterdum/client@1.0.1","maintainers":[{"name":"aeterdum","email":"contact@aeterdum.com"}],"dist":{"shasum":"1bad5f15c01ed90e3f99ce3926159d9421a5a77f","tarball":"https://registry.npmjs.org/@aeterdum/client/-/client-1.0.1.tgz","fileCount":13,"integrity":"sha512-qovYf+XFMlZmZYsKozz2L3m927gVeB9JZClWLcILgs+r+IhDtbFiEFwDUnePDLVB+cfdrZuNxO3AkKCM1Ma7Vg==","signatures":[{"sig":"MEQCIGwxg/8N8CRgbU5DJsuj0z9l7tobQxs6JfWIN9TUbef1AiAY92+OSyn4enxd8FWSt4EapPksGza/hoWLXEKYNMLKaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17828},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6958d744baed730d182d14d671ce51f6be97cbef","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aeterdum","email":"contact@aeterdum.com"},"_npmVersion":"9.2.0","description":"Official Node.js and TypeScript client for Aeterdum","directories":{},"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"diff":"^8.0.3","ts-node":"^10.9.1","typescript":"^5.0.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/client_1.0.1_1768930012711_0.6051554469350897","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aeterdum/client","version":"1.0.2","description":"Official Node.js and TypeScript client for Aeterdum","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"publishConfig":{"access":"public"},"keywords":["aeterdum","audit-log","sdk","api"],"author":{"name":"Aeterdum"},"license":"MIT","devDependencies":{"@types/node":"^18.0.0","diff":"^8.0.3","ts-node":"^10.9.1","typescript":"^5.0.0"},"gitHead":"4e1096038f38e79951bc1c0574b38976226aa6b4","_id":"@aeterdum/client@1.0.2","_nodeVersion":"20.19.2","_npmVersion":"9.2.0","dist":{"integrity":"sha512-DxO+hs8vfDBL4t1733PtXKrF1z2QflXO9/7wL04hFmAdjMA+kzMmwXM2G58Bq6ece9Vp+lnTJ4HrePwofF6k4w==","shasum":"51981660d83fdca5192878d63dca9e28d0293274","tarball":"https://registry.npmjs.org/@aeterdum/client/-/client-1.0.2.tgz","fileCount":13,"unpackedSize":20066,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB/OWpA3P/LOkhIqwMMFRqUZQqsuSirAUTulyLDQvTNfAiBhGp1TfwwASsNQEBxv2nlVLZ0QexLsqbcI5nX/rav3Og=="}]},"_npmUser":{"name":"aeterdum","email":"contact@aeterdum.com"},"directories":{},"maintainers":[{"name":"aeterdum","email":"contact@aeterdum.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/client_1.0.2_1769396540406_0.6407411684070454"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-13T19:45:30.597Z","modified":"2026-01-26T03:02:20.653Z","1.0.0":"2026-01-13T19:45:30.808Z","1.0.1":"2026-01-20T17:26:52.860Z","1.0.2":"2026-01-26T03:02:20.541Z"},"author":{"name":"Aeterdum"},"license":"MIT","keywords":["aeterdum","audit-log","sdk","api"],"description":"Official Node.js and TypeScript client for Aeterdum","maintainers":[{"name":"aeterdum","email":"contact@aeterdum.com"}],"readme":"# Aeterdum Node.js SDK\n\nOfficial Node.js and TypeScript client for [Aeterdum](https://aeterdum.com), the immutable audit log service.\n\n## Installation\n\n```bash\nnpm install @aeterdum/client\n# or\nyarn add @aeterdum/client\n```\n\n## Usage\n\n### Initialization\n\n```typescript\nimport { Aeterdum } from '@aeterdum/client';\n\nconst client = new Aeterdum({\n  apiKey: process.env.AETERDUM_API_KEY,\n  // Optional: Configure region/cluster URL (Default: https://api.aeterdum.com)\n  baseUrl: \"https://eu.aeterdum.com\",\n  // Optional: Provide server public key to verify digital signatures\n  serverPublicKey: \"0be...\", \n});\n```\n\n### Ingesting Logs\n\nIngest an event into the immutable ledger. The SDK automatically handles async processing and returns a unique `id` immediately.\n\n```typescript\nconst log = await client.logs.create({\n  event: 'document.deleted',\n  actor: 'user_123',\n  payload: {\n    documentId: 'doc_abc',\n    title: 'Q3 Report'\n  },\n  metadata: {\n    ip: '192.168.1.1'\n  }\n});\n\nconsole.log(`Log created with ID: ${log.id}`);\n```\n\n### Verifying Logs\n\nVerify the cryptographic integrity of any log entry using its ID. This performs three checks locally:\n1. Recomputes the Merkle Root from the provided proof to ensure inclusion in the log tree.\n2. Recomputes the hash of the log payload to ensure the content matches the stored hash (tamper detection).\n3. (If public key provided) Verifies the Ed25519 signature of the root to ensure server authenticity.\n\n```typescript\nconst verification = await client.logs.verify('log_2023...');\n\nif (verification.client_verified) {\n    console.log(\"Merkle Proof and Payload Integrity Verified!\");\n}\n\nif (verification.signature_verified) {\n    console.log(\"Server Signature Verified!\");\n}\n\nif (verification.client_verified) {\n  console.log('Log is cryptographically valid.');\n  console.log('Merkle Root:', verification.merkle_root);\n} else {\n  console.error('Log verification failed!');\n}\n```\n\n### Listing Logs\n\nRetrieve paginated access to your audit trail.\n\n```typescript\nconst { data, limit, offset } = await client.logs.list({ limit: 10, offset: 0 });\n\ndata.forEach(log => {\n  console.log(`${log.timestamp} - ${log.event} by ${log.actor}`);\n});\n```\n","readmeFilename":"README.md"}