{"_id":"@canveletedotcom/sdk","_rev":"3-247a1a163a5f82f0c2f85734a177ea8c","name":"@canveletedotcom/sdk","dist-tags":{"latest":"2.0.2"},"versions":{"2.0.0":{"name":"@canveletedotcom/sdk","version":"2.0.0","keywords":["canvelete","typescript","sdk","api","image","generation","pdf","design","automation"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/sdk@2.0.0","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://docs.canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete-sdk/issues"},"dist":{"shasum":"fcb83611ab635d647e95f084726751a41074a599","tarball":"https://registry.npmjs.org/@canveletedotcom/sdk/-/sdk-2.0.0.tgz","fileCount":36,"integrity":"sha512-An4nHXjpCqlZvL1rXzFlUCcUEsj/WNDUzODw8dkctvswUL5lgOSi4WF6VI+ZWcrFs+VhZmP/zHIlWl9NdTy5eg==","signatures":[{"sig":"MEQCIAcsiLCOfjgqfrPIB0e9wxJzFj2ZiEcWmPlFf+1dB57SAiB2rtSIzbRL+ZLlD3bOQ1NtndWaOxVgm/j2CKKOTJ8n3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64094},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"}},"gitHead":"136eb79de332de24237bd4e44ef768e0bb669078","scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete-sdk.git","type":"git"},"_npmVersion":"11.2.0","description":"Official TypeScript SDK for the Canvelete API","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^18.0.0","@vitest/coverage-v8":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.0_1766185873685_0.5659953728447749","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@canveletedotcom/sdk","version":"2.0.1","keywords":["canvelete","typescript","sdk","api","image","generation","pdf","design","automation"],"author":{"name":"Canvelete"},"license":"MIT","_id":"@canveletedotcom/sdk@2.0.1","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"homepage":"https://docs.canvelete.com","bugs":{"url":"https://github.com/canvelete/canvelete-sdk/issues"},"dist":{"shasum":"abbf0142b0ced3007e9998ecad6145dfb0c81244","tarball":"https://registry.npmjs.org/@canveletedotcom/sdk/-/sdk-2.0.1.tgz","fileCount":36,"integrity":"sha512-fMNiWlzzoMiTiZ5TKZViNNUwTLngC7HVjzoY7lOGhr+cL+l1nfLPQGWHZlPB7sfJ9lQpX/SzbnYIfcOCSutINQ==","signatures":[{"sig":"MEUCIQDNVC33euWpcXlLLdWr3SHquUmAjbbTgd1z8Ctmo12etQIgG6I3Kj8eFMQTkSHbOq/haGOFYOGd7b9uOXcTeuvcwqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64431},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"}},"gitHead":"1aeffce03d620826b9774586d55624636af5ce01","scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"repository":{"url":"git+https://github.com/canvelete/canvelete-sdk.git","type":"git"},"_npmVersion":"11.2.0","description":"Official TypeScript SDK for the Canvelete API","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^18.0.0","@vitest/coverage-v8":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.1_1767134738740_0.6511949115599016","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@canveletedotcom/sdk","version":"2.0.2","description":"Official TypeScript SDK for the Canvelete API","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./utils":{"import":"./dist/utils/index.js","types":"./dist/utils/index.d.ts"}},"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"keywords":["canvelete","typescript","sdk","api","image","generation","pdf","design","automation"],"author":{"name":"Canvelete"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/canvelete/canvelete-sdk.git"},"homepage":"https://docs.canvelete.com","devDependencies":{"typescript":"^5.0.0","@types/node":"^18.0.0","vitest":"^1.0.0","@vitest/coverage-v8":"^1.0.0"},"engines":{"node":">=18.0.0"},"browser":{"fs":false},"_id":"@canveletedotcom/sdk@2.0.2","gitHead":"1aeffce03d620826b9774586d55624636af5ce01","bugs":{"url":"https://github.com/canvelete/canvelete-sdk/issues"},"_nodeVersion":"22.14.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-3o4FeRPSvU0voSngCb4ED5nwX3fxUbtiJSNh5juJPv671lhCGBBMnm9o2iV9y5I9CajmoMp4tz+fJ0kBNa/fRA==","shasum":"5dcc1de1066760472fbbd78ac6c04ec84402d5df","tarball":"https://registry.npmjs.org/@canveletedotcom/sdk/-/sdk-2.0.2.tgz","fileCount":36,"unpackedSize":64854,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCiieBVwt02VIZrZu0qC5f4DVPBjpkbNLN1lGRum4R1UwIgfeLDXWNHn6CX7g1Cj2nMOBj4gpXpWeBJ+Apypgp+GpE="}]},"_npmUser":{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"},"directories":{},"maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_2.0.2_1767815613154_0.14662612210713877"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-19T23:11:13.515Z","modified":"2026-01-07T19:53:33.497Z","2.0.0":"2025-12-19T23:11:13.870Z","2.0.1":"2025-12-30T22:45:38.877Z","2.0.2":"2026-01-07T19:53:33.291Z"},"bugs":{"url":"https://github.com/canvelete/canvelete-sdk/issues"},"author":{"name":"Canvelete"},"license":"MIT","homepage":"https://docs.canvelete.com","keywords":["canvelete","typescript","sdk","api","image","generation","pdf","design","automation"],"repository":{"type":"git","url":"git+https://github.com/canvelete/canvelete-sdk.git"},"description":"Official TypeScript SDK for the Canvelete API","maintainers":[{"name":"canveletedotcom","email":"amanuelgaromsa@gmail.com"}],"readme":"# Canvelete TypeScript SDK\n\nOfficial TypeScript client library for the [Canvelete](https://www.canvelete.com) API.\n\n## Installation\n\n```bash\nnpm install @canvelete/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { CanveleteClient } from '@canvelete/sdk';\n\n// Initialize client with API key\nconst client = new CanveleteClient({\n  apiKey: 'cvt_your_api_key_here'\n});\n\n// List designs\nconst designs = await client.designs.list();\nconsole.log(`Found ${designs.data.length} designs`);\n\n// Create a design\nconst design = await client.designs.create({\n  name: 'My Design',\n  canvasData: {\n    elements: [\n      {\n        type: 'text',\n        text: 'Hello Canvelete!',\n        x: 100,\n        y: 100,\n        fontSize: 48\n      }\n    ]\n  },\n  width: 1920,\n  height: 1080\n});\n\n// Render the design\nconst imageData = await client.render.create({\n  designId: design.data.id,\n  format: 'png',\n  outputFile: 'output.png'\n});\n```\n\n## API Reference\n\n### Designs\n\n```typescript\n// List with pagination\nconst designs = await client.designs.list({ page: 1, limit: 20 });\n\n// Iterate all (auto-pagination)\nfor await (const design of client.designs.iterateAll()) {\n  console.log(design.name);\n}\n\n// Create\nconst design = await client.designs.create({ name: 'New Design', canvasData: {...} });\n\n// Get\nconst design = await client.designs.get('design_id');\n\n// Update\nconst updated = await client.designs.update('design_id', { name: 'Updated' });\n\n// Delete\nawait client.designs.delete('design_id');\n```\n\n### Templates\n\n```typescript\n// List templates\nconst templates = await client.templates.list({ search: 'certificate' });\n\n// Iterate all\nfor await (const template of client.templates.iterateAll()) {\n  console.log(template.name);\n}\n```\n\n### Render\n\n```typescript\n// Render to file\nawait client.render.create({\n  templateId: 'template_id',\n  dynamicData: { name: 'John Doe', date: '2024-01-01' },\n  format: 'pdf',\n  outputFile: 'certificate.pdf'\n});\n\n// Get binary data\nconst imageBuffer = await client.render.create({\n  designId: 'design_id',\n  format: 'png'\n});\n```\n\n### API Keys\n\n```typescript\n// List keys\nconst keys = await client.apiKeys.list();\n\n// Create new key\nconst newKey = await client.apiKeys.create({ name: 'Production Key' });\nconsole.log(`Save this: ${newKey.data.key}`); // Shown only once!\n```\n\n## Error Handling\n\n```typescript\nimport {\n  AuthenticationError,\n  NotFoundError,\n  RateLimitError,\n  ValidationError\n} from '@canvelete/sdk';\n\ntry {\n  const design = await client.designs.get('invalid_id');\n} catch (error) {\n  if (error instanceof NotFoundError) {\n    console.error('Design not found');\n  } else if (error instanceof AuthenticationError) {\n    console.error('Invalid API key');\n  } else if (error instanceof RateLimitError) {\n    console.error(`Rate limited. Retry after ${error.retryAfter}s`);\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}