{"_id":"@absurge/sdk","_rev":"2-7c1fa76547db1a71d865dc422071568a","name":"@absurge/sdk","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@absurge/sdk","version":"0.1.0","keywords":["absurge","feature-flags","ab-testing","experiments"],"license":"MIT","_id":"@absurge/sdk@0.1.0","maintainers":[{"name":"vblinden","email":"hello@vblinden.dev"}],"homepage":"https://github.com/absurge/javascript","bugs":{"url":"https://github.com/absurge/javascript/issues"},"dist":{"shasum":"9cdc051e440240b0225241973cde437e28cdf9b9","tarball":"https://registry.npmjs.org/@absurge/sdk/-/sdk-0.1.0.tgz","fileCount":4,"integrity":"sha512-zv3UORGgek164nUwwoIqeXaTdVZWJgslG+WoG6CQ+BbPoJVN/tkCwDfXZG6xpd0G+wOqI6dHM+GmeYf5u3JA/g==","signatures":[{"sig":"MEUCIQDlmkT+cfooxgoJk7EoXFQK4tdb5ZW4qEKmdZ8edOJ1dQIgDwTXVVdksB9tHr/AlXajnMjm/WMMHtbwi7EwGLddAb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7448},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"6254dc775203adbce1354d7d8df83ff59937fff2","_npmUser":{"name":"vblinden","email":"hello@vblinden.dev"},"repository":{"url":"git+https://github.com/absurge/javascript.git","type":"git"},"_npmVersion":"10.9.8","description":"ABSurge JavaScript SDK for feature flags and A/B testing","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1784121005399_0.3505420631493723","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absurge/sdk","version":"0.2.0","description":"ABsurge JavaScript SDK for feature flags and A/B testing","type":"module","main":"src/index.ts","types":"src/index.ts","exports":{".":"./src/index.ts"},"keywords":["absurge","feature-flags","ab-testing","experiments"],"homepage":"https://github.com/absurge/javascript","repository":{"type":"git","url":"git+https://github.com/absurge/javascript.git"},"bugs":{"url":"https://github.com/absurge/javascript/issues"},"license":"MIT","publishConfig":{"access":"public"},"_id":"@absurge/sdk@0.2.0","gitHead":"6dcc9c1372ae31d18f25df8080b1726389374a29","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-nTVDVPQgDllpSoaXMoxPPNUcSmKdm4Lv8JRoTZBRbujIDIE67DMuaMi4EG8isgPkcIBjxK3OxRSpvHYnkf/ANg==","shasum":"6149439bc2e249ecdb77066588bd7a2b806f3a77","tarball":"https://registry.npmjs.org/@absurge/sdk/-/sdk-0.2.0.tgz","fileCount":4,"unpackedSize":7448,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDQpjlm4UsqU59hX+U8LsCPGhkUr30hOOUD2dHQrqyBmAIgctB7R98UkKMra/5buxLp7sFueN0LhALwn4rir5c0Uts="}]},"_npmUser":{"name":"vblinden","email":"hello@vblinden.dev"},"directories":{},"maintainers":[{"name":"vblinden","email":"hello@vblinden.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.2.0_1784123664225_0.8640763541894554"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-15T13:10:05.253Z","modified":"2026-07-15T13:54:24.487Z","0.1.0":"2026-07-15T13:10:05.531Z","0.2.0":"2026-07-15T13:54:24.370Z"},"bugs":{"url":"https://github.com/absurge/javascript/issues"},"license":"MIT","homepage":"https://github.com/absurge/javascript","keywords":["absurge","feature-flags","ab-testing","experiments"],"repository":{"type":"git","url":"git+https://github.com/absurge/javascript.git"},"description":"ABsurge JavaScript SDK for feature flags and A/B testing","maintainers":[{"name":"vblinden","email":"hello@vblinden.dev"}],"readme":"# @absurge/sdk\n\nJavaScript SDK for [ABsurge](https://absurge.com) — feature flags and A/B testing.\n\n## Install\n\n```bash\nnpm install @absurge/sdk\n# or\npnpm add @absurge/sdk\n```\n\n## Usage\n\n```ts\nimport { ABsurge } from '@absurge/sdk';\n\nconst absurge = new ABsurge({\n  publishableKey: 'pk_...',\n  baseUrl: 'https://your-app.example/api/v1', // optional, default: '/api/v1'\n  environment: 'production', // optional\n});\n\n// Evaluate flags and experiments for a user\nconst result = await absurge.evaluate('user-123', { plan: 'pro' });\n\n// Check a single flag\nconst enabled = await absurge.isEnabled('new-checkout', 'user-123');\n\n// Get experiment assignment\nconst experiment = await absurge.getExperiment('pricing-test', 'user-123');\n\n// Track events\nawait absurge.trackExposure('pricing-test', 'user-123');\nawait absurge.trackConversion('pricing-test', 'user-123', 'purchase', 49.0);\n```\n\n## API\n\n| Method | Description |\n|--------|-------------|\n| `evaluate(distinctId, attributes?, flags?, experiments?)` | Batch evaluate flags and experiments |\n| `isEnabled(flag, distinctId, attributes?)` | Boolean flag check |\n| `getExperiment(experiment, distinctId, attributes?)` | Experiment variant assignment |\n| `trackExposure(experiment, distinctId, attributes?)` | Record experiment exposure |\n| `trackConversion(experiment, distinctId, event, value?, properties?)` | Record conversion |\n| `trackReplay(experiment, distinctId, events, durationMs?, format?)` | Upload session replay events |\n\nAuthenticate with your environment publishable key via the `X-ABsurge-Key` header (set automatically).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}