{"_id":"@affic/sdk","_rev":"4-64c54222d56ac4f638f547392281d4a5","name":"@affic/sdk","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@affic/sdk","version":"0.1.0","keywords":["affic","affiliate","affiliate-marketing","sdk","api-client","typescript","node"],"author":{"url":"https://affic.com.br","name":"Affic","email":"contato@affic.com.br"},"license":"MIT","_id":"@affic/sdk@0.1.0","maintainers":[{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"}],"homepage":"https://github.com/affic-com-br/affic-node#readme","bugs":{"url":"https://github.com/affic-com-br/affic-node/issues"},"dist":{"shasum":"1953fb2d3351f1dd9ef458144e524aa6b6dee04f","tarball":"https://registry.npmjs.org/@affic/sdk/-/sdk-0.1.0.tgz","fileCount":9,"integrity":"sha512-pSvZiLxKfhKy1I2vqng1jOQNi2L28hhvCvMCyrQZJXjN4AG8kv4CJNYdWUXwaucZij1jZfKKWoVLEp3BMD855Q==","signatures":[{"sig":"MEUCIAjL6qtN/c+SagMykyY8Q2zXHaYInNWgMD7lLHG65qY9AiEAxN9bqWvHW1ZmoB5OqimGCQdZGCQzho+nMawYLrhEy80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128161},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":false,"engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"b623d5ae2a13f384fdde1549f445813d8025c206","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","format":"prettier --write .","prepack":"npm run clean && npm run build","release":"npm run build && changeset publish","lint:fix":"eslint . --fix","changeset":"changeset","typecheck":"tsc --noEmit && tsc --noEmit -p examples","test:smoke":"bash scripts/smoke-test.sh","test:watch":"vitest","format:check":"prettier --check .","check:package":"npm run build && publint && attw --pack .","test:coverage":"vitest run --coverage","version:packages":"changeset version"},"_npmUser":{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"},"repository":{"url":"git+https://github.com/affic-com-br/affic-node.git","type":"git"},"_npmVersion":"11.13.0","description":"Official Node.js SDK for the Affic integration API","directories":{},"sideEffects":false,"_nodeVersion":"26.1.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","eslint":"^9.37.0","vitest":"^3.2.4","publint":"^0.3.14","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/node":"^22.15.3","@changesets/cli":"^2.29.7","typescript-eslint":"^8.46.0","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1785288087520_0.33475872263676765","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@affic/sdk","version":"0.1.1","keywords":["affic","affiliate","affiliate-marketing","sdk","api-client","typescript","node"],"author":{"url":"https://affic.com.br","name":"Affic","email":"contato@affic.com.br"},"license":"MIT","_id":"@affic/sdk@0.1.1","maintainers":[{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"}],"homepage":"https://github.com/affic-com-br/affic-node#readme","bugs":{"url":"https://github.com/affic-com-br/affic-node/issues"},"dist":{"shasum":"7a9bac0e124e9dfbf329c0e9c9d1b33448bdbbbc","tarball":"https://registry.npmjs.org/@affic/sdk/-/sdk-0.1.1.tgz","fileCount":9,"integrity":"sha512-oov5OSjQgV7QFpJ7HDIyQgGjb6K7ixLZVbnK5nlfkW4SobXctS6Bp1VBq7aZ74HrNRO7ZBKcNelepc6HAlk8Fg==","signatures":[{"sig":"MEQCIAJFBEDJiVjkYnZmLTHOF1SqOmgaUJWPw0Jg7YWVQT+4AiAIWOgrouqkHPmihMIW6tnYEK4olZ1IWlysPgxguJIFvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@affic%2fsdk@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128161},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":false,"engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"530ee37d3da4e2b5de0b167eebb38bdc8d1cd3c7","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","format":"prettier --write .","prepack":"npm run clean && npm run build","release":"npm run build && changeset publish","lint:fix":"eslint . --fix","changeset":"changeset","typecheck":"tsc --noEmit && tsc --noEmit -p examples","test:smoke":"bash scripts/smoke-test.sh","test:watch":"vitest","format:check":"prettier --check .","check:package":"npm run build && publint && attw --pack .","test:coverage":"vitest run --coverage","version:packages":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e1b1d46f-e711-45ac-b81f-e6ea6f4aa0d6"}},"repository":{"url":"git+https://github.com/affic-com-br/affic-node.git","type":"git"},"_npmVersion":"12.0.1","description":"Official Node.js SDK for the Affic integration API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","eslint":"^9.37.0","vitest":"^3.2.4","publint":"^0.3.14","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/node":"^22.15.3","@changesets/cli":"^2.29.7","typescript-eslint":"^8.46.0","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.1_1785290182487_0.7683433194761471","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@affic/sdk","version":"0.1.2","keywords":["affic","affiliate","affiliate-marketing","sdk","api-client","typescript","node"],"author":{"url":"https://affic.com.br","name":"Affic","email":"contato@affic.com.br"},"license":"MIT","_id":"@affic/sdk@0.1.2","maintainers":[{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"}],"homepage":"https://github.com/affic-com-br/affic-node#readme","bugs":{"url":"https://github.com/affic-com-br/affic-node/issues"},"dist":{"shasum":"e3e2e9794b36e8af4a68ab007a796b29db3078f1","tarball":"https://registry.npmjs.org/@affic/sdk/-/sdk-0.1.2.tgz","fileCount":9,"integrity":"sha512-clfhVig5iV2+amhw45TotnKyjrzbDbA1rMicItf2CLtf4MwfcRNnJootxQ6uQEP5nAT22U0LLsfP9qXmThb96Q==","signatures":[{"sig":"MEUCIQD4yMz+01jmi2LehbnDRRoQlOsh1txuPTzuVnj9Qb2fCgIgd+HRTiNHDAni3/iugmep2yaPxbUZdzLUrdx2Hkk0/WY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@affic%2fsdk@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128162},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":false,"engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"ac88e4f2a7acc66582498356c757ee2dfe0817f2","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","format":"prettier --write .","prepack":"npm run clean && npm run build","release":"npm run build && changeset publish","lint:fix":"eslint . --fix","changeset":"changeset","typecheck":"tsc --noEmit && tsc --noEmit -p examples","test:smoke":"bash scripts/smoke-test.sh","test:watch":"vitest","format:check":"prettier --check .","check:package":"npm run build && publint && attw --pack .","test:coverage":"vitest run --coverage","version:packages":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e1b1d46f-e711-45ac-b81f-e6ea6f4aa0d6"}},"repository":{"url":"git+https://github.com/affic-com-br/affic-node.git","type":"git"},"_npmVersion":"12.0.1","description":"Official Node.js SDK for the Affic integration API","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","eslint":"^10.8.0","vitest":"^4.1.10","publint":"^0.3.14","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"~6.0.3","@types/node":"^26.1.2","@changesets/cli":"^2.29.7","typescript-eslint":"^8.46.0","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.2_1785291936294_0.26348063336858063","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@affic/sdk","version":"0.2.0","description":"Official Node.js SDK for the Affic integration API","keywords":["affic","affiliate","affiliate-marketing","sdk","api-client","typescript","node"],"homepage":"https://github.com/affic-com-br/affic-node#readme","bugs":{"url":"https://github.com/affic-com-br/affic-node/issues"},"repository":{"type":"git","url":"git+https://github.com/affic-com-br/affic-node.git"},"license":"MIT","author":{"name":"Affic","email":"contato@affic.com.br","url":"https://affic.com.br"},"type":"module","sideEffects":false,"browser":false,"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"engines":{"node":">=20"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit && tsc --noEmit -p examples","lint":"eslint . --max-warnings 0","lint:fix":"eslint . --fix","format":"prettier --write .","format:check":"prettier --check .","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:smoke":"bash scripts/smoke-test.sh","check:package":"npm run build && publint && attw --pack .","changeset":"changeset","version:packages":"changeset version","release":"npm run build && changeset publish","prepack":"npm run clean && npm run build"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.2","@changesets/cli":"^2.29.7","@eslint/js":"^10.0.1","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10","eslint":"^10.8.0","eslint-config-prettier":"^10.1.8","prettier":"^3.6.2","publint":"^0.3.14","tsup":"^8.5.0","typescript":"~6.0.3","typescript-eslint":"^8.46.0","vitest":"^4.1.10"},"gitHead":"5a37b8343de697ab99aad3203d4c8a475d3076d1","_id":"@affic/sdk@0.2.0","_nodeVersion":"26.5.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-yBuhfqQkXTePyzhMeAAsK29Asgb8tAE6DPG1sVwYJgbiJNIDEKMRjRlfeuItublelefwo7BjVMbKIe79aYV0YA==","shasum":"f1859ac95a0e1f666c28d7808be3c7bfc1d9e1e2","tarball":"https://registry.npmjs.org/@affic/sdk/-/sdk-0.2.0.tgz","fileCount":9,"unpackedSize":145733,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@affic%2fsdk@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDhytrCkeAgBCDwQuyN1tMReb0JxLayA2kbZfvqqSYozAIgCFG4hGhSZZjJaqv6vHOfM5Qw1j/u99f5fnXnGWURgc4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e1b1d46f-e711-45ac-b81f-e6ea6f4aa0d6"}},"directories":{},"maintainers":[{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.2.0_1785351153868_0.7365433586798229"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-29T01:21:27.346Z","modified":"2026-07-29T18:52:34.331Z","0.1.0":"2026-07-29T01:21:27.655Z","0.1.1":"2026-07-29T01:56:22.654Z","0.1.2":"2026-07-29T02:25:36.466Z","0.2.0":"2026-07-29T18:52:34.014Z"},"bugs":{"url":"https://github.com/affic-com-br/affic-node/issues"},"author":{"name":"Affic","email":"contato@affic.com.br","url":"https://affic.com.br"},"license":"MIT","homepage":"https://github.com/affic-com-br/affic-node#readme","keywords":["affic","affiliate","affiliate-marketing","sdk","api-client","typescript","node"],"repository":{"type":"git","url":"git+https://github.com/affic-com-br/affic-node.git"},"description":"Official Node.js SDK for the Affic integration API","maintainers":[{"name":"caio.rolla","email":"caio.cesar.rolla+npm-affic@gmail.com"}],"readme":"# @affic/sdk\n\nOfficial Node.js SDK for the [Affic](https://affic.com.br) integration API.\n\n- Zero runtime dependencies\n- Typed end to end — no `any` in the public surface\n- Server-only by design: the integration token never belongs in a browser\n\n```ts\nimport { Affic } from '@affic/sdk';\n\nconst client = new Affic({ apiKey: process.env['AFFIC_API_KEY'] });\n\nawait client.activity.create({\n  name: 'purchase',\n  value: 149.9,\n  trackId: 'V1StGXR8_Z5j',\n});\n```\n\nA runnable version of this snippet lives in [`examples/01-basic.ts`](./examples/01-basic.ts).\n\n## Requirements\n\nNode.js 20 or newer. The SDK uses the built-in `fetch`, so nothing else is installed.\n\n## Installation\n\n```bash\nnpm install @affic/sdk\n```\n\nWorks from ESM (`import`) and CommonJS (`require`).\n\n## Authentication\n\nCreate an integration in the company area and copy its token. The token identifies the\nintegration, and through it the program and account an activity is recorded against — which is why\nno account id appears anywhere in a request body.\n\nPass the token explicitly, or leave it out and the SDK reads `AFFIC_API_KEY`:\n\n```ts\nconst client = new Affic({ apiKey: process.env['AFFIC_API_KEY'] });\nconst sameClient = new Affic(); // reads AFFIC_API_KEY\n```\n\n> **The token is a secret.** It can write activities for your whole program. Keep it server-side,\n> out of your repository, and rotate it in the company area if it leaks. Constructing the client in\n> a browser throws `AfficConfigurationError`.\n\n## Reporting activities\n\n```ts\nawait client.activity.create({ name, value, trackId, data });\n```\n\nThe call resolves to `undefined` — the API answers `204` with no body, and the resulting commission\nshows up in the affiliate area.\n\n| Field     | Type             | Required | Notes                                                                                 |\n| --------- | ---------------- | -------- | ------------------------------------------------------------------------------------- |\n| `name`    | `string`         | yes      | Must match a configured metric name exactly, or no commission is computed.            |\n| `value`   | `number`         | no       | Decimal in the domain default currency (`149.9`) — not cents, not a string.           |\n| `trackId` | `string \\| null` | no       | Affiliate to credit. `null` or omitted records an unattributed activity.              |\n| `data`    | `JsonObject`     | no       | Free-form context stored as-is. Never affects the commission. Max 4096 bytes of JSON. |\n\n### Where `trackId` comes from\n\n`trackId` is **not** a UUID and not an id you look up in the affiliate area. It is the opaque\ntwelve-character value (`[A-Za-z0-9_-]{12}`) your storefront received in the `__affic` query\nparameter, which the Affic tag keeps in its attribution cookie. Read it from there and forward it\nverbatim.\n\nA `trackId` that is not twelve url-safe characters is rejected client-side with\n`AfficInvalidArgumentError`, before any request is sent. One that is well-formed but belongs to no\nactive affiliate of your program comes back as `AfficNotFoundError` (`404`, `TRACK_NOT_FOUND`) —\nit is **not** silently recorded as unattributed. Send `null` when you genuinely have no affiliate.\n\n### How the commission is computed\n\nThe `name` is matched against the metrics configured for your integration:\n\n- **`FIXED` metric** — the configured amount is paid, whatever `value` holds.\n- **`PERCENTAGE` metric** — the configured percentage of `value`. A missing `value` yields `0`.\n- **No matching metric** — the activity is stored, but with no metric and no commission.\n\nAn unmatched name is _not_ an error, so keep these strings stable and identical to the configured\nmetric names.\n\n### Common shapes\n\n```ts\n// A sale credited to a known affiliate, with order context attached.\nawait client.activity.create({\n  name: 'purchase',\n  value: 149.9,\n  trackId: 'V1StGXR8_Z5j',\n  data: { orderId: 'A-10293', items: 3, campaign: 'summer-sale' },\n});\n\n// Recorded against the program only: no affiliate is credited, but it still counts for reporting.\nawait client.activity.create({ name: 'purchase', value: 149.9, trackId: null });\n\n// A non-monetary activity, for a FIXED metric such as a signup.\nawait client.activity.create({ name: 'signup' });\n```\n\n### This endpoint is not idempotent\n\nEvery accepted call creates one activity, so a retry after a network timeout can double-count a\nsale. **The SDK never retries on your behalf.**\n\nRetry only on `AfficInternalServerError` (`5xx`), where the API guarantees nothing was recorded:\n\n```ts\nimport { AfficInternalServerError } from '@affic/sdk';\n\ntry {\n  await client.activity.create({ name: 'purchase', value: 149.9 });\n} catch (error) {\n  if (error instanceof AfficInternalServerError) {\n    // Nothing was recorded. Safe to try again.\n  }\n  throw error;\n}\n```\n\nAfter a timeout or a connection failure, the outcome is unknowable — reconcile in the affiliate\narea rather than retrying blindly.\n\n## Configuration\n\n```ts\nconst client = new Affic({\n  apiKey: process.env['AFFIC_API_KEY'],\n  baseURL: 'https://server.affic.com.br',\n  timeout: 60_000,\n  fetch: myInstrumentedFetch,\n  defaultHeaders: { 'x-trace-id': traceId },\n});\n```\n\n| Option           | Type                     | Default                       | Purpose                                               |\n| ---------------- | ------------------------ | ----------------------------- | ----------------------------------------------------- |\n| `apiKey`         | `string`                 | `process.env.AFFIC_API_KEY`   | Sent as the `x-api-key` header.                       |\n| `baseURL`        | `string`                 | `https://server.affic.com.br` | Point at another environment.                         |\n| `timeout`        | `number`                 | `60000`                       | Milliseconds before the request is aborted.           |\n| `fetch`          | `FetchLike`              | global `fetch`                | Proxy agents, instrumentation, or test doubles.       |\n| `defaultHeaders` | `Record<string, string>` | `{}`                          | Added to every request. Header names are lower-cased. |\n\nEvery call also takes per-request overrides:\n\n```ts\nconst controller = new AbortController();\n\nawait client.activity.create(\n  { name: 'purchase', value: 149.9 },\n  { timeout: 5_000, signal: controller.signal, headers: { 'x-trace-id': traceId } },\n);\n```\n\n## Error handling\n\nEvery error thrown by the SDK extends `AfficError`.\n\n| Class                       | Thrown when                                                                                                  |\n| --------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| `AfficConfigurationError`   | No API key, an invalid `baseURL` or `timeout`, or a browser detected.                                        |\n| `AfficInvalidArgumentError` | An empty `name`, a non-finite `value`, a malformed `trackId`, or `data` over 4096 bytes. No request is sent. |\n| `AfficBadRequestError`      | `400` — the API rejected the payload.                                                                        |\n| `AfficAuthenticationError`  | `401` — the key is missing or unknown (`INTEGRATION_NOT_FOUND`).                                             |\n| `AfficNotFoundError`        | `404` — the `trackId` matches no affiliate of your program (`TRACK_NOT_FOUND`). Nothing was recorded.        |\n| `AfficInternalServerError`  | `5xx` — nothing was recorded; safe to retry.                                                                 |\n| `AfficAPIError`             | Any other non-2xx status. Base class of the four above.                                                      |\n| `AfficTimeoutError`         | The configured timeout elapsed.                                                                              |\n| `AfficConnectionError`      | The request never reached the API, or you aborted it.                                                        |\n\n`AfficAPIError` carries the details of the response:\n\n```ts\nimport { AfficAPIError } from '@affic/sdk';\n\ntry {\n  await client.activity.create({ name: 'purchase', value: 149.9 });\n} catch (error) {\n  if (error instanceof AfficAPIError) {\n    error.status; // 401\n    error.codes; // ['INTEGRATION_NOT_FOUND']\n    error.error; // 'Unauthorized'\n    error.headers; // { 'x-request-id': '…' }\n  }\n  throw error;\n}\n```\n\nBranch on the error class and on `codes` — the message prose is not part of the API contract and\ncan change.\n\n## Node-only\n\nThis SDK refuses to run in a browser, and it is not shipped with a browser build. The integration\ntoken authenticates an entire program: anyone who reads it from a bundle can write activities\nagainst your account. Call the API from your backend and let your frontend talk to your backend.\n\n## TypeScript\n\nTypes ship with the package; nothing extra to install. `ActivityCreateParams`, `ClientOptions`,\n`RequestOptions`, `FetchLike`, and the error classes are all exported.\n\n`strict` mode is assumed. The public surface contains no `any` and no `unknown`.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md). Release mechanics live in\n[docs/RELEASING.md](./docs/RELEASING.md); first-time npm setup lives in\n[docs/PUBLISHING.md](./docs/PUBLISHING.md).\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}