@isnap/sdk 1.1.0-next.85 → 1.2.0-next.87

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/CHANGELOG.md CHANGED
@@ -10,13 +10,18 @@ All notable changes to `@isnap/sdk` will be documented in this file. The format
10
10
  - Resource classes: `messages`, `chats`, `lines`, `lookup`, `attachments`, `webhooks`, `byod`, `trial`.
11
11
  - `attachments.upload()` — transparent 3-step (POST register → presigned R2 PUT → poll until `ready`) with 5 GB cap and four typed failure modes.
12
12
  - Cursor pagination as `AsyncIterable` with optional `AbortSignal` on `messages.list`, `webhooks.deliveries`, `webhooks.events`.
13
- - Webhook helpers: `verifyWebhook` (HMAC-SHA256 + 5min replay window + multi-secret rotation), `parseWebhookEvent`, prefix-based type guards (`isMessageEvent`, `isReactionEvent`, `isLineEvent`, `isTypingEvent`, `isTrialEvent`).
13
+ - Webhook helpers: `verifyWebhook` (HMAC-SHA256 + 5min replay window + multi-secret rotation), `parseWebhookEvent`, prefix-based type guards (`isMessageEvent`, `isReactionEvent`, `isLineEvent`, `isTypingIndicatorEvent`, `isTrialEvent`, `isPreOrderEvent`, `isBindingEvent`, `isAdminEvent`).
14
+ - Webhook event-type aliases re-synced with the backend catalog (additive, MINOR): `MessageEventType` gains `message.fallback_triggered` (iMessage→SMS/RCS degradation) and `LineEventType` gains `line.capability_changed`; two new families ship complete — `BindingEventType`/`BindingEvent`/`isBindingEvent` (`binding.released`, shared-plan contact-binding release) and `AdminEventType`/`AdminEvent`/`isAdminEvent` (`webhook.test`, the suspended-state probe). All eight aliases are now locked to the generated `WebhookEventName` enum by a compile-time parity assertion (`src/webhooks/catalog-parity.test.ts`), so a future catalog change — including a brand-new family — fails `bun run typecheck` instead of silently stranding consumers who cast `event.event_type as MessageEventType` for exhaustiveness. Runtime narrowing is unchanged: the guards already prefix-matched every one of these.
14
15
  - Error hierarchy mirroring contract §6: `APIError` + 13 subclasses, all carrying `status`, `code`, `traceId`, `requestId`. Connection failures surface as `APIConnectionError` with native `Error.cause`.
15
16
  - Generated TypeScript types (`src/generated/openapi.d.ts`) compiled from the backend's frozen `openapi.json`.
17
+ - `maxRetryDelayMs` client option (default `60_000`) — ceiling on how long a single retry may sleep. A 429 whose `retry_after` exceeds it is rethrown as `RateLimitError` (with `retryAfter` intact) instead of slept through, so a day-scale `Retry-After` such as the trial rebind cap can no longer park a call for hours. The exponential-backoff branch is clamped to the same ceiling.
16
18
 
17
19
  ### Changed
18
20
  - `src/generated/openapi.d.ts` is now generated from the **published** contract. `packages/backend/openapi.json` carries only the partner-facing `/v1/*` surface, so the internal operator routes (`/admin`, `/va`, `/farm-ops`, `/kam`, `/auth`, …) and the bridge-only `/v1/device/*` contract — plus every schema reachable only from them — are no longer emitted into the SDK types. Those routes are the dashboard, the ops back-office and the device bridge; none of them is part of the partner contract this SDK wraps, and no `ISnapClient` method referenced their types, so no documented method changes shape.
19
21
 
20
22
  ### Fixed
23
+ - `User-Agent` misreported the SDK version. `SDK_VERSION` was left at `1.0.0` through `package.json`'s bumps to `1.1.0` and `1.2.0`, and it is the sole input to the header, so every request from the published package mis-identified its own version to server, proxy and CDN logs. `SDK_VERSION` now tracks `package.json` (`1.2.0`), and `src/version.test.ts` reads the published version off disk and fails the build the next time they disagree.
24
+ - **`ReactionEvent.data` is now the flat contract §4.3.2 payload** (`parent_message_id`, `reaction_id`, `reaction_type`, `reaction_emoji`, `direction`, a direction-appropriate handle, and one of `received_at` / `added_at` / `removed_at`). The previous `{ reaction: Reaction }` nesting never matched any delivery, so the documented happy path (`event.data.reaction.id`) always threw `TypeError` — with TypeScript's blessing. `reaction_type` now also admits `custom` and `reaction_emoji` is nullable, neither of which the borrowed REST `Reaction` schema could express. The new `ReactionEventData` is a union discriminated on `direction`, so reading `from_handle` on an outbound payload (or `actor_handle` on an inbound one) is a compile error — **source-breaking for consumers that read those keys without narrowing**, though no such consumer could have been working at runtime. No wire, schema, or `api_version` change: the producers were already correct.
25
+ - `packages/sdk/examples/` is now linted and typechecked. `lint` covers `examples/`, and they are in `tsconfig.json` itself — so the single `tsc --noEmit` pass sees them and, more importantly, so does the editor: a mistake in an example is red as you type rather than minutes later in CI, which is how these defects reached a published tarball in the first place. `tsconfig.build.json` carries its own `include` + `rootDir` so emit stays bounded to `src/` no matter how the editor program grows, and `dist/` is byte-identical to before. That gap had let four defects ship in reference code: `handle-webhook.ts` imported the non-existent `isTypingEvent` (it is `isTypingIndicatorEvent`) so the example died at import, dereferenced `event.data.reaction.id`, and dropped every `pre_order.*` delivery into its unhandled `else` (no `isPreOrderEvent` branch); `upload-attachment.ts` sent `attachment_ids` instead of the contract's `attachments`.
21
26
  - Regenerated `src/generated/openapi.d.ts` against API `1.3.0`. `lookup.check()` now types the `202` pending trio (`pending`, `probe_id`, `retry_after`), so the re-poll branch is reachable without a cast.
22
27
  - `verify:generated` script + `src/generated.test.ts` assert the committed types are byte-identical to `openapi-typescript` output, so the published tarball can no longer ship a stale contract.
package/README.md CHANGED
@@ -37,6 +37,7 @@ new ISnapClient({
37
37
  apiKey: 'sk_live_...', // required
38
38
  baseUrl: 'https://api.isnap.ai', // default
39
39
  maxRetries: 3, // default 3 — retries on 429/5xx with jittered backoff
40
+ maxRetryDelayMs: 60_000, // ceiling on a honored Retry-After; a longer 429 is rethrown instead of slept
40
41
  timeoutMs: 30_000, // per-attempt timeout
41
42
  idempotencyKey: 'auto', // 'auto' generates UUIDs for POST/PATCH/PUT/DELETE; 'manual' = pass via opts
42
43
  fetch: undefined, // override (e.g. an instrumented fetch)
@@ -159,6 +160,8 @@ Throws `WebhookSignatureError` on missing headers, expired timestamp (5min toler
159
160
 
160
161
  If verification happens behind a trusted gateway, use `parseWebhookEvent(rawBody)` to skip HMAC and just type the envelope.
161
162
 
163
+ One guard per event family, each narrowing `event.data` and matching on the wire prefix: `isMessageEvent`, `isReactionEvent`, `isLineEvent`, `isTypingIndicatorEvent`, `isTrialEvent`, `isPreOrderEvent`, `isBindingEvent` (`binding.*`) and `isAdminEvent` (`webhook.*`, the `webhook.test` probe). They prefix-match, so a future event in a known family still narrows without an SDK upgrade. The matching `*EventType` aliases (`MessageEventType`, …) enumerate today's catalog for exhaustive `switch` statements and are kept in lockstep with the backend by a compile-time parity check. A full worked handler lives in [`examples/handle-webhook.ts`](./examples/handle-webhook.ts).
164
+
162
165
  ## Errors
163
166
 
164
167
  All API errors extend `APIError` and carry `status`, `code`, `message`, `traceId`, `requestId`. Subclasses match the §6 contract codes:
@@ -205,6 +208,8 @@ try {
205
208
 
206
209
  Retries: 429 + 5xx are retried automatically with jittered exponential backoff up to `maxRetries`. The retry budget is per-call.
207
210
 
211
+ A server-sent `retry_after` is honored, but only up to `maxRetryDelayMs` (default 60s). A 429 asking for longer is **not** slept through — the `RateLimitError` is thrown straight to you, with `err.retryAfter` (seconds) intact, so you can schedule the wait yourself instead of parking the promise. The concrete case is the trial rebind cap: revoking with `reason: 'rebind'` past the per-owner limit answers with `retry_after ≈ 86400` (24h), which the SDK surfaces immediately rather than hanging for a day. `onRetry` does not fire for these — nothing is being retried. If you genuinely want the SDK to sleep that long, raise the ceiling to a large finite value (`maxRetryDelayMs: 86_400_000`); `Infinity` is rejected.
212
+
208
213
  ## Examples
209
214
 
210
215
  Runnable scripts in [`examples/`](https://github.com/WhatSnap/iSnap-App/tree/main/packages/sdk/examples) (browse on GitHub — they live in the repo, not the published tarball):
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAA;AAqB9E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;gBAEvB,MAAM,EAAE,YAAY;IAchC;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoB5E;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,CAAC,CAAC;YAwBC,QAAQ;IA8GtB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,sBAAsB;CAO/B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAA;AAqB9E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;gBAEvB,MAAM,EAAE,YAAY;IAchC;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoB5E;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,CAAC,CAAC;YAyBC,QAAQ;IA8GtB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,sBAAsB;CAO/B"}
package/dist/client.js CHANGED
@@ -119,6 +119,7 @@ export class ISnapClient {
119
119
  const maxRetries = opts.maxRetries !== undefined ? validateMaxRetries(opts.maxRetries) : this.config.maxRetries;
120
120
  return withRetries(() => this.dispatch(url, init, opts), {
121
121
  maxRetries,
122
+ maxRetryDelayMs: this.config.maxRetryDelayMs,
122
123
  onRetry: this.config.onRetry,
123
124
  signal: opts.signal
124
125
  });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import type { RetryInfo } from './retry.js';
1
+ import { type RetryInfo } from './retry.js';
2
2
  export interface ClientConfig {
3
3
  apiKey: string;
4
4
  baseUrl?: string;
5
5
  maxRetries?: number;
6
+ maxRetryDelayMs?: number;
6
7
  timeoutMs?: number;
7
8
  idempotencyKey?: 'auto' | 'manual';
8
9
  fetch?: typeof fetch;
@@ -12,6 +13,7 @@ export interface ResolvedConfig {
12
13
  apiKey: string;
13
14
  baseUrl: string;
14
15
  maxRetries: number;
16
+ maxRetryDelayMs: number;
15
17
  timeoutMs: number;
16
18
  idempotencyKey: 'auto' | 'manual';
17
19
  fetch: typeof fetch;
@@ -20,6 +22,7 @@ export interface ResolvedConfig {
20
22
  export declare const DEFAULTS: {
21
23
  baseUrl: string;
22
24
  maxRetries: number;
25
+ maxRetryDelayMs: number;
23
26
  timeoutMs: number;
24
27
  idempotencyKey: "auto";
25
28
  };
@@ -34,6 +37,17 @@ export declare function resolveConfig(config: ClientConfig): ResolvedConfig;
34
37
  * per-call `RequestOptions.maxRetries` overrides.
35
38
  */
36
39
  export declare function validateMaxRetries(value: number | undefined): number;
40
+ /**
41
+ * Validate `maxRetryDelayMs` — the ceiling on a single retry sleep. Must be
42
+ * a finite positive number: `NaN` and `Infinity` would disable the cap
43
+ * entirely (a comparison against `NaN` is always false, and nothing exceeds
44
+ * `Infinity`), which is exactly the unbounded sleep the ceiling exists to
45
+ * prevent. Zero or negative would reject every retry, including the 60s
46
+ * limiter windows the API relies on. A caller who genuinely wants day-scale
47
+ * sleeps passes a large finite number (`86_400_000`), never `Infinity` —
48
+ * same escape hatch, and the same rejection, as `timeoutMs`.
49
+ */
50
+ export declare function validateMaxRetryDelayMs(value: number | undefined): number;
37
51
  /**
38
52
  * Validate `timeoutMs` — must be a finite positive number. NaN, zero,
39
53
  * negative, or `Infinity` would either abort every request immediately or
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAA;IACjC,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;CACpC;AAED,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAiBlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQpE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQnE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAEvE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAA;IACjC,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;CACpC;AAED,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAkBlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQnE"}
package/dist/config.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { DEFAULT_MAX_RETRY_DELAY_MS } from './retry.js';
1
2
  export const DEFAULTS = {
2
3
  baseUrl: 'https://api.isnap.ai',
3
4
  maxRetries: 3,
5
+ maxRetryDelayMs: DEFAULT_MAX_RETRY_DELAY_MS,
4
6
  timeoutMs: 30_000,
5
7
  idempotencyKey: 'auto'
6
8
  };
@@ -16,6 +18,7 @@ export function resolveConfig(config) {
16
18
  apiKey,
17
19
  baseUrl: (config.baseUrl ?? DEFAULTS.baseUrl).replace(/\/+$/, ''),
18
20
  maxRetries: validateMaxRetries(config.maxRetries),
21
+ maxRetryDelayMs: validateMaxRetryDelayMs(config.maxRetryDelayMs),
19
22
  timeoutMs: validateTimeoutMs(config.timeoutMs),
20
23
  idempotencyKey: config.idempotencyKey ?? DEFAULTS.idempotencyKey,
21
24
  fetch: config.fetch ?? fetch,
@@ -39,6 +42,24 @@ export function validateMaxRetries(value) {
39
42
  }
40
43
  return value;
41
44
  }
45
+ /**
46
+ * Validate `maxRetryDelayMs` — the ceiling on a single retry sleep. Must be
47
+ * a finite positive number: `NaN` and `Infinity` would disable the cap
48
+ * entirely (a comparison against `NaN` is always false, and nothing exceeds
49
+ * `Infinity`), which is exactly the unbounded sleep the ceiling exists to
50
+ * prevent. Zero or negative would reject every retry, including the 60s
51
+ * limiter windows the API relies on. A caller who genuinely wants day-scale
52
+ * sleeps passes a large finite number (`86_400_000`), never `Infinity` —
53
+ * same escape hatch, and the same rejection, as `timeoutMs`.
54
+ */
55
+ export function validateMaxRetryDelayMs(value) {
56
+ if (value === undefined)
57
+ return DEFAULTS.maxRetryDelayMs;
58
+ if (!Number.isFinite(value) || value <= 0) {
59
+ throw new Error(`iSnap SDK: maxRetryDelayMs must be a finite positive number (got ${String(value)})`);
60
+ }
61
+ return value;
62
+ }
42
63
  /**
43
64
  * Validate `timeoutMs` — must be a finite positive number. NaN, zero,
44
65
  * negative, or `Infinity` would either abort every request immediately or
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAe;CAChC,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,OAAO;QACL,MAAM;QACN,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjE,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;QAC9C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;QAChE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,UAAU,CAAA;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,6DAA6D,MAAM,CAAC,KAAK,CAAC,GAAG,CAC9E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,SAAS,CAAA;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,8DAA8D,MAAM,CAAC,KAAK,CAAC,GAAG,CAC/E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAkB,MAAM,YAAY,CAAA;AAwBvE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,0BAA0B;IAC3C,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAe;CAChC,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,OAAO;QACL,MAAM;QACN,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjE,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,eAAe,EAAE,uBAAuB,CAAC,MAAM,CAAC,eAAe,CAAC;QAChE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;QAC9C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;QAChE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,UAAU,CAAA;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,6DAA6D,MAAM,CAAC,KAAK,CAAC,GAAG,CAC9E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,eAAe,CAAA;IACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,oEAAoE,MAAM,CAAC,KAAK,CAAC,GAAG,CACrF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,SAAS,CAAA;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,8DAA8D,MAAM,CAAC,KAAK,CAAC,GAAG,CAC/E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -6095,6 +6095,9 @@ export interface components {
6095
6095
  runtime_capabilities: {
6096
6096
  [key: string]: "active" | "degraded" | "disabled";
6097
6097
  } | null;
6098
+ /** @enum {string|null} */
6099
+ device_state: "online" | "degraded" | "offline" | "initializing" | "blocked" | null;
6100
+ storage_free_bytes: number | null;
6098
6101
  };
6099
6102
  LineConfigEnvelope: {
6100
6103
  /** @enum {boolean} */
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export type { AreaCode, AreaCodes, Country, ListAreaCodesQuery } from './resourc
19
19
  export type { Chat, ChatMarkRead, ChatTypingStart, ChatTypingStop, ListChatsQuery, MarkReadBody, ShareContactCardBody, ShareContactCardResult, TypingStartBody } from './resources/chats.js';
20
20
  export type { ActivateLineBody, AssignLineBody, Line, LineConfigPatch, LineConfigResponseData, LineHealth, LineList, ListLinesQuery, ListQueueQuery, MyLines, PatchLineBody, QueueResponseData, QuotaSnapshot, TransferOwnershipBody } from './resources/lines.js';
21
21
  export type { LookupRequest, LookupResult } from './resources/lookup.js';
22
- export type { ListMessagesQuery, Message, Reaction, ReactionRemoval, SendMessageBody, SendReactionBody } from './resources/messages.js';
22
+ export type { ListMessagesQuery, Message, Reaction, ReactionRemoval, ReactionType, SendMessageBody, SendReactionBody } from './resources/messages.js';
23
23
  export type { Attachment, CreateAttachmentBody, CreateAttachmentResponse, UploadInput, UploadMetadata, UploadOptions } from './resources/attachments.js';
24
24
  export type { ByodPairBody, ByodPairResponse } from './resources/byod.js';
25
25
  export type { CreatePreOrderBody, ListPreOrdersQuery, PreOrder, PreOrderListData, PreOrderStatus } from './resources/preorders.js';
@@ -28,6 +28,6 @@ export type { CreateWebhookBody, ListDeliveriesQuery, ListEventsQuery, UpdateWeb
28
28
  export { parseWebhookEvent } from './webhooks/parse.js';
29
29
  export { verifyWebhook } from './webhooks/verify.js';
30
30
  export type { VerifyWebhookOptions } from './webhooks/verify.js';
31
- export { isLineEvent, isMessageEvent, isPreOrderEvent, isReactionEvent, isTrialEvent, isTypingIndicatorEvent } from './webhooks/types.js';
32
- export type { LineEvent, LineEventType, MessageEvent, MessageEventType, PreOrderEvent, PreOrderEventType, ReactionEvent, ReactionEventType, TrialEvent, TrialEventType, TypingIndicatorEvent, TypingIndicatorEventType, WebhookEvent, WebhookEventBase } from './webhooks/types.js';
31
+ export { isAdminEvent, isBindingEvent, isLineEvent, isMessageEvent, isPreOrderEvent, isReactionEvent, isTrialEvent, isTypingIndicatorEvent } from './webhooks/types.js';
32
+ export type { AdminEvent, AdminEventType, BindingEvent, BindingEventType, LineEvent, LineEventType, MessageEvent, MessageEventType, PreOrderEvent, PreOrderEventType, ReactionEvent, ReactionEventData, ReactionEventType, TrialEvent, TrialEventType, TypingIndicatorEvent, TypingIndicatorEventType, WebhookEvent, WebhookEventBase } from './webhooks/types.js';
33
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,5 +13,5 @@ export { TrialResource } from './resources/trial.js';
13
13
  export { WebhooksResource } from './resources/webhooks.js';
14
14
  export { parseWebhookEvent } from './webhooks/parse.js';
15
15
  export { verifyWebhook } from './webhooks/verify.js';
16
- export { isLineEvent, isMessageEvent, isPreOrderEvent, isReactionEvent, isTrialEvent, isTypingIndicatorEvent } from './webhooks/types.js';
16
+ export { isAdminEvent, isBindingEvent, isLineEvent, isMessageEvent, isPreOrderEvent, isReactionEvent, isTrialEvent, isTypingIndicatorEvent } from './webhooks/types.js';
17
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAKpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAgF1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAKpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAiF1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,qBAAqB,CAAA"}
@@ -8,6 +8,14 @@ export type ListMessagesQuery = NonNullable<paths['/v1/messages']['get']['parame
8
8
  export type SendReactionBody = components['schemas']['SendReactionRequest'];
9
9
  export type Reaction = components['schemas']['Reaction'];
10
10
  export type ReactionRemoval = components['schemas']['ReactionRemoval'];
11
+ /**
12
+ * The tapback kind as it appears on a reaction the API *reports* — the 6
13
+ * classic tapbacks plus `custom` (WHA-2102), an arbitrary counterparty emoji.
14
+ * Strictly wider than `Reaction['type']` / `SendReactionBody['type']`, which
15
+ * cover only what a customer may *send*. Sourced from the generated
16
+ * `MessageReactionV1` so a regeneration cannot silently drop `custom`.
17
+ */
18
+ export type ReactionType = components['schemas']['MessageReactionV1']['reaction_type'];
11
19
  export declare class MessagesResource extends BaseResource {
12
20
  /** `POST /v1/messages` — send a new outbound message (queued, returns `MessageV1`). */
13
21
  send(body: SendMessageBody, opts?: RequestOptions): Promise<Message>;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,qFAAqF;AACrF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,WAAW,CACvC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAC7C,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAChC,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAChG,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAA;AAC3E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AAEtE,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,uFAAuF;IACvF,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpE,wEAAwE;IACxE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD;;;;;;OAMG;IACH,IAAI,CACF,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAM,EAC/C,IAAI,CAAC,EAAE,cAAc,GACpB,aAAa,CAAC,OAAO,CAAC;IAWzB;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAShG;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IASlF;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ5D"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,qFAAqF;AACrF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,WAAW,CACvC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAC7C,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAChC,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAChG,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAA;AAC3E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAA;AAEtF,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,uFAAuF;IACvF,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpE,wEAAwE;IACxE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD;;;;;;OAMG;IACH,IAAI,CACF,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAM,EAC/C,IAAI,CAAC,EAAE,cAAc,GACpB,aAAa,CAAC,OAAO,CAAC;IAWzB;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAShG;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IASlF;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAYxC,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,uFAAuF;IACvF,IAAI,CAAC,IAAqB,EAAE,IAAqB;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACzE,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,KAAK,EAAE,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACvG,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CACF,UAA6C,EAAE,EAC/C,IAAqB;QAErB,OAAO,QAAQ,CACb,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE;YACzE,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;SAC9B,CAAC,EACJ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CACzB,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,SAAiB,EAAE,IAAsB,EAAE,IAAqB;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACzD,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,SAAiB,EAAE,IAAqB;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,QAAQ,EACR,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACzD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,QAAQ,EACR,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EACxC,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAoBxC,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,uFAAuF;IACvF,IAAI,CAAC,IAAqB,EAAE,IAAqB;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACzE,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,KAAK,EAAE,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACvG,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CACF,UAA6C,EAAE,EAC/C,IAAqB;QAErB,OAAO,QAAQ,CACb,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE;YACzE,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;SAC9B,CAAC,EACJ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CACzB,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,SAAiB,EAAE,IAAsB,EAAE,IAAqB;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACzD,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,SAAiB,EAAE,IAAqB;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,QAAQ,EACR,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,EACzD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,QAAQ,EACR,gBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EACxC,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
package/dist/retry.d.ts CHANGED
@@ -5,10 +5,35 @@ export interface RetryInfo {
5
5
  }
6
6
  export interface RetryConfig {
7
7
  maxRetries: number;
8
+ maxRetryDelayMs?: number;
8
9
  onRetry?: (info: RetryInfo) => void;
9
10
  signal?: AbortSignal;
10
11
  }
12
+ /**
13
+ * Ceiling on how long a single retry may sleep, in milliseconds.
14
+ *
15
+ * A server-sent `retry_after` is honored verbatim, and the backend emits
16
+ * day-scale values on purpose — the trial rebind cap returns
17
+ * `retry_after ≈ 86400` (24h) as a *retryable* 429. Without a ceiling one
18
+ * `await client.trial.revoke(...)` would sit in an uninterruptible sleep for
19
+ * a day (three of them, at the default `maxRetries: 3`), which an integrator
20
+ * experiences as a hang rather than as a rate limit. 60s covers every
21
+ * limiter window the API actually uses; anything beyond it is something the
22
+ * caller should schedule itself, not something the SDK should sleep through.
23
+ */
24
+ export declare const DEFAULT_MAX_RETRY_DELAY_MS = 60000;
11
25
  export declare function isRetryable(err: unknown): boolean;
12
- export declare function computeBackoff(attempt: number, err: unknown): number;
26
+ /**
27
+ * How long the next attempt should wait, in milliseconds.
28
+ *
29
+ * A honored `retry_after` is returned **raw and unclamped** on purpose: the
30
+ * caller needs the true figure for the `onRetry` diagnostic and for the
31
+ * error path. Enforcing the ceiling is `withRetries`' job — it rethrows
32
+ * rather than sleeping when the raw value overshoots, so the two branches
33
+ * stay distinguishable (`> maxDelayMs` means "don't wait", not "wait
34
+ * `maxDelayMs`"). Only the exponential fallback is clamped here, since it
35
+ * grows unboundedly with `attempt` and has no caller-visible meaning.
36
+ */
37
+ export declare function computeBackoff(attempt: number, err: unknown, maxDelayMs?: number): number;
13
38
  export declare function withRetries<T>(fn: () => Promise<T>, config: RetryConfig): Promise<T>;
14
39
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOjD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAKpE;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAoB1F"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,UAAU,GAAE,MAAmC,GAC9C,MAAM,CAKR;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CA+B1F"}
package/dist/retry.js CHANGED
@@ -2,6 +2,19 @@ import { APIConnectionError, InternalServerError, QuotaExceededError, RateLimitE
2
2
  import { sleep } from './internal/sleep.js';
3
3
  const BASE_DELAY_MS = 250;
4
4
  const JITTER_MS = 100;
5
+ /**
6
+ * Ceiling on how long a single retry may sleep, in milliseconds.
7
+ *
8
+ * A server-sent `retry_after` is honored verbatim, and the backend emits
9
+ * day-scale values on purpose — the trial rebind cap returns
10
+ * `retry_after ≈ 86400` (24h) as a *retryable* 429. Without a ceiling one
11
+ * `await client.trial.revoke(...)` would sit in an uninterruptible sleep for
12
+ * a day (three of them, at the default `maxRetries: 3`), which an integrator
13
+ * experiences as a hang rather than as a rate limit. 60s covers every
14
+ * limiter window the API actually uses; anything beyond it is something the
15
+ * caller should schedule itself, not something the SDK should sleep through.
16
+ */
17
+ export const DEFAULT_MAX_RETRY_DELAY_MS = 60_000;
5
18
  export function isRetryable(err) {
6
19
  if (err instanceof QuotaExceededError)
7
20
  return false;
@@ -15,13 +28,25 @@ export function isRetryable(err) {
15
28
  return true;
16
29
  return false;
17
30
  }
18
- export function computeBackoff(attempt, err) {
31
+ /**
32
+ * How long the next attempt should wait, in milliseconds.
33
+ *
34
+ * A honored `retry_after` is returned **raw and unclamped** on purpose: the
35
+ * caller needs the true figure for the `onRetry` diagnostic and for the
36
+ * error path. Enforcing the ceiling is `withRetries`' job — it rethrows
37
+ * rather than sleeping when the raw value overshoots, so the two branches
38
+ * stay distinguishable (`> maxDelayMs` means "don't wait", not "wait
39
+ * `maxDelayMs`"). Only the exponential fallback is clamped here, since it
40
+ * grows unboundedly with `attempt` and has no caller-visible meaning.
41
+ */
42
+ export function computeBackoff(attempt, err, maxDelayMs = DEFAULT_MAX_RETRY_DELAY_MS) {
19
43
  if (err instanceof RateLimitError && typeof err.retryAfter === 'number' && err.retryAfter > 0) {
20
44
  return err.retryAfter * 1000;
21
45
  }
22
- return BASE_DELAY_MS * Math.pow(2, attempt) + Math.random() * JITTER_MS;
46
+ return Math.min(BASE_DELAY_MS * Math.pow(2, attempt) + Math.random() * JITTER_MS, maxDelayMs);
23
47
  }
24
48
  export async function withRetries(fn, config) {
49
+ const maxDelayMs = config.maxRetryDelayMs ?? DEFAULT_MAX_RETRY_DELAY_MS;
25
50
  let lastError;
26
51
  for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
27
52
  if (config.signal?.aborted) {
@@ -37,7 +62,18 @@ export async function withRetries(fn, config) {
37
62
  const isLast = attempt === config.maxRetries;
38
63
  if (isLast || !isRetryable(err))
39
64
  throw err;
40
- const nextDelayMs = computeBackoff(attempt, err);
65
+ const nextDelayMs = computeBackoff(attempt, err, maxDelayMs);
66
+ // The single choke point for every retry sleep in the SDK, and the
67
+ // only place a server-controlled duration reaches a timer. Written
68
+ // fail-closed (`!(x <= cap)` rather than `x > cap`) so a `retry_after`
69
+ // that lands on `NaN` or overflows to `Infinity` through the seconds →
70
+ // ms conversion rethrows too, instead of slipping past a `>` test.
71
+ // Rethrowing the ORIGINAL error keeps `instanceof`, `status`, `code`,
72
+ // `retryAfter`, `traceId` and `requestId` intact so the caller can
73
+ // schedule the long wait itself. Ordered before `onRetry` — the hook
74
+ // must not announce a retry that never happens.
75
+ if (!(nextDelayMs <= maxDelayMs))
76
+ throw err;
41
77
  config.onRetry?.({ attempt, nextDelayMs, error: err });
42
78
  await sleep(nextDelayMs, config.signal, 'Request aborted during retry backoff');
43
79
  }
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAc3C,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,kBAAkB;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,GAAG,YAAY,kBAAkB;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,GAAG,YAAY,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,GAAG,YAAY,uBAAuB;QAAE,OAAO,IAAI,CAAA;IACvD,IAAI,GAAG,YAAY,cAAc;QAAE,OAAO,IAAI,CAAA;IAC9C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,GAAY;IAC1D,IAAI,GAAG,YAAY,cAAc,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC9F,OAAO,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA;IAC9B,CAAC;IACD,OAAO,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAA;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,EAAoB,EAAE,MAAmB;IAC5E,IAAI,SAAkB,CAAA;IACtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,EAAE;gBAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;aAC5B,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAA;YACf,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,UAAU,CAAA;YAC5C,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YAC1C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAChD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACtD,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAe3C,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,kBAAkB;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,GAAG,YAAY,kBAAkB;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,GAAG,YAAY,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,GAAG,YAAY,uBAAuB;QAAE,OAAO,IAAI,CAAA;IACvD,IAAI,GAAG,YAAY,cAAc;QAAE,OAAO,IAAI,CAAA;IAC9C,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,GAAY,EACZ,aAAqB,0BAA0B;IAE/C,IAAI,GAAG,YAAY,cAAc,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC9F,OAAO,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,UAAU,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,EAAoB,EAAE,MAAmB;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,IAAI,0BAA0B,CAAA;IACvE,IAAI,SAAkB,CAAA;IACtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,EAAE;gBAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;aAC5B,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAA;YACf,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,UAAU,CAAA;YAC5C,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YAC1C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;YAC5D,mEAAmE;YACnE,mEAAmE;YACnE,uEAAuE;YACvE,uEAAuE;YACvE,mEAAmE;YACnE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,gDAAgD;YAChD,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC;gBAAE,MAAM,GAAG,CAAA;YAC3C,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACtD,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAA;AACjB,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SDK_VERSION = "1.0.0";
1
+ export declare const SDK_VERSION = "1.2.0";
2
2
  export declare const MIN_API_VERSION = "1.0.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,UAAU,CAAA;AAelC,eAAO,MAAM,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,UAAU,CAAA;AAelC,eAAO,MAAM,eAAe,UAAU,CAAA"}
package/dist/version.js CHANGED
@@ -1,8 +1,10 @@
1
1
  // SDK version. Bumped INDEPENDENTLY of the API contract version per
2
2
  // industry standard (Stripe, Twilio, OpenAI, AWS): SDK semver tracks SDK
3
3
  // changes (new methods, retry logic, type fixes), API semver tracks the
4
- // contract surface. Synced with `package.json` by the release flow.
5
- export const SDK_VERSION = '1.0.0';
4
+ // contract surface. Hand-maintained: no build or publish step derives this
5
+ // from `package.json`, so it MUST be bumped in the same commit as the
6
+ // `version` field there. `src/version.test.ts` fails CI when they disagree.
7
+ export const SDK_VERSION = '1.2.0';
6
8
  // Minimum API version the SDK considers compatible. Reference-only
7
9
  // today: the client does NOT yet fetch `/v1/version` at first request,
8
10
  // and there is no `IncompatibleApiVersionError` thrown on a lower
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,yEAAyE;AACzE,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAA;AAElC,mEAAmE;AACnE,uEAAuE;AACvE,kEAAkE;AAClE,wEAAwE;AACxE,kEAAkE;AAClE,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,mEAAmE;AACnE,iDAAiD;AACjD,uEAAuE;AACvE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,yEAAyE;AACzE,wEAAwE;AACxE,2EAA2E;AAC3E,sEAAsE;AACtE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAA;AAElC,mEAAmE;AACnE,uEAAuE;AACvE,kEAAkE;AAClE,wEAAwE;AACxE,kEAAkE;AAClE,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,mEAAmE;AACnE,iDAAiD;AACjD,uEAAuE;AACvE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Message, Reaction } from '../resources/messages.js';
1
+ import type { Message, ReactionType } from '../resources/messages.js';
2
2
  /**
3
3
  * Common envelope for every webhook event. Per contract §4.1: every
4
4
  * delivery body is shaped `{ api_version, event_id, event_type,
@@ -13,7 +13,7 @@ export interface WebhookEventBase {
13
13
  trace_id?: string;
14
14
  data: Record<string, unknown>;
15
15
  }
16
- export type MessageEventType = 'message.queued' | 'message.scheduled' | 'message.sent' | 'message.delivered' | 'message.failed' | 'message.received' | 'message.read' | 'message.cancelled';
16
+ export type MessageEventType = 'message.queued' | 'message.scheduled' | 'message.sent' | 'message.delivered' | 'message.failed' | 'message.received' | 'message.read' | 'message.cancelled' | 'message.fallback_triggered';
17
17
  export interface MessageEvent extends WebhookEventBase {
18
18
  event_type: `message.${string}`;
19
19
  data: {
@@ -21,13 +21,51 @@ export interface MessageEvent extends WebhookEventBase {
21
21
  };
22
22
  }
23
23
  export type ReactionEventType = 'reaction.added' | 'reaction.received' | 'reaction.removed';
24
+ /** Keys every `reaction.*` delivery carries, whatever its direction. */
25
+ type ReactionEventDataBase = {
26
+ parent_message_id: string;
27
+ reaction_id: string;
28
+ reaction_type: ReactionType;
29
+ reaction_emoji: string | null;
30
+ removed_at?: string;
31
+ };
32
+ /**
33
+ * The `data` payload of a `reaction.*` delivery, per contract §4.3.2. It is
34
+ * FLAT — the fields sit directly on `data`, not under a `reaction` key (a
35
+ * nested `{ reaction }` shape was declared here until WHA-2193 and no
36
+ * producer ever emitted it).
37
+ *
38
+ * Discriminated on `direction`, because the handle key differs by family and
39
+ * that asymmetry is deliberate on the producer side: an inbound tapback names
40
+ * the counterparty who reacted to us (`from_handle`), an outbound one names
41
+ * the line that acted (`actor_handle`). Reading the wrong one is a compile
42
+ * error — narrow on `direction` first. `reaction.removed` is the only event
43
+ * that fires in both directions.
44
+ *
45
+ * Timestamps are optional because each delivery carries exactly one of them
46
+ * (`received_at` inbound-add, `added_at` outbound-add, `removed_at` either
47
+ * direction). Keeping them optional also lets a future `reaction.*` member
48
+ * with a new timestamp key narrow without an SDK release.
49
+ *
50
+ * `reaction_type` is the widened set that includes `custom` (WHA-2102): a
51
+ * counterparty may send an arbitrary emoji, and `reaction_emoji` then carries
52
+ * it verbatim — or `null` when the bridge supplied none. For the 6 classic
53
+ * tapbacks the emoji is always server-derived (WHA-2100).
54
+ */
55
+ export type ReactionEventData = (ReactionEventDataBase & {
56
+ direction: 'inbound';
57
+ from_handle: string;
58
+ received_at?: string;
59
+ }) | (ReactionEventDataBase & {
60
+ direction: 'outbound';
61
+ actor_handle: string;
62
+ added_at?: string;
63
+ });
24
64
  export interface ReactionEvent extends WebhookEventBase {
25
65
  event_type: `reaction.${string}`;
26
- data: {
27
- reaction: Reaction;
28
- };
66
+ data: ReactionEventData;
29
67
  }
30
- export type LineEventType = 'line.connected' | 'line.disconnected' | 'line.offline' | 'line.degraded' | 'line.apple_id_flagged' | 'line.quota_warning' | 'line.quota_exceeded';
68
+ export type LineEventType = 'line.connected' | 'line.disconnected' | 'line.offline' | 'line.degraded' | 'line.apple_id_flagged' | 'line.quota_warning' | 'line.quota_exceeded' | 'line.capability_changed';
31
69
  /**
32
70
  * `data` is intentionally typed as `Record<string, unknown>` until the
33
71
  * contract pins per-event-type field shapes. Today's payloads vary by
@@ -69,6 +107,44 @@ export interface PreOrderEvent extends WebhookEventBase {
69
107
  event_type: `pre_order.${string}`;
70
108
  data: Record<string, unknown>;
71
109
  }
110
+ export type BindingEventType = 'binding.released';
111
+ /**
112
+ * Shared-plan contact-binding lifecycle (contract §4.3.7). Fires on the
113
+ * VIRTUAL line when a `(virtual line, contact handle)` leg is torn down.
114
+ * `data` carries `{ line_id, contact_handle, outbound_number (nullable),
115
+ * released_at, reason: 'inactivity' | 'carrier_terminated' }` — the
116
+ * `outbound_number` being the physical line's number the contact knew,
117
+ * since that association is exactly what the release severs.
118
+ *
119
+ * Left as `Record<string, unknown>` for the same reason as `LineEvent`:
120
+ * `event_type` is the template literal `binding.${string}` so the guard
121
+ * keeps prefix-matching, and a concrete `data` shape here would mistype
122
+ * any future `binding.*` event. There is deliberately no
123
+ * `binding.created` — the first outbound to a new contact already
124
+ * signals it via `message.queued`.
125
+ */
126
+ export interface BindingEvent extends WebhookEventBase {
127
+ event_type: `binding.${string}`;
128
+ data: Record<string, unknown>;
129
+ }
130
+ /**
131
+ * Administrative synthetic probe — the suspended-state health check that
132
+ * decides whether a disabled subscription can be resumed. Not a partner
133
+ * business event, but consumers do receive it, so it gets an alias and a
134
+ * guard like every other family.
135
+ *
136
+ * Named `Admin*` after the backend's `ADMIN_EVENTS` catalog constant
137
+ * while the wire prefix is `webhook.` (and `isAdminEvent` matches that
138
+ * prefix). The names deliberately differ: `WebhookEvent*` is already
139
+ * taken by the union and the envelope base, so an accurate
140
+ * `WebhookEventType` here would collide with both.
141
+ */
142
+ export type AdminEventType = 'webhook.test';
143
+ /** See `LineEvent` for why `data` is loose. */
144
+ export interface AdminEvent extends WebhookEventBase {
145
+ event_type: `webhook.${string}`;
146
+ data: Record<string, unknown>;
147
+ }
72
148
  /**
73
149
  * Discriminated union over the typed event families plus `WebhookEventBase`
74
150
  * as the catch-all for event types not yet known to this SDK version.
@@ -83,11 +159,14 @@ export interface PreOrderEvent extends WebhookEventBase {
83
159
  * }
84
160
  * ```
85
161
  */
86
- export type WebhookEvent = MessageEvent | ReactionEvent | LineEvent | TypingIndicatorEvent | TrialEvent | PreOrderEvent | WebhookEventBase;
162
+ export type WebhookEvent = MessageEvent | ReactionEvent | LineEvent | TypingIndicatorEvent | TrialEvent | PreOrderEvent | BindingEvent | AdminEvent | WebhookEventBase;
87
163
  export declare function isMessageEvent(event: WebhookEventBase): event is MessageEvent;
88
164
  export declare function isReactionEvent(event: WebhookEventBase): event is ReactionEvent;
89
165
  export declare function isLineEvent(event: WebhookEventBase): event is LineEvent;
90
166
  export declare function isTypingIndicatorEvent(event: WebhookEventBase): event is TypingIndicatorEvent;
91
167
  export declare function isTrialEvent(event: WebhookEventBase): event is TrialEvent;
92
168
  export declare function isPreOrderEvent(event: WebhookEventBase): event is PreOrderEvent;
169
+ export declare function isBindingEvent(event: WebhookEventBase): event is BindingEvent;
170
+ export declare function isAdminEvent(event: WebhookEventBase): event is AdminEvent;
171
+ export {};
93
172
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,10 @@ export function isTrialEvent(event) {
17
17
  export function isPreOrderEvent(event) {
18
18
  return event.event_type.startsWith('pre_order.');
19
19
  }
20
+ export function isBindingEvent(event) {
21
+ return event.event_type.startsWith('binding.');
22
+ }
23
+ export function isAdminEvent(event) {
24
+ return event.event_type.startsWith('webhook.');
25
+ }
20
26
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"AAmKA,6EAA6E;AAE7E,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAuB;IAEvB,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"AAsRA,6EAA6E;AAE7E,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAuB;IAEvB,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isnap/sdk",
3
- "version": "1.1.0-next.85",
3
+ "version": "1.2.0-next.87",
4
4
  "description": "Official TypeScript SDK for the iSnap P2P telephony API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsc -p tsconfig.build.json && bun scripts/copy-generated.ts",
43
- "lint": "eslint src/",
43
+ "lint": "eslint src/ examples/",
44
44
  "typecheck": "tsc --noEmit",
45
45
  "test": "vitest run",
46
46
  "test:watch": "vitest",