@boelabs/billete-sdk 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as segment, r as BilleteError, t as createTransport } from "./http-ChElV20o.js";
1
+ import { n as segment, r as BilleteError, t as createTransport } from "./http-CG9YDQ6-.js";
2
2
  //#region src/create-client.ts
3
3
  /**
4
4
  * Browser client. It never holds a secret key: checkouts are addressed by their unguessable ID
@@ -18,7 +18,7 @@ var BilleteError = class extends Error {
18
18
  };
19
19
  //#endregion
20
20
  //#region src/http.ts
21
- const SDK_VERSION = "0.3.0";
21
+ const SDK_VERSION = "0.3.1";
22
22
  const DEFAULT_BASE_URL = "https://api.billete.run";
23
23
  const RETRYABLE_STATUS = /* @__PURE__ */ new Set([
24
24
  429,
@@ -121,4 +121,4 @@ function segment(value) {
121
121
  //#endregion
122
122
  export { segment as n, BilleteError as r, createTransport as t };
123
123
 
124
- //# sourceMappingURL=http-ChElV20o.js.map
124
+ //# sourceMappingURL=http-CG9YDQ6-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-ChElV20o.js","names":[],"sources":["../src/errors.ts","../src/http.ts"],"sourcesContent":["import type { ApiErrorBody, ApiErrorType } from \"@boelabs/billete-contracts/public\";\n\n/** Any failed Billete request. `type`/`code` are stable and safe to branch on. */\nexport class BilleteError extends Error {\n readonly type: ApiErrorType | \"network\";\n readonly code: string;\n readonly status: number;\n readonly param?: string;\n readonly requestId?: string;\n\n constructor(\n body: Omit<ApiErrorBody, \"type\"> & { type: ApiErrorType | \"network\" },\n status: number,\n ) {\n super(body.message);\n this.name = \"BilleteError\";\n this.type = body.type;\n this.code = body.code;\n this.status = status;\n this.param = body.param;\n this.requestId = body.requestId;\n }\n}\n","import type { ApiErrorEnvelope, List } from \"@boelabs/billete-contracts/public\";\n\nimport { BilleteError } from \"./errors\";\n\n/** Replaced at build time with the package version; the source (tests, workspace) reads \"dev\". */\ndeclare const PACKAGE_VERSION: string | undefined;\nexport const SDK_VERSION = typeof PACKAGE_VERSION === \"string\" ? PACKAGE_VERSION : \"dev\";\nconst DEFAULT_BASE_URL = \"https://api.billete.run\";\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);\n\nexport interface TransportOptions {\n /** Defaults to `BILLETE_BASE_URL` on the server, then `https://api.billete.run`. Use\n * `http://localhost:9999` in development. */\n baseUrl?: string;\n /** Custom fetch (tests, proxies). Defaults to the global fetch. */\n fetch?: typeof globalThis.fetch;\n timeoutMs?: number;\n /** Retries for network errors, 429, 5xx and in-progress duplicates. Mutations retry safely. */\n maxRetries?: number;\n}\n\nexport interface RequestOptions {\n /** Reuse to make a mutation safe to retry; generated automatically when omitted. */\n idempotencyKey?: string;\n signal?: AbortSignal;\n}\n\n/** Query parameters; `undefined` values are omitted. */\ntype Query = object;\n\ninterface Request {\n method: \"GET\" | \"POST\" | \"PATCH\" | \"PUT\" | \"DELETE\";\n path: string;\n query?: Query;\n body?: unknown;\n options?: RequestOptions;\n}\n\nfunction backoff(attempt: number, retryAfter: string | null) {\n const seconds = retryAfter ? Number(retryAfter) : Number.NaN;\n return Number.isFinite(seconds) ? seconds * 1_000 : Math.min(500 * 2 ** attempt, 8_000);\n}\n\nfunction pause(ms: number, signal?: AbortSignal) {\n return new Promise<void>((resolve, reject) => {\n const timer = setTimeout(resolve, ms);\n signal?.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timer);\n reject(signal.reason);\n },\n { once: true },\n );\n });\n}\n\nfunction buildUrl(baseUrl: string, path: string, query?: Query) {\n const url = new URL(path, baseUrl);\n Object.entries(query ?? {})\n .filter(([, value]) => value !== undefined)\n .forEach(([key, value]) => url.searchParams.set(key, String(value)));\n return url;\n}\n\n/** A concurrent request with the same idempotency key is still running: worth retrying. */\nasync function inProgress(response: Response) {\n const body = (await response\n .clone()\n .json()\n .catch(() => null)) as ApiErrorEnvelope | null;\n return body?.error.code === \"idempotency_request_in_progress\";\n}\n\nasync function toError(response: Response): Promise<BilleteError> {\n const body = (await response.json().catch(() => null)) as ApiErrorEnvelope | null;\n return new BilleteError(\n body?.error ?? {\n type: \"internal\",\n code: \"invalid_response\",\n message: `Unexpected HTTP ${response.status} from Billete`,\n requestId: response.headers.get(\"X-Request-Id\") ?? undefined,\n },\n response.status,\n );\n}\n\nexport type Transport = ReturnType<typeof createTransport>;\n\nexport function createTransport(options: TransportOptions & { token?: () => string | undefined }) {\n const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const fetchImpl =\n options.fetch ?? ((...args: Parameters<typeof fetch>) => globalThis.fetch(...args));\n const timeoutMs = options.timeoutMs ?? 30_000;\n const maxRetries = options.maxRetries ?? 2;\n\n async function send<T>(\n request: Request,\n idempotencyKey: string | undefined,\n attempt: number,\n ): Promise<T> {\n const token = options.token?.();\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n \"X-Billete-Client\": `billete-js/${SDK_VERSION}`,\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n ...(request.body === undefined ? {} : { \"Content-Type\": \"application/json\" }),\n ...(idempotencyKey ? { \"Idempotency-Key\": idempotencyKey } : {}),\n };\n const signals = [AbortSignal.timeout(timeoutMs), request.options?.signal].filter(\n (signal): signal is AbortSignal => signal !== undefined,\n );\n const response = await fetchImpl(buildUrl(baseUrl, request.path, request.query), {\n method: request.method,\n headers,\n body: request.body === undefined ? undefined : JSON.stringify(request.body),\n signal: AbortSignal.any(signals),\n }).catch((error: unknown) => {\n if (request.options?.signal?.aborted) throw error;\n return error instanceof Error ? error : new Error(String(error));\n });\n\n const retryable =\n response instanceof Error ||\n RETRYABLE_STATUS.has(response.status) ||\n (response.status === 409 && (await inProgress(response)));\n if (retryable && attempt < maxRetries) {\n await pause(\n backoff(attempt, response instanceof Error ? null : response.headers.get(\"Retry-After\")),\n request.options?.signal,\n );\n return send(request, idempotencyKey, attempt + 1);\n }\n if (response instanceof Error) {\n throw new BilleteError(\n {\n type: \"network\",\n code: \"network_error\",\n message: `Could not reach Billete: ${response.message}`,\n },\n 0,\n );\n }\n if (!response.ok) throw await toError(response);\n return (response.status === 204 ? undefined : await response.json()) as T;\n }\n\n function request<T>(request: Request): Promise<T> {\n const idempotencyKey =\n request.method === \"GET\"\n ? undefined\n : (request.options?.idempotencyKey ?? globalThis.crypto.randomUUID());\n return send<T>(request, idempotencyKey, 0);\n }\n\n /** Walks every page of a list endpoint. */\n async function* paginate<T>(path: string, query: Query = {}): AsyncGenerator<T> {\n const page = await request<List<T>>({ method: \"GET\", path, query });\n yield* page.data;\n if (page.nextCursor) yield* paginate<T>(path, { ...query, cursor: page.nextCursor });\n }\n\n return { request, paginate };\n}\n\n/** Encodes a path segment (customer references may be merchant-defined external IDs). */\nexport function segment(value: string) {\n return encodeURIComponent(value);\n}\n"],"mappings":";;AAGA,IAAa,eAAb,cAAkC,MAAM;CACtC;CACA;CACA;CACA;CACA;CAEA,YACE,MACA,QACA;EACA,MAAM,KAAK,OAAO;EAClB,KAAK,OAAO;EACZ,KAAK,OAAO,KAAK;EACjB,KAAK,OAAO,KAAK;EACjB,KAAK,SAAS;EACd,KAAK,QAAQ,KAAK;EAClB,KAAK,YAAY,KAAK;CACxB;AACF;;;AChBA,MAAa,cAAA;AACb,MAAM,mBAAmB;AACzB,MAAM,mCAAmB,IAAI,IAAI;CAAC;CAAK;CAAK;CAAK;CAAK;AAAG,CAAC;AA8B1D,SAAS,QAAQ,SAAiB,YAA2B;CAC3D,MAAM,UAAU,aAAa,OAAO,UAAU,IAAI;CAClD,OAAO,OAAO,SAAS,OAAO,IAAI,UAAU,MAAQ,KAAK,IAAI,MAAM,KAAK,SAAS,GAAK;AACxF;AAEA,SAAS,MAAM,IAAY,QAAsB;CAC/C,OAAO,IAAI,SAAe,SAAS,WAAW;EAC5C,MAAM,QAAQ,WAAW,SAAS,EAAE;EACpC,QAAQ,iBACN,eACM;GACJ,aAAa,KAAK;GAClB,OAAO,OAAO,MAAM;EACtB,GACA,EAAE,MAAM,KAAK,CACf;CACF,CAAC;AACH;AAEA,SAAS,SAAS,SAAiB,MAAc,OAAe;CAC9D,MAAM,MAAM,IAAI,IAAI,MAAM,OAAO;CACjC,OAAO,QAAQ,SAAS,CAAC,CAAC,CAAC,CACxB,QAAQ,GAAG,WAAW,UAAU,KAAA,CAAS,CAAC,CAC1C,SAAS,CAAC,KAAK,WAAW,IAAI,aAAa,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC;CACrE,OAAO;AACT;;AAGA,eAAe,WAAW,UAAoB;CAK5C,QAAO,MAJa,SACjB,MAAM,CAAC,CACP,KAAK,CAAC,CACN,YAAY,IAAI,EAAA,EACN,MAAM,SAAS;AAC9B;AAEA,eAAe,QAAQ,UAA2C;CAEhE,OAAO,IAAI,cACT,MAFkB,SAAS,KAAK,CAAC,CAAC,YAAY,IAAI,EAElD,EAAM,SAAS;EACb,MAAM;EACN,MAAM;EACN,SAAS,mBAAmB,SAAS,OAAO;EAC5C,WAAW,SAAS,QAAQ,IAAI,cAAc,KAAK,KAAA;CACrD,GACA,SAAS,MACX;AACF;AAIA,SAAgB,gBAAgB,SAAkE;CAChG,MAAM,UAAU,QAAQ,WAAW;CACnC,MAAM,YACJ,QAAQ,WAAW,GAAG,SAAmC,WAAW,MAAM,GAAG,IAAI;CACnF,MAAM,YAAY,QAAQ,aAAa;CACvC,MAAM,aAAa,QAAQ,cAAc;CAEzC,eAAe,KACb,SACA,gBACA,SACY;EACZ,MAAM,QAAQ,QAAQ,QAAQ;EAC9B,MAAM,UAAkC;GACtC,QAAQ;GACR,oBAAoB,cAAc;GAClC,GAAI,QAAQ,EAAE,eAAe,UAAU,QAAQ,IAAI,CAAC;GACpD,GAAI,QAAQ,SAAS,KAAA,IAAY,CAAC,IAAI,EAAE,gBAAgB,mBAAmB;GAC3E,GAAI,iBAAiB,EAAE,mBAAmB,eAAe,IAAI,CAAC;EAChE;EACA,MAAM,UAAU,CAAC,YAAY,QAAQ,SAAS,GAAG,QAAQ,SAAS,MAAM,CAAC,CAAC,QACvE,WAAkC,WAAW,KAAA,CAChD;EACA,MAAM,WAAW,MAAM,UAAU,SAAS,SAAS,QAAQ,MAAM,QAAQ,KAAK,GAAG;GAC/E,QAAQ,QAAQ;GAChB;GACA,MAAM,QAAQ,SAAS,KAAA,IAAY,KAAA,IAAY,KAAK,UAAU,QAAQ,IAAI;GAC1E,QAAQ,YAAY,IAAI,OAAO;EACjC,CAAC,CAAC,CAAC,OAAO,UAAmB;GAC3B,IAAI,QAAQ,SAAS,QAAQ,SAAS,MAAM;GAC5C,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;EACjE,CAAC;EAMD,KAHE,oBAAoB,SACpB,iBAAiB,IAAI,SAAS,MAAM,KACnC,SAAS,WAAW,OAAQ,MAAM,WAAW,QAAQ,MACvC,UAAU,YAAY;GACrC,MAAM,MACJ,QAAQ,SAAS,oBAAoB,QAAQ,OAAO,SAAS,QAAQ,IAAI,aAAa,CAAC,GACvF,QAAQ,SAAS,MACnB;GACA,OAAO,KAAK,SAAS,gBAAgB,UAAU,CAAC;EAClD;EACA,IAAI,oBAAoB,OACtB,MAAM,IAAI,aACR;GACE,MAAM;GACN,MAAM;GACN,SAAS,4BAA4B,SAAS;EAChD,GACA,CACF;EAEF,IAAI,CAAC,SAAS,IAAI,MAAM,MAAM,QAAQ,QAAQ;EAC9C,OAAQ,SAAS,WAAW,MAAM,KAAA,IAAY,MAAM,SAAS,KAAK;CACpE;CAEA,SAAS,QAAW,SAA8B;EAKhD,OAAO,KAAQ,SAHb,QAAQ,WAAW,QACf,KAAA,IACC,QAAQ,SAAS,kBAAkB,WAAW,OAAO,WAAW,GAC/B,CAAC;CAC3C;;CAGA,gBAAgB,SAAY,MAAc,QAAe,CAAC,GAAsB;EAC9E,MAAM,OAAO,MAAM,QAAiB;GAAE,QAAQ;GAAO;GAAM;EAAM,CAAC;EAClE,OAAO,KAAK;EACZ,IAAI,KAAK,YAAY,OAAO,SAAY,MAAM;GAAE,GAAG;GAAO,QAAQ,KAAK;EAAW,CAAC;CACrF;CAEA,OAAO;EAAE;EAAS;CAAS;AAC7B;;AAGA,SAAgB,QAAQ,OAAe;CACrC,OAAO,mBAAmB,KAAK;AACjC"}
1
+ {"version":3,"file":"http-CG9YDQ6-.js","names":[],"sources":["../src/errors.ts","../src/http.ts"],"sourcesContent":["import type { ApiErrorBody, ApiErrorType } from \"@boelabs/billete-contracts/public\";\n\n/** Any failed Billete request. `type`/`code` are stable and safe to branch on. */\nexport class BilleteError extends Error {\n readonly type: ApiErrorType | \"network\";\n readonly code: string;\n readonly status: number;\n readonly param?: string;\n readonly requestId?: string;\n\n constructor(\n body: Omit<ApiErrorBody, \"type\"> & { type: ApiErrorType | \"network\" },\n status: number,\n ) {\n super(body.message);\n this.name = \"BilleteError\";\n this.type = body.type;\n this.code = body.code;\n this.status = status;\n this.param = body.param;\n this.requestId = body.requestId;\n }\n}\n","import type { ApiErrorEnvelope, List } from \"@boelabs/billete-contracts/public\";\n\nimport { BilleteError } from \"./errors\";\n\n/** Replaced at build time with the package version; the source (tests, workspace) reads \"dev\". */\ndeclare const PACKAGE_VERSION: string | undefined;\nexport const SDK_VERSION = typeof PACKAGE_VERSION === \"string\" ? PACKAGE_VERSION : \"dev\";\nconst DEFAULT_BASE_URL = \"https://api.billete.run\";\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);\n\nexport interface TransportOptions {\n /** Defaults to `BILLETE_BASE_URL` on the server, then `https://api.billete.run`. Use\n * `http://localhost:9999` in development. */\n baseUrl?: string;\n /** Custom fetch (tests, proxies). Defaults to the global fetch. */\n fetch?: typeof globalThis.fetch;\n timeoutMs?: number;\n /** Retries for network errors, 429, 5xx and in-progress duplicates. Mutations retry safely. */\n maxRetries?: number;\n}\n\nexport interface RequestOptions {\n /** Reuse to make a mutation safe to retry; generated automatically when omitted. */\n idempotencyKey?: string;\n signal?: AbortSignal;\n}\n\n/** Query parameters; `undefined` values are omitted. */\ntype Query = object;\n\ninterface Request {\n method: \"GET\" | \"POST\" | \"PATCH\" | \"PUT\" | \"DELETE\";\n path: string;\n query?: Query;\n body?: unknown;\n options?: RequestOptions;\n}\n\nfunction backoff(attempt: number, retryAfter: string | null) {\n const seconds = retryAfter ? Number(retryAfter) : Number.NaN;\n return Number.isFinite(seconds) ? seconds * 1_000 : Math.min(500 * 2 ** attempt, 8_000);\n}\n\nfunction pause(ms: number, signal?: AbortSignal) {\n return new Promise<void>((resolve, reject) => {\n const timer = setTimeout(resolve, ms);\n signal?.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timer);\n reject(signal.reason);\n },\n { once: true },\n );\n });\n}\n\nfunction buildUrl(baseUrl: string, path: string, query?: Query) {\n const url = new URL(path, baseUrl);\n Object.entries(query ?? {})\n .filter(([, value]) => value !== undefined)\n .forEach(([key, value]) => url.searchParams.set(key, String(value)));\n return url;\n}\n\n/** A concurrent request with the same idempotency key is still running: worth retrying. */\nasync function inProgress(response: Response) {\n const body = (await response\n .clone()\n .json()\n .catch(() => null)) as ApiErrorEnvelope | null;\n return body?.error.code === \"idempotency_request_in_progress\";\n}\n\nasync function toError(response: Response): Promise<BilleteError> {\n const body = (await response.json().catch(() => null)) as ApiErrorEnvelope | null;\n return new BilleteError(\n body?.error ?? {\n type: \"internal\",\n code: \"invalid_response\",\n message: `Unexpected HTTP ${response.status} from Billete`,\n requestId: response.headers.get(\"X-Request-Id\") ?? undefined,\n },\n response.status,\n );\n}\n\nexport type Transport = ReturnType<typeof createTransport>;\n\nexport function createTransport(options: TransportOptions & { token?: () => string | undefined }) {\n const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const fetchImpl =\n options.fetch ?? ((...args: Parameters<typeof fetch>) => globalThis.fetch(...args));\n const timeoutMs = options.timeoutMs ?? 30_000;\n const maxRetries = options.maxRetries ?? 2;\n\n async function send<T>(\n request: Request,\n idempotencyKey: string | undefined,\n attempt: number,\n ): Promise<T> {\n const token = options.token?.();\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n \"X-Billete-Client\": `billete-js/${SDK_VERSION}`,\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n ...(request.body === undefined ? {} : { \"Content-Type\": \"application/json\" }),\n ...(idempotencyKey ? { \"Idempotency-Key\": idempotencyKey } : {}),\n };\n const signals = [AbortSignal.timeout(timeoutMs), request.options?.signal].filter(\n (signal): signal is AbortSignal => signal !== undefined,\n );\n const response = await fetchImpl(buildUrl(baseUrl, request.path, request.query), {\n method: request.method,\n headers,\n body: request.body === undefined ? undefined : JSON.stringify(request.body),\n signal: AbortSignal.any(signals),\n }).catch((error: unknown) => {\n if (request.options?.signal?.aborted) throw error;\n return error instanceof Error ? error : new Error(String(error));\n });\n\n const retryable =\n response instanceof Error ||\n RETRYABLE_STATUS.has(response.status) ||\n (response.status === 409 && (await inProgress(response)));\n if (retryable && attempt < maxRetries) {\n await pause(\n backoff(attempt, response instanceof Error ? null : response.headers.get(\"Retry-After\")),\n request.options?.signal,\n );\n return send(request, idempotencyKey, attempt + 1);\n }\n if (response instanceof Error) {\n throw new BilleteError(\n {\n type: \"network\",\n code: \"network_error\",\n message: `Could not reach Billete: ${response.message}`,\n },\n 0,\n );\n }\n if (!response.ok) throw await toError(response);\n return (response.status === 204 ? undefined : await response.json()) as T;\n }\n\n function request<T>(request: Request): Promise<T> {\n const idempotencyKey =\n request.method === \"GET\"\n ? undefined\n : (request.options?.idempotencyKey ?? globalThis.crypto.randomUUID());\n return send<T>(request, idempotencyKey, 0);\n }\n\n /** Walks every page of a list endpoint. */\n async function* paginate<T>(path: string, query: Query = {}): AsyncGenerator<T> {\n const page = await request<List<T>>({ method: \"GET\", path, query });\n yield* page.data;\n if (page.nextCursor) yield* paginate<T>(path, { ...query, cursor: page.nextCursor });\n }\n\n return { request, paginate };\n}\n\n/** Encodes a path segment (customer references may be merchant-defined external IDs). */\nexport function segment(value: string) {\n return encodeURIComponent(value);\n}\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as segment, r as BilleteError, t as createTransport } from "./http-ChElV20o.js";
1
+ import { n as segment, r as BilleteError, t as createTransport } from "./http-CG9YDQ6-.js";
2
2
  import { WebhookVerificationError, verifyWebhook } from "./webhooks.js";
3
3
  //#region ../contracts/src/environment.ts
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boelabs/billete-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Billete SDK: server client, browser client and webhook verification",
5
5
  "keywords": [
6
6
  "billete",