{"_id":"@abyssale/sdk","_rev":"8-34b661532f919bd0f05bae36e649e529","name":"@abyssale/sdk","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.0":{"name":"@abyssale/sdk","version":"1.0.0","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.0.0","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"950e760681a70125fe4f9ea70ed300f067b8b009","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.0.0.tgz","fileCount":9,"integrity":"sha512-8kTk2VX+bO4ixNd371AvYrXvjVHCgwYCEjgGvnJ6FD0y4pCWFzAEP7lwv525lMSG/VQdgcO6CHVGf0uwBoi2Tw==","signatures":[{"sig":"MEUCIQCm+OxhILV34+nQjCPWyGpkFI4y4jxjC1ld87OFoL87kAIgKjj81vn6mmuZpSkQ4SzAKjWcyJVFfPi01esjTmyQPDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378389},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9b5dcbf116101d2d6e5d385649a6967c6713c962","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"openapi-typescript https://api-reference.abyssale.com/api.yaml -o src/generated.ts","prepublishOnly":"npm run generate && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1782146269038_0.19484160498321357","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abyssale/sdk","version":"1.1.0","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.1.0","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"66d4df60327c642a427c925a3ea4b852b5bc8622","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.1.0.tgz","fileCount":9,"integrity":"sha512-ZztYt7Hp9PfPMyyi6tdFIAoTSAWDIRbKSr88MOtYT8r2WOS3q4J/AN1BmX0lsXMEJ4vhWENXt8A4o6RjaE6wIg==","signatures":[{"sig":"MEUCICtVluBsKVBxrBGcS9CX1HLDGn7/JmN6whs1pXCoR1gvAiEAlLoPvX+Rl9Cxo8vaXiIKpEWt/laqDUURY375Rz6RP4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621116},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1a93631c1cae954d281857f68d25c80afdcabd5b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"node scripts/fetch-spec.mjs spec.stripped.json && openapi-typescript spec.stripped.json -o src/generated.ts && node -e \"require('node:fs').unlinkSync('spec.stripped.json')\"","typecheck":"tsc --noEmit -p tsconfig.json && tsc -p examples/tsconfig.json","prepublishOnly":"npm run generate && npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","js-yaml":"^4.1.0","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1787032277551_0.4004903662780752","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@abyssale/sdk","version":"1.2.0","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.2.0","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"353287e77cfc9e62e1e880e4ded6fd0c8de5bc70","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.2.0.tgz","fileCount":9,"integrity":"sha512-tSh6Z8TQXRt8UdjIMYkS2tzwD0KzXctVh8u46FWmwPplzwtFFOlpXv79hN6ljrjfh3Z8DGuArQrsncC4TUuD4g==","signatures":[{"sig":"MEYCIQCG8fBK8datw/S0sa8J7rM1g0LNGAGfKdI4rUap71QZtgIhAIQgzdUpKEV5mvYmtgSo4M3KSFP5tBnIGQ6eAgHucPdt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":628785},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4aff23e3aad30d5c8d03fda1085a9f42a4bcb5ea","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"node scripts/fetch-spec.mjs spec.stripped.json && openapi-typescript spec.stripped.json -o src/generated.ts && node -e \"require('node:fs').unlinkSync('spec.stripped.json')\"","typecheck":"tsc --noEmit -p tsconfig.json && tsc -p examples/tsconfig.json","prepublishOnly":"npm run generate && npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","js-yaml":"^4.1.0","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.2.0_1787220109019_0.631300674612659","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@abyssale/sdk","version":"1.3.0","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.3.0","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"cbd6a8ec28482af02a674ddf95249f67a756238c","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.3.0.tgz","fileCount":15,"integrity":"sha512-HETzGmc/ukab7aP+rmROpa2UkJLLkEIUb1jNJsmFspmI50Jazte6Y79JmznzMUR6VVsc65bApZlJ5XMfqyNHhw==","signatures":[{"sig":"MEYCIQCDfgbhYiWqCa3jM0iOC0pRQqzIOtVT3rupC5phW52NeAIhAKxS1258uKjLxXtUywWyWujsEQVgizBZHjsKH/VzDBWY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":688715},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"}},"gitHead":"ac4b9f86af022a5633254c8d262cc3f5a5d38639","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"node scripts/fetch-spec.mjs spec.stripped.json && openapi-typescript spec.stripped.json -o src/generated.ts && node -e \"require('node:fs').unlinkSync('spec.stripped.json')\"","typecheck":"tsc --noEmit -p tsconfig.json && tsc -p examples/tsconfig.json","prepublishOnly":"npm run generate && npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","js-yaml":"^4.1.0","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.0_1787318593373_0.27750212330961976","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@abyssale/sdk","version":"1.4.0","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.4.0","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"493ae895331198429d60d39eedf0268a4cb3c42b","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.4.0.tgz","fileCount":15,"integrity":"sha512-S8kyRyS2MTH9qXdrQxhFlssk3EbOvp/3LOXjkuI2cTD19eq0Ehb5VJV6lCf4Qe3pUiO5nuaqPjHJ3DG4JNmWTQ==","signatures":[{"sig":"MEUCIEaASLi/XGzuouubYYdrubmBCQLrCNa7PObz58bgcKzbAiEA6OF6KsoxQCZblA4YIuE35L5MIi3mfQGBP3A2ex59GuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701004},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"}},"gitHead":"ac9ad46544be7728f90d78e5132cd3d3b4d5d1bd","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"node scripts/fetch-spec.mjs spec.stripped.json && openapi-typescript spec.stripped.json -o src/generated.ts && node -e \"require('node:fs').unlinkSync('spec.stripped.json')\"","typecheck":"tsc --noEmit -p tsconfig.json && tsc -p examples/tsconfig.json","prepublishOnly":"npm run generate && npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","js-yaml":"^4.1.0","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.0_1788341105791_0.7822622808802657","host":"s3://npm-registry-packages-npm-production"},"deprecated":"stale generated types — use 1.4.1"},"1.4.1":{"name":"@abyssale/sdk","version":"1.4.1","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","_id":"@abyssale/sdk@1.4.1","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"homepage":"https://developers.abyssale.com","bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"dist":{"shasum":"4f4cbf77767326d832431b0c2f26c31f2378bea3","tarball":"https://registry.npmjs.org/@abyssale/sdk/-/sdk-1.4.1.tgz","fileCount":15,"integrity":"sha512-D+g3UTHT4JndejNMbAz2Ah4KEKqtqOucdoNlNM3CU6+om8cOBltVj/GC0toy4AmPM0OuXZs2WFk7tGff2AyoPg==","signatures":[{"sig":"MEUCIAbdoELu3/rSNdMyZu0MnstqR412iQgtxwaPksdBbgyGAiEAorB5hCYa6KDcH1oCT7MPNEYL7iGz2RWH1FWJYKS5+6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701004},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"}},"gitHead":"77590c92def876c0bbb638836efcfd4726f73c17","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","generate":"node scripts/fetch-spec.mjs spec.stripped.json && openapi-typescript spec.stripped.json -o src/generated.ts && node -e \"require('node:fs').unlinkSync('spec.stripped.json')\"","typecheck":"tsc --noEmit -p tsconfig.json && tsc -p examples/tsconfig.json","prepublishOnly":"npm run generate && npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"antoox","email":"y.khial@abyssale.com"},"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"openapi-fetch":"^0.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","js-yaml":"^4.1.0","typescript":"^5","@types/node":"^25.9.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.1_1788341450248_0.3799252591819473","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-22T16:37:48.869Z","modified":"2026-09-02T09:31:13.188Z","1.0.0":"2026-06-22T16:37:49.184Z","1.1.0":"2026-08-18T05:51:17.696Z","1.2.0":"2026-08-20T10:01:49.166Z","1.3.0":"2026-08-21T13:23:13.588Z","1.4.0":"2026-09-02T09:25:05.963Z","1.4.1":"2026-09-02T09:30:50.399Z"},"bugs":{"url":"https://github.com/getabyssale/abyssale-sdk/issues"},"author":{"name":"Abyssale","email":"dev@abyssale.com"},"license":"MIT","homepage":"https://developers.abyssale.com","keywords":["abyssale","image-generation","banner-generation","programmatic-design","creative-automation","dynamic-images","multi-format","asset-generation","design-automation","sdk","typescript"],"repository":{"url":"git+https://github.com/getabyssale/abyssale-sdk.git","type":"git"},"description":"Official Node.js/TypeScript SDK for programmatic image generation, animated banners, and print-ready PDFs via the Abyssale API","maintainers":[{"name":"antoox","email":"y.khial@abyssale.com"},{"name":"remyabyssale","email":"remy@abyssale.com"}],"readme":"# @abyssale/sdk\n\nOfficial Node.js / TypeScript SDK for the [Abyssale API](https://developers.abyssale.com) —\nprogrammatic creative asset generation at scale.\n\n**📖 Full reference: [developers.abyssale.com/sdks/nodejs](https://developers.abyssale.com/sdks/nodejs)**\n— every method, configuration, error handling, retry behaviour and the polling helpers.\n\n## Installation\n\n```bash\nnpm install @abyssale/sdk\n```\n\n**Requires Node.js ≥ 20.3** — the retry middleware composes abort signals with `AbortSignal.any`,\nwhich landed in 20.3.0.\n\n## Quick start\n\nSet your API key in the environment — the SDK reads it at import time and needs no constructor:\n\n```bash\nexport ABYSSALE_API_KEY=your-key\n```\n\n```ts\nimport abyssale from '@abyssale/sdk';\n\nconst { data, error } = await abyssale.generateImage('{designId}', {\n  template_format_name: 'facebook-feed',\n  elements: {\n    text_title: { payload: 'Summer sale — 40% off' },\n  },\n});\n\nif (error) console.error(error);\nelse console.log(data.file.cdn_url);\n```\n\nEvery method returns `{ data, error, response }` and never throws on an HTTP error — check `error`.\nThe polling helpers (`waitForGenerationRequest`, `waitForDuplicationRequest`) are the exception:\nthey throw `AbyssalePollingError`.\n\n## What you get\n\n- **22 typed methods + 2 polling helpers**, generated from the OpenAPI spec —\n  [every method](https://developers.abyssale.com/sdks/nodejs#every-method)\n- **Webhook signature verification** from the `@abyssale/sdk/webhooks` subpath, which needs no API\n  key — [signature verification](https://developers.abyssale.com/webhooks/signature-verification)\n- **Narrow retries and a per-request timeout**, tuned by `ABYSSALE_MAX_RETRIES` (default `3`) and\n  `ABYSSALE_TIMEOUT_MS` (default `30000`) —\n  [what is retried, and what is not](https://developers.abyssale.com/sdks/nodejs#retries-and-timeouts)\n- **Dual ESM and CommonJS builds** with full TypeScript types\n\n## API compatibility\n\nEvery type in the SDK is generated from the Abyssale OpenAPI spec, so each release is pinned to the\nAPI version it was generated against.\n\n| SDK version | API version   |\n| ----------- | ------------- |\n| 1.4.0       | `v2026-09-02` |\n| 1.3.0       | `v2026-08-21` |\n| 1.2.0       | `v2026-08-20` |\n\n**1.4.0 is at full parity with `v2026-09-02`**: every operation the spec publishes has a method on\nthe client. The one deliberate exception is the design-import surface (`/designs/import/json`,\n`/designs/import/json/{importId}`, `/designs/{designId}/as-import`), which is in Alpha and whose\ncontract may change without notice — [`scripts/fetch-spec.mjs`](./scripts/fetch-spec.mjs) strips it\nbefore generation so a regeneration cannot re-introduce it.\n\nOnly the latest API version is served, so only the latest SDK release is supported — upgrade with the\nAPI. Responses carry the live API version in their top-level `version` field; match the `vYYYY-MM-DD`\nshape rather than pinning a literal.\n\n## Runnable examples\n\nSee [`examples/`](./examples) — synchronous generation, async multi-format with polling, the same\nwith a webhook receiver, AI text-to-image and inpainting, multi-page PDF, dynamic image URLs, and\nbatch ZIP export.\n\n```bash\nABYSSALE_API_KEY=your-key npx tsx examples/generate-image.ts\n```\n\n## Contributing\n\nArchitecture, conventions and the type-generation workflow are in [`AGENTS.md`](./AGENTS.md).\n\n## Links\n\n- [SDK reference](https://developers.abyssale.com/sdks/nodejs) — the canonical documentation\n- [Developer hub](https://developers.abyssale.com)\n- [API reference](https://developers.abyssale.com/api-reference/)\n- [Abyssale](https://www.abyssale.com)\n- [Changelog](./CHANGELOG.md)\n","readmeFilename":"README.md"}