{"_id":"@bria-ai/client","_rev":"2-b88edd09a21d379934bff6b543aba19e","name":"@bria-ai/client","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@bria-ai/client","version":"0.1.0","keywords":["bria","api-client","image-generation","sdk","typescript"],"author":{"name":"Bria.ai"},"license":"MIT","_id":"@bria-ai/client@0.1.0","maintainers":[{"name":"galdavidi","email":"gal@bria.ai"},{"name":"omriassa","email":"omriassa@bria.ai"},{"name":"levdavid","email":"lev@bria.ai"},{"name":"omrijanach","email":"omrijanach@bria.ai"}],"homepage":"https://bria.ai","bugs":{"url":"https://github.com/Bria-AI/bria-client/issues"},"dist":{"shasum":"a3af5df0b4cd53c90740039671d9f4b40c0ebb92","tarball":"https://registry.npmjs.org/@bria-ai/client/-/client-0.1.0.tgz","fileCount":9,"integrity":"sha512-vrh1PJ0KqtrdO9DIZbDUATbGcAgsVF+zwZPyGewoLTYdu1wbP8E8FIFPHGQy4NdQREO+2osZDfTh/pO0tpOweA==","signatures":[{"sig":"MEUCID1fV9qQURacRq5rfIeIft6laG8rii03tneszgm2ry1IAiEAlrEjYQiVXRYbZslpmZ0LWNS6Ytr5FyMZA+FZuOcHMvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145474},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"55634b61464d2abae8be4cabe702ad73e88e068c","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write \"**/*.{ts,js,json,md}\"","typecheck":"tsc --noEmit","format:check":"prettier --check \"**/*.{ts,js,json,md}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"omriassa","email":"omriassa@bria.ai"},"repository":{"url":"git+https://github.com/Bria-AI/bria-client.git","type":"git","directory":"typescript"},"_npmVersion":"11.19.0","description":"Bria.ai TypeScript/JavaScript SDK for the Bria Engine API","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","eslint":"^8.57.0","vitest":"^2.0.0","prettier":"^3.3.0","typescript":"^5.5.0","@types/node":"^20.14.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/client_0.1.0_1790604633709_0.9444708220035216","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"_id":"@bria-ai/client@0.2.0","bugs":{"url":"https://github.com/Bria-AI/bria-client/issues"},"dist":{"shasum":"9c52c3ae88fcefc2dca3a26d075a060437bb9a65","tarball":"https://registry.npmjs.org/@bria-ai/client/-/client-0.2.0.tgz","fileCount":9,"integrity":"sha512-9PacbNULgNtm7+QaE9UnAdEfoGPvNP0kA6/j8jZjWJmi/s9r9Q9pz/eyx2jbwc+UVJ/byuJn1fWQrOE+Y4SBRw==","signatures":[{"sig":"MEUCIB7TwIpPQRSBydQO4K2ark0Qs+gN3Utdcmlt4aD4BTOhAiEAtpo9l///hsHjLyaKkIVBbeWfdO+FB05JRnZ9pcAofXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCLlhw2Pa8Gh7RVne5Qq0RdAKNeSYFk5ow0AnUXXGgEZwIgL/Vck70M4kmlzFDy06AmZsRXYTOo//Hkxc2JmbPBUGI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bria-ai%2fclient@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146695},"main":"./dist/index.cjs","name":"@bria-ai/client","type":"module","types":"./dist/index.d.ts","author":{"name":"Bria.ai"},"module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ec46f1837e18142e76022d8befa282eb611b85be","license":"MIT","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write \"**/*.{ts,js,json,md}\"","typecheck":"tsc --noEmit","format:check":"prettier --check \"**/*.{ts,js,json,md}\"","prepublishOnly":"npm run build"},"version":"0.2.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3f69885-d82d-4d1f-9dad-e1f991fc8e05"}},"homepage":"https://bria.ai","keywords":["bria","api-client","image-generation","sdk","typescript"],"repository":{"url":"git+https://github.com/Bria-AI/bria-client.git","type":"git","directory":"typescript"},"_npmVersion":"11.20.0","description":"Bria.ai TypeScript/JavaScript SDK for the Bria Engine API","directories":{},"maintainers":[{"name":"galdavidi","email":"gal@bria.ai"},{"name":"omriassa","email":"omriassa@bria.ai"},{"name":"levdavid","email":"lev@bria.ai"},{"name":"omrijanach","email":"omrijanach@bria.ai"}],"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","eslint":"^9.39.5","vitest":"^4.1.11","prettier":"^3.3.0","typescript":"^5.5.0","@types/node":"^20.14.0","@typescript-eslint/parser":"^8.70.1","@typescript-eslint/eslint-plugin":"^8.70.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/client_0.2.0_1790608556786_0.16205462199162946"}}},"time":{"created":"2026-09-28T14:10:33.542Z","modified":"2026-09-28T15:15:57.291Z","0.1.0":"2026-09-28T14:10:33.858Z","0.2.0":"2026-09-28T15:15:56.876Z"},"bugs":{"url":"https://github.com/Bria-AI/bria-client/issues"},"author":{"name":"Bria.ai"},"license":"MIT","homepage":"https://bria.ai","keywords":["bria","api-client","image-generation","sdk","typescript"],"repository":{"url":"git+https://github.com/Bria-AI/bria-client.git","type":"git","directory":"typescript"},"description":"Bria.ai TypeScript/JavaScript SDK for the Bria Engine API","maintainers":[{"name":"galdavidi","email":"gal@bria.ai"},{"name":"omriassa","email":"omriassa@bria.ai"},{"name":"levdavid","email":"lev@bria.ai"},{"name":"omrijanach","email":"omrijanach@bria.ai"}],"readme":"# @bria-ai/client\n\nTypeScript/JavaScript SDK for the [Bria](https://bria.ai) Engine API — image & video editing.\n\nRequires **Node.js 20+** (uses the built-in `fetch`, `FormData`, and `Blob`).\n\n## Install\n\n```bash\nnpm install @bria-ai/client\n```\n\n## Usage\n\n```ts\nimport { BriaClient } from \"@bria-ai/client\";\n\nconst client = new BriaClient({ apiToken: process.env.BRIA_API_TOKEN });\n\n// Synchronous job — resolves when it's done:\nconst res = await client.run(\n  \"remove_background\",\n  { image_url: \"https://example.com/cat.png\" },\n  { raiseForStatus: true },\n);\nconsole.log(res.result);\n\n// Asynchronous job — submit then poll:\nconst submitted = await client.submit(\"increase_resolution\", { image_url: \"https://…\" });\nconst done = await client.poll(submitted, { interval: 2, timeout: 120 });\n```\n\n`apiToken` and `baseUrl` also fall back to the `BRIA_API_TOKEN` / `BRIA_BASE_URL` environment\nvariables.\n\nRequests time out after 30 seconds by default (`requestTimeout`, in seconds). GET requests are\nretried on 429/502/503/504 and on network errors; POST requests (`run`/`submit`) are never retried,\nso a job is never started twice.\n\n## API surface\n\n| Method                             | Purpose                                                     |\n| ---------------------------------- | ----------------------------------------------------------- |\n| `run(endpoint, payload, opts?)`    | Run a synchronous job (`sync: true`).                       |\n| `submit(endpoint, payload, opts?)` | Submit an async job (`sync: false`); optional `webhookUrl`. |\n| `get(endpoint, opts?)`             | Raw GET with optional `params`.                             |\n| `upload(source, mediaType, opts?)` | Upload a local video file/bytes, returns a `file_url`.      |\n| `status(requestId, opts?)`         | Current `Status` of a job.                                  |\n| `poll(target, opts?)`              | Poll until terminal (`interval`/`timeout` in seconds).      |\n\nToolkit exports: `BriaResponse`, `Status`, `BriaException`, `Image`, `verifyWebhookSignature`.\n\n## Differences from the Python SDK\n\n- **Async only.** JavaScript has no synchronous HTTP, so there is a single `BriaClient` (no\n  sync/async client split). `run` vs `submit` still map to the API's `sync` flag.\n- **`Image`** accepts a URL, data URI, base64 string, local path, or `Buffer`/`Uint8Array`\n  (and `Image.fromBlob` for a `Blob`). It does not accept PIL images or numpy arrays.\n\nThis SDK deliberately mirrors the [Python SDK](../python) — same method names and behavior\n(auth, retries, endpoint normalization, webhook signing, status parsing).\n\n## Webhook verification\n\n```ts\nimport { verifyWebhookSignature } from \"@bria-ai/client\";\n\nconst ok = verifyWebhookSignature({\n  payload: rawBodyString,\n  webhookId: req.headers[\"bria-webhook-id\"],\n  timestamp: req.headers[\"bria-webhook-timestamp\"],\n  signatureHeader: req.headers[\"bria-webhook-signature\"],\n  apiToken: process.env.BRIA_API_TOKEN,\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}