@isnap/sdk 2.1.0 → 2.2.0-next.210

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
@@ -30,8 +30,9 @@ All notable changes to `@isnap/sdk` will be documented in this file. The format
30
30
  - **Every webhook event carries your own tags** (WHA-3655, additive, MINOR — `2.1.0`): `WebhookPartnerMetadata` (`{ metadata, line_metadata }`, both `Record<string, unknown> | null`) is now part of `data` on `WebhookEventBase` and on every family's event type. `data.metadata` is your metadata on the event's primary resource (the line for `line.*`, the message for `message.*`, the reacted-to message for `reaction.*`, the rented session for `macos_session.*`, the trial for `trial.*`, the pre-order for `pre_order.*`; always `null` for `typing_indicator.*`, `binding.*` and `webhook.*`), and `data.line_metadata` is your metadata on the line the event is tied to (the same object as `metadata` on `line.*`). Both keys are always present, `null` when untagged, and are a snapshot taken at emission, so a retry or a replay carries the same value. Attribute an event to your own records from its payload alone, with no second call.
31
31
  - `client.macosSessions.get(id)` (`GET /v1/macos-sessions/{id}`) and `client.macosSessions.update(id, { metadata })` (`PATCH /v1/macos-sessions/{id}`), plus `client.macosSessions.rent({ metadata })`: a rented session now takes your metadata, returned on `MacosSession.metadata` and cleared when the session is released. `update` merges: a key you send overwrites, a key sent as `null` is deleted. The one-argument `rent(opts)` form is unchanged, and the call shapes are told apart by the `metadata` key.
32
32
  - `client.trial.get(trialId)` (`GET /v1/trial/{trial_id}`) and `client.trial.update(trialId, { metadata })` (`PATCH /v1/trial/{trial_id}`), plus `metadata` on `client.trial.init({ … })` and on `TrialInitData`: the owner's read of one trial (`Trial`) and the verb that tags it, with the same merge rule. Authenticated as the trial's owner, like `revoke`.
33
- - `client.preOrders.create({ …, metadata })`: a pre-order takes your metadata, read back on `PreOrder.metadata` and echoed on every `pre_order.*` webhook. It is set at creation only and is not copied onto the line the pre-order produces.
33
+ - `client.preOrders.create({ …, metadata })`: a pre-order takes your metadata, read back on `PreOrder.metadata` and echoed on every `pre_order.*` webhook. It is not copied onto the line the pre-order produces; `preOrders.update` (below) changes it after creation.
34
34
  - Metadata on every resource that takes it (lines, messages, BYOD pairing, pre-orders, macOS sessions, trials) is now capped at 20 keys and 8192 bytes serialized; a request over the cap is a `BadRequestError` (400), and a PATCH whose merged result breaks it is `400 metadata_too_large`.
35
+ - `client.preOrders.update(id, { metadata })` (`PATCH /v1/pre-orders/{id}`, WHA-3684, additive, MINOR — `2.2.0`): change a pre-order's tags after creation, for example when it is re-assigned to another of your customers before delivery, or to backfill a pre-order placed before you tagged. `update` merges like `macosSessions.update` and `trial.update`: a key you send overwrites, a key sent as `null` is deleted, every other key is kept. It is accepted in every status, `fulfilled` and `cancelled` included, and resolves with the same `PreOrder` that `get` returns. Every `pre_order.*` webhook emitted afterwards carries the new tags as `data.metadata`, and an event already emitted keeps its original tags on every retry and replay. The tags are still not copied onto the line the pre-order produces. A pre-order placed by another account is a `NotFoundError` (404). The body type is exported as `PatchPreOrderBody`. `MIN_API_VERSION` rises from `2.0.0` to `2.24.0`, the API version that added the endpoint.
35
36
 
36
37
  ### Removed
37
38
  - **`verifyWebhook` verifies the Standard Webhooks headers only** (`webhook-id` / `webhook-timestamp` / `webhook-signature`, WHA-3658) — breaking, MAJOR (`2.0.0`). The fallback to the `X-iSnap-Signature` / `X-iSnap-Timestamp` pair is removed, because iSnap no longer sends those headers: a request that carries only them is now rejected with `WebhookSignatureError` (`Missing webhook-id header`). The key derivation no longer strips a `whs_` prefix either; only `whsec_` secrets, the only kind iSnap mints, verify. Unchanged: the `[newSecret, oldSecret]` rotation array, the `tolerance` option and its 300 s default, case-insensitive header reads, and the return value. A caller that already receives iSnap deliveries needs no code change, since every delivery since `1.4.0` carries the standard headers.
@@ -726,12 +726,15 @@ export interface paths {
726
726
  put?: never;
727
727
  /**
728
728
  * Atomically reserve + activate a line
729
- * @description Find an available line matching `billing_tier` (and optional `area_code`), reserve it, and activate it in a single round-trip. Useful when the partner doesn't care which specific number they get — saves the reserve→checkout→activate dance. Scoped API keys are rejected (cannot assign lines outside their allowlist).
729
+ * @description Find an available line matching `billing_tier` (and optional `area_code`), reserve it, and activate it in a single round-trip. Useful when the partner doesn't care which specific number they get — saves the reserve→checkout→activate dance. Scoped API keys are rejected (cannot assign lines outside their allowlist). Every call takes one more line out of stock and makes it yours, so a retry MUST carry the same `Idempotency-Key` as the call it retries: the same key with the same body replays the first response instead of assigning a second line.
730
730
  */
731
731
  post: {
732
732
  parameters: {
733
733
  query?: never;
734
- header?: never;
734
+ header?: {
735
+ /** @description Optional. Makes a retry safe: the same key with the same body within 24h replays the first successful response instead of acting again, and the same key with a different body is `409 idempotency_key_collision`. While the first request is still running, a retry gets `503 idempotency_in_flight` and should retry shortly. A request that fails records nothing, so retrying it runs it again. At most 255 characters. Alias: `X-Idempotency-Key`. */
736
+ "idempotency-key"?: string;
737
+ };
735
738
  path?: never;
736
739
  cookie?: never;
737
740
  };
@@ -819,6 +822,15 @@ export interface paths {
819
822
  "application/json": components["schemas"]["ErrorEnvelope"];
820
823
  };
821
824
  };
825
+ /** @description Service unavailable — a concurrent request is in flight */
826
+ 503: {
827
+ headers: {
828
+ [name: string]: unknown;
829
+ };
830
+ content: {
831
+ "application/json": components["schemas"]["ErrorEnvelope"];
832
+ };
833
+ };
822
834
  };
823
835
  };
824
836
  delete?: never;
@@ -843,7 +855,10 @@ export interface paths {
843
855
  post: {
844
856
  parameters: {
845
857
  query?: never;
846
- header?: never;
858
+ header?: {
859
+ /** @description Optional. Makes a retry safe: the same key with the same body within 24h replays the first successful response instead of acting again, and the same key with a different body is `409 idempotency_key_collision`. While the first request is still running, a retry gets `503 idempotency_in_flight` and should retry shortly. A request that fails records nothing, so retrying it runs it again. At most 255 characters. Alias: `X-Idempotency-Key`. */
860
+ "idempotency-key"?: string;
861
+ };
847
862
  path?: never;
848
863
  cookie?: never;
849
864
  };
@@ -931,6 +946,15 @@ export interface paths {
931
946
  "application/json": components["schemas"]["ErrorEnvelope"];
932
947
  };
933
948
  };
949
+ /** @description Service unavailable — a concurrent request is in flight */
950
+ 503: {
951
+ headers: {
952
+ [name: string]: unknown;
953
+ };
954
+ content: {
955
+ "application/json": components["schemas"]["ErrorEnvelope"];
956
+ };
957
+ };
934
958
  };
935
959
  };
936
960
  delete?: never;
@@ -2796,7 +2820,7 @@ export interface paths {
2796
2820
  put?: never;
2797
2821
  /**
2798
2822
  * Create a pre-order (draft)
2799
- * @description Place a pre-order as a `draft` (WHA-1155). A draft has NO side effects — no provisioning line, no procurement, no Stripe charge — so the partner can hold intent / bill its own end-user first. Call `POST /v1/pre-orders/{id}/confirm` to engage the month and start procurement. A pre-order carries the area codes you would accept, in order of preference, the plan (`inbound_only`), which is remembered for confirm and read back on every response, and optionally the SKU (`billing_tier`). The tier and the plan are ORTHOGONAL — `rental_iphone` covers both the outbound and the inbound product, which is what `inbound_only` selects — so naming both is never a contradiction. `billing_tier` is optional because a pre-order that omits it is still `rental_iphone`, the only tier this flow mints; when named it is ANSWERED, never discarded: `rental_android` is `400 android_rental_not_purchasable` (no Android product exists in the Stripe catalogue, WHA-2474) and a tier no pre-order can procure — BYOD, virtual shared, pool — is `400 tier_not_pre_orderable`, naming the endpoint to call instead (WHA-2949). The body is otherwise STRICT (WHA-2644) — any other property is a `400`, including `quantity` and `metadata`, which earlier revisions of this contract documented and the server silently discarded.
2823
+ * @description Place a pre-order as a `draft` (WHA-1155). A draft has NO side effects — no provisioning line, no procurement, no Stripe charge — so the partner can hold intent / bill its own end-user first. Call `POST /v1/pre-orders/{id}/confirm` to engage the month and start procurement. A pre-order carries the area codes you would accept, in order of preference, the plan (`inbound_only`), which is remembered for confirm and read back on every response, and optionally the SKU (`billing_tier`). The tier and the plan are ORTHOGONAL — `rental_iphone` covers both the outbound and the inbound product, which is what `inbound_only` selects — so naming both is never a contradiction. `billing_tier` is optional because a pre-order that omits it is still `rental_iphone`, the only tier this flow mints; when named it is ANSWERED, never discarded: `rental_android` is `400 android_rental_not_purchasable` (no Android product exists in the Stripe catalogue, WHA-2474) and a tier no pre-order can procure — BYOD, virtual shared, pool — is `400 tier_not_pre_orderable`, naming the endpoint to call instead (WHA-2949). The body is otherwise STRICT (WHA-2644) — any other property is a `400`, including `quantity`, which earlier revisions of this contract documented and the server silently discarded.
2800
2824
  */
2801
2825
  post: {
2802
2826
  parameters: {
@@ -3073,7 +3097,87 @@ export interface paths {
3073
3097
  delete?: never;
3074
3098
  options?: never;
3075
3099
  head?: never;
3076
- patch?: never;
3100
+ /**
3101
+ * Tag a pre-order
3102
+ * @description Merge `metadata` into the pre-order’s tags: a key you send overwrites, a key sent as `null` is deleted, every other key is kept. The patch itself may carry at most 20 keys and 8192 bytes serialized, and so may the merged result (`400 metadata_too_large`); the merged-result cap never refuses a patch that only deletes keys, so a pre-order tagged over the cap can always be shrunk. An empty `metadata` object changes nothing and returns the pre-order as it is. Allowed in every status, `fulfilled` and `cancelled` included: the tags are yours and iSnap never reads them, so a finished pre-order can still be re-tagged or backfilled. Every `pre_order.*` webhook emitted after the call carries the new tags as `data.metadata`; a delivery already emitted keeps the tags it was emitted with, retries and replays included. The tags are not copied onto the line the pre-order produces. Returns the pre-order in the same shape as `GET /v1/pre-orders/{id}`. A pre-order placed by another account is `404`.
3103
+ */
3104
+ patch: {
3105
+ parameters: {
3106
+ query?: never;
3107
+ header?: never;
3108
+ path: {
3109
+ id: string;
3110
+ };
3111
+ cookie?: never;
3112
+ };
3113
+ requestBody: {
3114
+ content: {
3115
+ "application/json": components["schemas"]["PatchPreOrder"];
3116
+ };
3117
+ };
3118
+ responses: {
3119
+ /** @description The pre-order with its merged tags */
3120
+ 200: {
3121
+ headers: {
3122
+ [name: string]: unknown;
3123
+ };
3124
+ content: {
3125
+ "application/json": {
3126
+ /** @enum {boolean} */
3127
+ success: true;
3128
+ data: components["schemas"]["PreOrder"];
3129
+ trace_id: string;
3130
+ request_id: string;
3131
+ };
3132
+ };
3133
+ };
3134
+ /** @description Bad request — validation failed */
3135
+ 400: {
3136
+ headers: {
3137
+ [name: string]: unknown;
3138
+ };
3139
+ content: {
3140
+ "application/json": components["schemas"]["ErrorEnvelope"];
3141
+ };
3142
+ };
3143
+ /** @description Unauthenticated — missing or invalid bearer token */
3144
+ 401: {
3145
+ headers: {
3146
+ [name: string]: unknown;
3147
+ };
3148
+ content: {
3149
+ "application/json": components["schemas"]["ErrorEnvelope"];
3150
+ };
3151
+ };
3152
+ /** @description Not found */
3153
+ 404: {
3154
+ headers: {
3155
+ [name: string]: unknown;
3156
+ };
3157
+ content: {
3158
+ "application/json": components["schemas"]["ErrorEnvelope"];
3159
+ };
3160
+ };
3161
+ /** @description Too many requests — rate limit exceeded */
3162
+ 429: {
3163
+ headers: {
3164
+ [name: string]: unknown;
3165
+ };
3166
+ content: {
3167
+ "application/json": components["schemas"]["ErrorEnvelope"];
3168
+ };
3169
+ };
3170
+ /** @description Internal server error */
3171
+ 500: {
3172
+ headers: {
3173
+ [name: string]: unknown;
3174
+ };
3175
+ content: {
3176
+ "application/json": components["schemas"]["ErrorEnvelope"];
3177
+ };
3178
+ };
3179
+ };
3180
+ };
3077
3181
  trace?: never;
3078
3182
  };
3079
3183
  "/v1/pre-orders/{id}/cancel": {
@@ -7016,12 +7120,15 @@ export interface paths {
7016
7120
  put?: never;
7017
7121
  /**
7018
7122
  * Rent a hosted macOS session
7019
- * @description Take one hosted macOS session out of iSnap stock on the calling wholesale partner’s account. An optional `metadata` object tags the tenancy with your own identifiers; it is returned on the session and echoed on every `macos_session.*` webhook. The tenancy starts immediately and `anniversary_at` is stamped with the day it was taken — that day of the month is what the session bills on, clamped to the last day of shorter months. Returns `409 no_macos_session_in_stock` when no confirmed, unrented session sits on a delivered Mac; iSnap provisions one and attaches it, and no request needs to be repeated. Direct customers do not use this verb — they buy sessions through `POST /v1/billing/mac-checkout` and are refused here with `403 not_a_wholesale_partner`.
7123
+ * @description Take one hosted macOS session out of iSnap stock on the calling wholesale partner’s account. An optional `metadata` object tags the tenancy with your own identifiers; it is returned on the session and echoed on every `macos_session.*` webhook. The tenancy starts immediately and `anniversary_at` is stamped with the day it was taken — that day of the month is what the session bills on, clamped to the last day of shorter months. Returns `409 no_macos_session_in_stock` when no confirmed, unrented session sits on a delivered Mac; iSnap provisions one and attaches it, and no request needs to be repeated. Direct customers do not use this verb — they buy sessions through `POST /v1/billing/mac-checkout` and are refused here with `403 not_a_wholesale_partner`. Every call rents a fresh billable session, so a retry MUST carry the same `Idempotency-Key` as the call it retries: the same key with the same body replays the first `201` instead of renting again.
7020
7124
  */
7021
7125
  post: {
7022
7126
  parameters: {
7023
7127
  query?: never;
7024
- header?: never;
7128
+ header?: {
7129
+ /** @description Optional. Makes a retry safe: the same key with the same body within 24h replays the first successful response instead of acting again, and the same key with a different body is `409 idempotency_key_collision`. While the first request is still running, a retry gets `503 idempotency_in_flight` and should retry shortly. A request that fails records nothing, so retrying it runs it again. At most 255 characters. Alias: `X-Idempotency-Key`. */
7130
+ "idempotency-key"?: string;
7131
+ };
7025
7132
  path?: never;
7026
7133
  cookie?: never;
7027
7134
  };
@@ -7094,6 +7201,15 @@ export interface paths {
7094
7201
  "application/json": components["schemas"]["ErrorEnvelope"];
7095
7202
  };
7096
7203
  };
7204
+ /** @description Service unavailable — a concurrent request is in flight */
7205
+ 503: {
7206
+ headers: {
7207
+ [name: string]: unknown;
7208
+ };
7209
+ content: {
7210
+ "application/json": components["schemas"]["ErrorEnvelope"];
7211
+ };
7212
+ };
7097
7213
  };
7098
7214
  };
7099
7215
  delete?: never;
@@ -7947,7 +8063,7 @@ export interface components {
7947
8063
  device_status?: components["schemas"]["DeviceFulfillmentStatus"];
7948
8064
  created_at: string;
7949
8065
  updated_at: string;
7950
- /** @description Your own tags on this pre-order, stated at creation and echoed as `data.metadata` on every `pre_order.*` webhook. `null` when untagged. They are not copied onto the line the pre-order produces. */
8066
+ /** @description Your own tags on this pre-order, set at creation or by `PATCH`, and echoed as `data.metadata` on every `pre_order.*` webhook. `null` when untagged. They are not copied onto the line the pre-order produces. */
7951
8067
  metadata: {
7952
8068
  [key: string]: unknown;
7953
8069
  } | null;
@@ -7967,6 +8083,17 @@ export interface components {
7967
8083
  trace_id: string;
7968
8084
  request_id: string;
7969
8085
  };
8086
+ PatchPreOrder: {
8087
+ /**
8088
+ * @description Your own key/value tags, stored verbatim and never interpreted by iSnap. Echoed on every webhook about this resource. At most 20 keys and 8192 bytes serialized.
8089
+ * @example {
8090
+ * "whatsnap_manager_id": "m1"
8091
+ * }
8092
+ */
8093
+ metadata: {
8094
+ [key: string]: unknown;
8095
+ };
8096
+ };
7970
8097
  Checkout: {
7971
8098
  /** Format: uri */
7972
8099
  url: string;
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ export type { MacosSession, PatchMacosSessionBody, RentMacosSessionBody } from '
27
27
  export type { ListMessagesQuery, Message, Reaction, ReactionRemoval, ReactionType, SendMessageBody, SendReactionBody } from './resources/messages.js';
28
28
  export type { Attachment, CreateAttachmentBody, CreateAttachmentResponse, UploadInput, UploadMetadata, UploadOptions } from './resources/attachments.js';
29
29
  export type { ByodPairBody, ByodPairResponse } from './resources/byod.js';
30
- export type { CreatePreOrderBody, ListPreOrdersQuery, PreOrder, PreOrderListData, PreOrderStatus } from './resources/preorders.js';
30
+ export type { CreatePreOrderBody, ListPreOrdersQuery, PatchPreOrderBody, PreOrder, PreOrderListData, PreOrderStatus } from './resources/preorders.js';
31
31
  export type { TrialActivityData, TrialInitBody, TrialInitData, TrialRevokeBody, TrialRevokeData, TrialStatusData, Trial, PatchTrialBody } from './resources/trial.js';
32
32
  export type { CreateWebhookBody, ListDeliveriesQuery, ListEventsQuery, UpdateWebhookBody, Webhook, WebhookDelivery, WebhookDeliveryReplay, WebhookEventItem, WebhookList, WebhookRotateSecret } from './resources/webhooks.js';
33
33
  export { parseWebhookEvent } from './webhooks/parse.js';
@@ -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.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;AAGzC,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,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,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,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,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;AA4F1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,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;AAGzC,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,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,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,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,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;AA6F1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,qBAAqB,CAAA"}
@@ -26,7 +26,11 @@ export declare class MacosSessionsResource extends BaseResource {
26
26
  * when no session is free — iSnap provisions one and attaches it, so the call
27
27
  * does not need to be retried on a schedule.
28
28
  *
29
- * One call rents one session; rent three by calling three times.
29
+ * One call rents one session; rent three by calling three times, each with
30
+ * its OWN idempotency key. The key (auto-generated per call unless you pass
31
+ * `opts.idempotencyKey`) is what makes a retry safe: calls that share a key
32
+ * rent ONE session between them, and the later ones get the first one's
33
+ * response back. Reuse a key only to retry the call it was first sent with.
30
34
  *
31
35
  * Pass `{ metadata }` to tag the tenancy with your own identifiers: they come
32
36
  * back on the session and as `data.metadata` on every `macos_session.*`
@@ -1 +1 @@
1
- {"version":3,"file":"macos-sessions.d.ts","sourceRoot":"","sources":["../../src/resources/macos-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAA;AAChE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAC5E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB9E;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAS7D;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAS7F;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAShE;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;CAQnE"}
1
+ {"version":3,"file":"macos-sessions.d.ts","sourceRoot":"","sources":["../../src/resources/macos-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAA;AAChE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAC5E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB9E;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAS7D;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAS7F;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAShE;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;CAQnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"macos-sessions.js","sourceRoot":"","sources":["../../src/resources/macos-sessions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAMxC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAkBrD,IAAI,CACF,UAAkD,EAClD,IAAqB;QAErB,2EAA2E;QAC3E,2CAA2C;QAC3C,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,CAAA;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,yBAAyB,EACzB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAChC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAyC,CAC5D,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,KAAK,EACL,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC9C,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAA2B,EAAE,IAAqB;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,OAAO,EACP,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC9C,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACrD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,EAAU,EAAE,IAAqB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,WAAW,EACvD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"macos-sessions.js","sourceRoot":"","sources":["../../src/resources/macos-sessions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAMxC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAsBrD,IAAI,CACF,UAAkD,EAClD,IAAqB;QAErB,2EAA2E;QAC3E,2CAA2C;QAC3C,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,CAAA;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,yBAAyB,EACzB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAChC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAyC,CAC5D,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,KAAK,EACL,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC9C,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAA2B,EAAE,IAAqB;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,OAAO,EACP,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC9C,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACrD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,EAAU,EAAE,IAAqB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,WAAW,EACvD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
@@ -6,6 +6,7 @@ export type PreOrderStatus = components['schemas']['PreOrderStatus'];
6
6
  export type PreOrderListData = components['schemas']['PreOrderList']['data'];
7
7
  export type CreatePreOrderBody = NonNullable<paths['/v1/pre-orders']['post']['requestBody']>['content']['application/json'];
8
8
  export type ListPreOrdersQuery = NonNullable<paths['/v1/pre-orders']['get']['parameters']['query']>;
9
+ export type PatchPreOrderBody = components['schemas']['PatchPreOrder'];
9
10
  export declare class PreOrdersResource extends BaseResource {
10
11
  /**
11
12
  * `POST /v1/pre-orders` — place a pre-order for a rental tier with no
@@ -52,6 +53,16 @@ export declare class PreOrdersResource extends BaseResource {
52
53
  list(query?: ListPreOrdersQuery, opts?: RequestOptions): Promise<PreOrderListData>;
53
54
  /** `GET /v1/pre-orders/{id}` — fetch a single pre-order by id. */
54
55
  get(id: string, opts?: RequestOptions): Promise<PreOrder>;
56
+ /**
57
+ * `PATCH /v1/pre-orders/{id}` — merge `metadata` into the pre-order's tags.
58
+ * A key you send overwrites, a key sent as `null` is deleted, every other key
59
+ * is kept. Allowed in every status, `fulfilled` and `cancelled` included.
60
+ * Every `pre_order.*` webhook emitted afterwards carries the new tags as
61
+ * `data.metadata`; one already emitted keeps the tags it was emitted with.
62
+ * The tags are not copied onto the line the pre-order produces. A pre-order
63
+ * placed by another account is a `NotFoundError` (404).
64
+ */
65
+ update(id: string, body: PatchPreOrderBody, opts?: RequestOptions): Promise<PreOrder>;
55
66
  /**
56
67
  * `POST /v1/pre-orders/{id}/cancel` — cancel a pre-order before it is
57
68
  * fulfilled. Refunds the Stripe payment intent (if charged) and releases the
@@ -1 +1 @@
1
- {"version":3,"file":"preorders.d.ts","sourceRoot":"","sources":["../../src/resources/preorders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AACxD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAIpE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAC/C,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAChC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAEnG,qBAAa,iBAAkB,SAAQ,YAAY;IACjD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS7D;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,KAAK,GAAE,kBAAuB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOtF,kEAAkE;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IASzD;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CAQ7D"}
1
+ {"version":3,"file":"preorders.d.ts","sourceRoot":"","sources":["../../src/resources/preorders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AACxD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAIpE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAC/C,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAChC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AACnG,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAEtE,qBAAa,iBAAkB,SAAQ,YAAY;IACjD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS7D;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,KAAK,GAAE,kBAAuB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOtF,kEAAkE;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IASzD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IASrF;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CAQ7D"}
@@ -56,6 +56,18 @@ export class PreOrdersResource extends BaseResource {
56
56
  get(id, opts) {
57
57
  return this.client.request('GET', `/v1/pre-orders/${encodeURIComponent(id)}`, undefined, opts);
58
58
  }
59
+ /**
60
+ * `PATCH /v1/pre-orders/{id}` — merge `metadata` into the pre-order's tags.
61
+ * A key you send overwrites, a key sent as `null` is deleted, every other key
62
+ * is kept. Allowed in every status, `fulfilled` and `cancelled` included.
63
+ * Every `pre_order.*` webhook emitted afterwards carries the new tags as
64
+ * `data.metadata`; one already emitted keeps the tags it was emitted with.
65
+ * The tags are not copied onto the line the pre-order produces. A pre-order
66
+ * placed by another account is a `NotFoundError` (404).
67
+ */
68
+ update(id, body, opts) {
69
+ return this.client.request('PATCH', `/v1/pre-orders/${encodeURIComponent(id)}`, body, opts);
70
+ }
59
71
  /**
60
72
  * `POST /v1/pre-orders/{id}/cancel` — cancel a pre-order before it is
61
73
  * fulfilled. Refunds the Stripe payment intent (if charged) and releases the
@@ -1 +1 @@
1
- {"version":3,"file":"preorders.js","sourceRoot":"","sources":["../../src/resources/preorders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAcxC,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAwB,EAAE,IAAqB;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAW,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAU,EAAE,IAAqB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAClD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,QAA4B,EAAE,EAAE,IAAqB;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAmB,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE;YAC/E,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,kEAAkE;IAClE,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,KAAK,EACL,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC1C,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACjD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"preorders.js","sourceRoot":"","sources":["../../src/resources/preorders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAexC,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAwB,EAAE,IAAqB;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAW,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAU,EAAE,IAAqB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAClD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,QAA4B,EAAE,EAAE,IAAqB;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAmB,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE;YAC/E,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,kEAAkE;IAClE,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,KAAK,EACL,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC1C,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAU,EAAE,IAAuB,EAAE,IAAqB;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,OAAO,EACP,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC1C,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAAqB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACjD,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SDK_VERSION = "2.1.0";
2
- export declare const MIN_API_VERSION = "2.0.0";
1
+ export declare const SDK_VERSION = "2.2.0";
2
+ export declare const MIN_API_VERSION = "2.24.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,UAAU,CAAA;AAyBlC,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;AA6BlC,eAAO,MAAM,eAAe,WAAW,CAAA"}
package/dist/version.js CHANGED
@@ -4,7 +4,7 @@
4
4
  // contract surface. Hand-maintained: no build or publish step derives this
5
5
  // from `package.json`, so it MUST be bumped in the same commit as the
6
6
  // `version` field there. `src/version.test.ts` fails CI when they disagree.
7
- export const SDK_VERSION = '2.1.0';
7
+ export const SDK_VERSION = '2.2.0';
8
8
  // Minimum API version the SDK considers compatible. Reference-only
9
9
  // today: the client exposes `client.version()` to read `/v1/version` on
10
10
  // demand, but does NOT call it automatically at first request as a
@@ -28,5 +28,9 @@ export const SDK_VERSION = '2.1.0';
28
28
  // describe ANY 1.x backend. Leaving the floor at `1.0.0` would have been the
29
29
  // same class of defect the change removes — a field that says something the
30
30
  // code does not do.
31
- export const MIN_API_VERSION = '2.0.0';
31
+ //
32
+ // WHA-3684 — raised to `2.24.0`, the API minor that added
33
+ // `PATCH /v1/pre-orders/{id}`, which `preOrders.update` wraps: the rule above,
34
+ // applied. Against an older backend that method answers 404, not a version error.
35
+ export const MIN_API_VERSION = '2.24.0';
32
36
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
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,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,2EAA2E;AAC3E,gEAAgE;AAChE,uEAAuE;AACvE,oBAAoB;AACpB,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,4DAA4D;AAC5D,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,oBAAoB;AACpB,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,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,2EAA2E;AAC3E,gEAAgE;AAChE,uEAAuE;AACvE,oBAAoB;AACpB,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,4DAA4D;AAC5D,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,oBAAoB;AACpB,EAAE;AACF,0DAA0D;AAC1D,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isnap/sdk",
3
- "version": "2.1.0",
3
+ "version": "2.2.0-next.210",
4
4
  "description": "Official TypeScript SDK for the iSnap P2P telephony API",
5
5
  "license": "MIT",
6
6
  "type": "module",