{"_id":"@ativie/ripple","_rev":"2-09fcd34414cc5f7635ac384ee107e85b","name":"@ativie/ripple","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@ativie/ripple","version":"1.0.0","keywords":["ripple","event-tracking","monitoring","observability","real-time"],"author":{"name":"favourativie"},"license":"MIT","_id":"@ativie/ripple@1.0.0","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"dist":{"shasum":"dc73085db37cf9ed0e181ccfadd1c406fddba7e9","tarball":"https://registry.npmjs.org/@ativie/ripple/-/ripple-1.0.0.tgz","fileCount":6,"integrity":"sha512-zZ6yKwZOgimvmIZv/AsueEQ0w7ybpzpAYXbM8e33MNcl5Injo+ZC1/Xe5o4ip8Wy/5EJYy/EVtS6zammMKNcag==","signatures":[{"sig":"MEUCIQCiWNQlPPS3mvplNz6CusAVZaJftaso6gfK20QF3qFuswIgG0vVImdEdpJZOG3FgSnNY/NtB7vX5zLivXuQ5U/tN8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9975},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1dabdffadf18c4e832b89316e2433049573135d9","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"_npmVersion":"10.9.4","description":"Official TypeScript SDK for Ripple - Self-hosted real-time event tracking","directories":{},"_nodeVersion":"22.21.1","dependencies":{"axios":"^1.7.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/ripple_1.0.0_1782043854642_0.9383408562516531","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ativie/ripple","version":"1.0.1","description":"Official TypeScript SDK for Ripple - Self-hosted real-time event tracking","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"echo \"Error: no test specified\" && exit 1","prepublishOnly":"npm run build"},"keywords":["ripple","event-tracking","monitoring","observability","real-time"],"author":{"name":"favourativie"},"license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"axios":"^1.7.2"},"devDependencies":{"typescript":"^5.5.3"},"_id":"@ativie/ripple@1.0.1","gitHead":"9a5a81d40a0e3118a195beffb10deff2186be66b","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-UiRH1GkT9MJb4X5mS30wkl2dcC3QxkUfBjE1XFVKOjRJxumvcONH/ogJqd10xEIJlL5kjA9VeKp+cRkQCKyiBQ==","shasum":"7feabc41862b8808f943b5ebd68de67ae212cc73","tarball":"https://registry.npmjs.org/@ativie/ripple/-/ripple-1.0.1.tgz","fileCount":6,"unpackedSize":10890,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDPorccjD8nc9Z9mEWlM89rp0ZHDwG6s4ku/GUNprA4RwIgGPagDBznm19QVrQCrejjIAwNncjB1GH+QrTkiQrd5uw="}]},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"directories":{},"maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ripple_1.0.1_1782044099500_0.2850313587053761"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T12:10:54.184Z","modified":"2026-06-21T12:14:59.740Z","1.0.0":"2026-06-21T12:10:54.784Z","1.0.1":"2026-06-21T12:14:59.645Z"},"author":{"name":"favourativie"},"license":"MIT","keywords":["ripple","event-tracking","monitoring","observability","real-time"],"description":"Official TypeScript SDK for Ripple - Self-hosted real-time event tracking","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"readme":"# @ativie/ripple\n\nOfficial TypeScript SDK for Ripple — self-hosted real-time event tracking.\n\n## Installation\n\n```bash\nnpm install @ativie/ripple\n```\n\n## Usage\n\n```ts\nimport Ripple from '@ativie/ripple';\n\nconst ripple = new Ripple({\n  apiKey: 'rp_your_api_key',\n  baseUrl: 'https://your-ripple-instance.com',\n});\n\nawait ripple.track({\n  channel: 'payments',\n  event: 'Payment Failed',\n  user: 'user_123',\n  metadata: {\n    amount: 5000,\n    reason: 'insufficient_funds',\n  },\n});\n```\n\n## API\n\n### `new Ripple(options)`\n\n| Option | Type | Required | Description |\n|---|---|---|---|\n| `apiKey` | `string` | ✓ | Your Ripple API key (`rp_...`) |\n| `baseUrl` | `string` | ✓ | URL of your deployed Ripple backend |\n| `timeout` | `number` | | Request timeout in ms (default: `10000`) |\n| `retries` | `number` | | Retries on transient errors (default: `2`) |\n\n### `ripple.track(options)`\n\n| Option | Type | Required | Description |\n|---|---|---|---|\n| `channel` | `string` | ✓ | Channel name (max 100 chars) |\n| `event` | `string` | ✓ | Event name (max 200 chars) |\n| `user` | `string` | | User identifier (max 100 chars) |\n| `metadata` | `object` | | Arbitrary key/value data |\n| `timestamp` | `Date` | | Defaults to now |\n\n### `ripple.identify(userId, metadata?)`\n\nShorthand that tracks a `User Identified` event on the `users` channel.\n\n## Error handling\n\n```ts\nimport Ripple, { RippleError } from '@ativie/ripple';\n\ntry {\n  await ripple.track({ channel: 'signups', event: 'New User' });\n} catch (err) {\n  if (err instanceof RippleError) {\n    console.error(err.message, err.statusCode);\n  }\n}\n```\n","readmeFilename":"README.md"}