@isnap/sdk 2.0.0 → 2.1.0
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 +5 -0
- package/dist/generated/openapi.d.ts +453 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/macos-sessions.d.ts +18 -0
- package/dist/resources/macos-sessions.d.ts.map +1 -1
- package/dist/resources/macos-sessions.js +18 -11
- package/dist/resources/macos-sessions.js.map +1 -1
- package/dist/resources/trial.d.ts +14 -0
- package/dist/resources/trial.d.ts.map +1 -1
- package/dist/resources/trial.js +16 -0
- package/dist/resources/trial.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/types.d.ts +32 -10
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/webhooks/types.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -27,6 +27,11 @@ All notable changes to `@isnap/sdk` will be documented in this file. The format
|
|
|
27
27
|
- Webhook events `line.variant_scheduled` and `line.variant_unscheduled` (contract §4.3.3, WHA-3344) on the `LineEventType` alias: both carry the same three fields, `data.line_id`, `data.inbound_only` (the value the line WILL take, or would have taken) and `data.effective_at`, so a console mirrors the pending state with one code path in both directions instead of polling. They announce the PENDING state, not the change — the change still arrives as `line.variant_changed`, which now carries those SAME three flat fields on BOTH producers plus `data.scheduled` (always present, `false` from the partner's own immediate call and `true` when the anchor applied a scheduled one) beside the original `data.line` / `data.from` / `data.to` / `data.changed_at`. So one accessor reads a line's variant across all three events. A change DROPPED at the anchor (the line was cancelled, suspended or released, or the partner made it themselves meanwhile) fires nothing — do not treat a missing `line.variant_changed` at the expected instant as a delivery failure; re-read the line.
|
|
28
28
|
- `coverage.test.ts` guard: for every `/v1` operation in the published `openapi.json`, asserts an SDK wrapper exists (or is listed as deliberately un-wrapped, each with a reason). The expected set is derived from the spec, not hand-written, so a newly published endpoint reddens the suite until it is wrapped.
|
|
29
29
|
- `verifyWebhook` verifies the **Standard Webhooks** headers (`webhook-id` / `webhook-timestamp` / `webhook-signature`, WHA-3648) whenever `webhook-signature` is present, and falls back to the `X-iSnap-Signature` / `X-iSnap-Timestamp` scheme otherwise (additive, MINOR — `1.4.0`). Every iSnap delivery now carries both header sets over the same body, so existing callers keep working unchanged; the same secret string (`whsec_…`, or a legacy `whs_…`) and the same `[newSecret, oldSecret]` rotation array work on both paths, and the tolerance applies to both. When the standard header is present it decides: a wrong standard signature is rejected even if the legacy one would pass. The Standard Webhooks key is the base64 decoding of the secret without its prefix, which is what every official Standard Webhooks library derives from the same `whsec_` string.
|
|
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
|
+
- `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
|
+
- `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.
|
|
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`.
|
|
30
35
|
|
|
31
36
|
### Removed
|
|
32
37
|
- **`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.
|
|
@@ -2820,6 +2820,15 @@ export interface paths {
|
|
|
2820
2820
|
* @example 2026-09-11T09:15:00Z
|
|
2821
2821
|
*/
|
|
2822
2822
|
billing_anchor_at?: string;
|
|
2823
|
+
/**
|
|
2824
|
+
* @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.
|
|
2825
|
+
* @example {
|
|
2826
|
+
* "whatsnap_manager_id": "m1"
|
|
2827
|
+
* }
|
|
2828
|
+
*/
|
|
2829
|
+
metadata?: {
|
|
2830
|
+
[key: string]: unknown;
|
|
2831
|
+
};
|
|
2823
2832
|
};
|
|
2824
2833
|
};
|
|
2825
2834
|
};
|
|
@@ -4217,6 +4226,12 @@ export interface paths {
|
|
|
4217
4226
|
};
|
|
4218
4227
|
reply_to_message_id?: string;
|
|
4219
4228
|
use_typing_indicator?: boolean;
|
|
4229
|
+
/**
|
|
4230
|
+
* @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.
|
|
4231
|
+
* @example {
|
|
4232
|
+
* "whatsnap_manager_id": "m1"
|
|
4233
|
+
* }
|
|
4234
|
+
*/
|
|
4220
4235
|
metadata?: {
|
|
4221
4236
|
[key: string]: unknown;
|
|
4222
4237
|
};
|
|
@@ -6740,6 +6755,168 @@ export interface paths {
|
|
|
6740
6755
|
patch?: never;
|
|
6741
6756
|
trace?: never;
|
|
6742
6757
|
};
|
|
6758
|
+
"/v1/trial/{trial_id}": {
|
|
6759
|
+
parameters: {
|
|
6760
|
+
query?: never;
|
|
6761
|
+
header?: never;
|
|
6762
|
+
path?: never;
|
|
6763
|
+
cookie?: never;
|
|
6764
|
+
};
|
|
6765
|
+
/**
|
|
6766
|
+
* Get a trial session
|
|
6767
|
+
* @description Read one trial owned by the caller, including its `metadata`. A trial the caller does not own returns 404 (no existence leak).
|
|
6768
|
+
*/
|
|
6769
|
+
get: {
|
|
6770
|
+
parameters: {
|
|
6771
|
+
query?: never;
|
|
6772
|
+
header?: never;
|
|
6773
|
+
path: {
|
|
6774
|
+
/** @description The trl_<base62> public id returned by POST /v1/trial/init. */
|
|
6775
|
+
trial_id: string;
|
|
6776
|
+
};
|
|
6777
|
+
cookie?: never;
|
|
6778
|
+
};
|
|
6779
|
+
requestBody?: never;
|
|
6780
|
+
responses: {
|
|
6781
|
+
/** @description The trial */
|
|
6782
|
+
200: {
|
|
6783
|
+
headers: {
|
|
6784
|
+
[name: string]: unknown;
|
|
6785
|
+
};
|
|
6786
|
+
content: {
|
|
6787
|
+
"application/json": components["schemas"]["TrialEnvelope"];
|
|
6788
|
+
};
|
|
6789
|
+
};
|
|
6790
|
+
/** @description Bad request — validation failed */
|
|
6791
|
+
400: {
|
|
6792
|
+
headers: {
|
|
6793
|
+
[name: string]: unknown;
|
|
6794
|
+
};
|
|
6795
|
+
content: {
|
|
6796
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6797
|
+
};
|
|
6798
|
+
};
|
|
6799
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
6800
|
+
401: {
|
|
6801
|
+
headers: {
|
|
6802
|
+
[name: string]: unknown;
|
|
6803
|
+
};
|
|
6804
|
+
content: {
|
|
6805
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6806
|
+
};
|
|
6807
|
+
};
|
|
6808
|
+
/** @description Not found */
|
|
6809
|
+
404: {
|
|
6810
|
+
headers: {
|
|
6811
|
+
[name: string]: unknown;
|
|
6812
|
+
};
|
|
6813
|
+
content: {
|
|
6814
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6815
|
+
};
|
|
6816
|
+
};
|
|
6817
|
+
/** @description Too many requests — rate limit exceeded */
|
|
6818
|
+
429: {
|
|
6819
|
+
headers: {
|
|
6820
|
+
[name: string]: unknown;
|
|
6821
|
+
};
|
|
6822
|
+
content: {
|
|
6823
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6824
|
+
};
|
|
6825
|
+
};
|
|
6826
|
+
/** @description Internal server error */
|
|
6827
|
+
500: {
|
|
6828
|
+
headers: {
|
|
6829
|
+
[name: string]: unknown;
|
|
6830
|
+
};
|
|
6831
|
+
content: {
|
|
6832
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6833
|
+
};
|
|
6834
|
+
};
|
|
6835
|
+
};
|
|
6836
|
+
};
|
|
6837
|
+
put?: never;
|
|
6838
|
+
post?: never;
|
|
6839
|
+
delete?: never;
|
|
6840
|
+
options?: never;
|
|
6841
|
+
head?: never;
|
|
6842
|
+
/**
|
|
6843
|
+
* Tag a trial session
|
|
6844
|
+
* @description Merge `metadata` into the trial’s tags: a key you send overwrites, a key sent as `null` is deleted, every other key is kept. The tags are echoed as `data.metadata` on every `trial.*` webhook from then on. At most 20 keys and 8192 bytes serialized after the merge (`400 metadata_too_large`). A trial the caller does not own returns 404.
|
|
6845
|
+
*/
|
|
6846
|
+
patch: {
|
|
6847
|
+
parameters: {
|
|
6848
|
+
query?: never;
|
|
6849
|
+
header?: never;
|
|
6850
|
+
path: {
|
|
6851
|
+
/** @description The trl_<base62> public id returned by POST /v1/trial/init. */
|
|
6852
|
+
trial_id: string;
|
|
6853
|
+
};
|
|
6854
|
+
cookie?: never;
|
|
6855
|
+
};
|
|
6856
|
+
requestBody?: {
|
|
6857
|
+
content: {
|
|
6858
|
+
"application/json": components["schemas"]["PatchTrial"];
|
|
6859
|
+
};
|
|
6860
|
+
};
|
|
6861
|
+
responses: {
|
|
6862
|
+
/** @description The trial with its merged tags */
|
|
6863
|
+
200: {
|
|
6864
|
+
headers: {
|
|
6865
|
+
[name: string]: unknown;
|
|
6866
|
+
};
|
|
6867
|
+
content: {
|
|
6868
|
+
"application/json": components["schemas"]["TrialEnvelope"];
|
|
6869
|
+
};
|
|
6870
|
+
};
|
|
6871
|
+
/** @description Bad request — validation failed */
|
|
6872
|
+
400: {
|
|
6873
|
+
headers: {
|
|
6874
|
+
[name: string]: unknown;
|
|
6875
|
+
};
|
|
6876
|
+
content: {
|
|
6877
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6878
|
+
};
|
|
6879
|
+
};
|
|
6880
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
6881
|
+
401: {
|
|
6882
|
+
headers: {
|
|
6883
|
+
[name: string]: unknown;
|
|
6884
|
+
};
|
|
6885
|
+
content: {
|
|
6886
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6887
|
+
};
|
|
6888
|
+
};
|
|
6889
|
+
/** @description Not found */
|
|
6890
|
+
404: {
|
|
6891
|
+
headers: {
|
|
6892
|
+
[name: string]: unknown;
|
|
6893
|
+
};
|
|
6894
|
+
content: {
|
|
6895
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6896
|
+
};
|
|
6897
|
+
};
|
|
6898
|
+
/** @description Too many requests — rate limit exceeded */
|
|
6899
|
+
429: {
|
|
6900
|
+
headers: {
|
|
6901
|
+
[name: string]: unknown;
|
|
6902
|
+
};
|
|
6903
|
+
content: {
|
|
6904
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6905
|
+
};
|
|
6906
|
+
};
|
|
6907
|
+
/** @description Internal server error */
|
|
6908
|
+
500: {
|
|
6909
|
+
headers: {
|
|
6910
|
+
[name: string]: unknown;
|
|
6911
|
+
};
|
|
6912
|
+
content: {
|
|
6913
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
6914
|
+
};
|
|
6915
|
+
};
|
|
6916
|
+
};
|
|
6917
|
+
};
|
|
6918
|
+
trace?: never;
|
|
6919
|
+
};
|
|
6743
6920
|
"/v1/byod/pair": {
|
|
6744
6921
|
parameters: {
|
|
6745
6922
|
query?: never;
|
|
@@ -6839,7 +7016,7 @@ export interface paths {
|
|
|
6839
7016
|
put?: never;
|
|
6840
7017
|
/**
|
|
6841
7018
|
* Rent a hosted macOS session
|
|
6842
|
-
* @description Take one hosted macOS session out of iSnap stock on the calling wholesale partner’s account. 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`.
|
|
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`.
|
|
6843
7020
|
*/
|
|
6844
7021
|
post: {
|
|
6845
7022
|
parameters: {
|
|
@@ -6848,7 +7025,11 @@ export interface paths {
|
|
|
6848
7025
|
path?: never;
|
|
6849
7026
|
cookie?: never;
|
|
6850
7027
|
};
|
|
6851
|
-
requestBody?:
|
|
7028
|
+
requestBody?: {
|
|
7029
|
+
content: {
|
|
7030
|
+
"application/json": components["schemas"]["RentMacosSession"];
|
|
7031
|
+
};
|
|
7032
|
+
};
|
|
6852
7033
|
responses: {
|
|
6853
7034
|
/** @description The rented session */
|
|
6854
7035
|
201: {
|
|
@@ -7111,6 +7292,166 @@ export interface paths {
|
|
|
7111
7292
|
patch?: never;
|
|
7112
7293
|
trace?: never;
|
|
7113
7294
|
};
|
|
7295
|
+
"/v1/macos-sessions/{id}": {
|
|
7296
|
+
parameters: {
|
|
7297
|
+
query?: never;
|
|
7298
|
+
header?: never;
|
|
7299
|
+
path?: never;
|
|
7300
|
+
cookie?: never;
|
|
7301
|
+
};
|
|
7302
|
+
/**
|
|
7303
|
+
* Get a rented macOS session
|
|
7304
|
+
* @description Read one session the calling partner rents, including its `metadata`. A session rented by someone else, or already released back to stock, is `404`.
|
|
7305
|
+
*/
|
|
7306
|
+
get: {
|
|
7307
|
+
parameters: {
|
|
7308
|
+
query?: never;
|
|
7309
|
+
header?: never;
|
|
7310
|
+
path: {
|
|
7311
|
+
id: string;
|
|
7312
|
+
};
|
|
7313
|
+
cookie?: never;
|
|
7314
|
+
};
|
|
7315
|
+
requestBody?: never;
|
|
7316
|
+
responses: {
|
|
7317
|
+
/** @description The session */
|
|
7318
|
+
200: {
|
|
7319
|
+
headers: {
|
|
7320
|
+
[name: string]: unknown;
|
|
7321
|
+
};
|
|
7322
|
+
content: {
|
|
7323
|
+
"application/json": components["schemas"]["MacosSessionEnvelope"];
|
|
7324
|
+
};
|
|
7325
|
+
};
|
|
7326
|
+
/** @description Bad request — validation failed */
|
|
7327
|
+
400: {
|
|
7328
|
+
headers: {
|
|
7329
|
+
[name: string]: unknown;
|
|
7330
|
+
};
|
|
7331
|
+
content: {
|
|
7332
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7333
|
+
};
|
|
7334
|
+
};
|
|
7335
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
7336
|
+
401: {
|
|
7337
|
+
headers: {
|
|
7338
|
+
[name: string]: unknown;
|
|
7339
|
+
};
|
|
7340
|
+
content: {
|
|
7341
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7342
|
+
};
|
|
7343
|
+
};
|
|
7344
|
+
/** @description Not found */
|
|
7345
|
+
404: {
|
|
7346
|
+
headers: {
|
|
7347
|
+
[name: string]: unknown;
|
|
7348
|
+
};
|
|
7349
|
+
content: {
|
|
7350
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7351
|
+
};
|
|
7352
|
+
};
|
|
7353
|
+
/** @description Too many requests — rate limit exceeded */
|
|
7354
|
+
429: {
|
|
7355
|
+
headers: {
|
|
7356
|
+
[name: string]: unknown;
|
|
7357
|
+
};
|
|
7358
|
+
content: {
|
|
7359
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7360
|
+
};
|
|
7361
|
+
};
|
|
7362
|
+
/** @description Internal server error */
|
|
7363
|
+
500: {
|
|
7364
|
+
headers: {
|
|
7365
|
+
[name: string]: unknown;
|
|
7366
|
+
};
|
|
7367
|
+
content: {
|
|
7368
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7369
|
+
};
|
|
7370
|
+
};
|
|
7371
|
+
};
|
|
7372
|
+
};
|
|
7373
|
+
put?: never;
|
|
7374
|
+
post?: never;
|
|
7375
|
+
delete?: never;
|
|
7376
|
+
options?: never;
|
|
7377
|
+
head?: never;
|
|
7378
|
+
/**
|
|
7379
|
+
* Tag a rented macOS session
|
|
7380
|
+
* @description Merge `metadata` into the session’s tags: a key you send overwrites, a key sent as `null` is deleted, every other key is kept. The tags are echoed on every `macos_session.*` webhook from then on, and cleared when the session is released. At most 20 keys and 8192 bytes serialized after the merge (`400 metadata_too_large`). A session rented by someone else, or already released, is `404`.
|
|
7381
|
+
*/
|
|
7382
|
+
patch: {
|
|
7383
|
+
parameters: {
|
|
7384
|
+
query?: never;
|
|
7385
|
+
header?: never;
|
|
7386
|
+
path: {
|
|
7387
|
+
id: string;
|
|
7388
|
+
};
|
|
7389
|
+
cookie?: never;
|
|
7390
|
+
};
|
|
7391
|
+
requestBody?: {
|
|
7392
|
+
content: {
|
|
7393
|
+
"application/json": components["schemas"]["PatchMacosSession"];
|
|
7394
|
+
};
|
|
7395
|
+
};
|
|
7396
|
+
responses: {
|
|
7397
|
+
/** @description The session with its merged tags */
|
|
7398
|
+
200: {
|
|
7399
|
+
headers: {
|
|
7400
|
+
[name: string]: unknown;
|
|
7401
|
+
};
|
|
7402
|
+
content: {
|
|
7403
|
+
"application/json": components["schemas"]["MacosSessionEnvelope"];
|
|
7404
|
+
};
|
|
7405
|
+
};
|
|
7406
|
+
/** @description Bad request — validation failed */
|
|
7407
|
+
400: {
|
|
7408
|
+
headers: {
|
|
7409
|
+
[name: string]: unknown;
|
|
7410
|
+
};
|
|
7411
|
+
content: {
|
|
7412
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7413
|
+
};
|
|
7414
|
+
};
|
|
7415
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
7416
|
+
401: {
|
|
7417
|
+
headers: {
|
|
7418
|
+
[name: string]: unknown;
|
|
7419
|
+
};
|
|
7420
|
+
content: {
|
|
7421
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7422
|
+
};
|
|
7423
|
+
};
|
|
7424
|
+
/** @description Not found */
|
|
7425
|
+
404: {
|
|
7426
|
+
headers: {
|
|
7427
|
+
[name: string]: unknown;
|
|
7428
|
+
};
|
|
7429
|
+
content: {
|
|
7430
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7431
|
+
};
|
|
7432
|
+
};
|
|
7433
|
+
/** @description Too many requests — rate limit exceeded */
|
|
7434
|
+
429: {
|
|
7435
|
+
headers: {
|
|
7436
|
+
[name: string]: unknown;
|
|
7437
|
+
};
|
|
7438
|
+
content: {
|
|
7439
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7440
|
+
};
|
|
7441
|
+
};
|
|
7442
|
+
/** @description Internal server error */
|
|
7443
|
+
500: {
|
|
7444
|
+
headers: {
|
|
7445
|
+
[name: string]: unknown;
|
|
7446
|
+
};
|
|
7447
|
+
content: {
|
|
7448
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
7449
|
+
};
|
|
7450
|
+
};
|
|
7451
|
+
};
|
|
7452
|
+
};
|
|
7453
|
+
trace?: never;
|
|
7454
|
+
};
|
|
7114
7455
|
"/v1/apps": {
|
|
7115
7456
|
parameters: {
|
|
7116
7457
|
query?: never;
|
|
@@ -7289,6 +7630,15 @@ export interface components {
|
|
|
7289
7630
|
status: "created" | "pending_provisioning";
|
|
7290
7631
|
/** Format: date-time */
|
|
7291
7632
|
created_at: string;
|
|
7633
|
+
/**
|
|
7634
|
+
* @description Your own tags on this tenancy, set on `rent` or by `PATCH`, and echoed as `data.metadata` on every `macos_session.*` webhook. `null` when untagged. Cleared when the session is released.
|
|
7635
|
+
* @example {
|
|
7636
|
+
* "whatsnap_manager_id": "m1"
|
|
7637
|
+
* }
|
|
7638
|
+
*/
|
|
7639
|
+
metadata: {
|
|
7640
|
+
[key: string]: unknown;
|
|
7641
|
+
} | null;
|
|
7292
7642
|
};
|
|
7293
7643
|
ApiKey: {
|
|
7294
7644
|
/** Format: uuid */
|
|
@@ -7325,11 +7675,23 @@ export interface components {
|
|
|
7325
7675
|
area_code?: string;
|
|
7326
7676
|
inbound_only?: boolean;
|
|
7327
7677
|
as_test_line?: boolean;
|
|
7678
|
+
/**
|
|
7679
|
+
* @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.
|
|
7680
|
+
* @example {
|
|
7681
|
+
* "whatsnap_manager_id": "m1"
|
|
7682
|
+
* }
|
|
7683
|
+
*/
|
|
7328
7684
|
metadata?: {
|
|
7329
7685
|
[key: string]: unknown;
|
|
7330
7686
|
};
|
|
7331
7687
|
};
|
|
7332
7688
|
MintSharedLine: {
|
|
7689
|
+
/**
|
|
7690
|
+
* @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.
|
|
7691
|
+
* @example {
|
|
7692
|
+
* "whatsnap_manager_id": "m1"
|
|
7693
|
+
* }
|
|
7694
|
+
*/
|
|
7333
7695
|
metadata?: {
|
|
7334
7696
|
[key: string]: unknown;
|
|
7335
7697
|
};
|
|
@@ -7375,6 +7737,12 @@ export interface components {
|
|
|
7375
7737
|
anniversary_at: string;
|
|
7376
7738
|
};
|
|
7377
7739
|
PatchLine: {
|
|
7740
|
+
/**
|
|
7741
|
+
* @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.
|
|
7742
|
+
* @example {
|
|
7743
|
+
* "whatsnap_manager_id": "m1"
|
|
7744
|
+
* }
|
|
7745
|
+
*/
|
|
7378
7746
|
metadata?: {
|
|
7379
7747
|
[key: string]: unknown;
|
|
7380
7748
|
};
|
|
@@ -7579,6 +7947,10 @@ export interface components {
|
|
|
7579
7947
|
device_status?: components["schemas"]["DeviceFulfillmentStatus"];
|
|
7580
7948
|
created_at: string;
|
|
7581
7949
|
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. */
|
|
7951
|
+
metadata: {
|
|
7952
|
+
[key: string]: unknown;
|
|
7953
|
+
} | null;
|
|
7582
7954
|
};
|
|
7583
7955
|
/** @enum {string} */
|
|
7584
7956
|
PreOrderStatus: "draft" | "provisioning" | "fulfilled" | "cancelled";
|
|
@@ -7930,6 +8302,15 @@ export interface components {
|
|
|
7930
8302
|
created_at: string;
|
|
7931
8303
|
trace_id?: string;
|
|
7932
8304
|
data: {
|
|
8305
|
+
/** @description Your own tags on the event’s primary resource — the line for `line.*`, the message for `message.*` and `reaction.*` (the reacted-to message), the rented session for `macos_session.*`, the trial for `trial.*`, the pre-order for `pre_order.*`. Always present; `null` when untagged, and always `null` for `typing_indicator.*`, `binding.*` and `webhook.*`. A snapshot at emission: retries and replays carry the same value. */
|
|
8306
|
+
metadata: {
|
|
8307
|
+
[key: string]: unknown;
|
|
8308
|
+
} | null;
|
|
8309
|
+
/** @description Your own tags on the line the event is tied to (the same object as `metadata` on `line.*`). Always present; `null` when the event has no line of yours or the line is untagged. A snapshot at emission. */
|
|
8310
|
+
line_metadata: {
|
|
8311
|
+
[key: string]: unknown;
|
|
8312
|
+
} | null;
|
|
8313
|
+
} & {
|
|
7933
8314
|
[key: string]: unknown;
|
|
7934
8315
|
};
|
|
7935
8316
|
};
|
|
@@ -8209,6 +8590,9 @@ export interface components {
|
|
|
8209
8590
|
pool_line_number: string;
|
|
8210
8591
|
pairing_expires_at: string;
|
|
8211
8592
|
instructions_url: string;
|
|
8593
|
+
metadata: {
|
|
8594
|
+
[key: string]: unknown;
|
|
8595
|
+
} | null;
|
|
8212
8596
|
};
|
|
8213
8597
|
TrialInitBody: {
|
|
8214
8598
|
max_outbound_without_inbound?: number;
|
|
@@ -8218,6 +8602,15 @@ export interface components {
|
|
|
8218
8602
|
* @example Sent free via Acme
|
|
8219
8603
|
*/
|
|
8220
8604
|
footer?: string;
|
|
8605
|
+
/**
|
|
8606
|
+
* @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.
|
|
8607
|
+
* @example {
|
|
8608
|
+
* "whatsnap_manager_id": "m1"
|
|
8609
|
+
* }
|
|
8610
|
+
*/
|
|
8611
|
+
metadata?: {
|
|
8612
|
+
[key: string]: unknown;
|
|
8613
|
+
};
|
|
8221
8614
|
};
|
|
8222
8615
|
TrialStatusEnvelope: {
|
|
8223
8616
|
/** @enum {boolean} */
|
|
@@ -8290,6 +8683,42 @@ export interface components {
|
|
|
8290
8683
|
*/
|
|
8291
8684
|
reason?: "rebind" | "partner" | "admin";
|
|
8292
8685
|
};
|
|
8686
|
+
TrialEnvelope: {
|
|
8687
|
+
/** @enum {boolean} */
|
|
8688
|
+
success: true;
|
|
8689
|
+
data: components["schemas"]["Trial"];
|
|
8690
|
+
trace_id: string;
|
|
8691
|
+
request_id: string;
|
|
8692
|
+
};
|
|
8693
|
+
Trial: {
|
|
8694
|
+
trial_id: string;
|
|
8695
|
+
/** @enum {string} */
|
|
8696
|
+
status: "pairing_pending" | "active" | "dormant" | "revoked";
|
|
8697
|
+
pool_line_id: string | null;
|
|
8698
|
+
pool_line_number: string | null;
|
|
8699
|
+
paired_handle: string | null;
|
|
8700
|
+
/**
|
|
8701
|
+
* @description Your own tags on this trial, set on `init` or by `PATCH`, and echoed as `data.metadata` on every `trial.*` webhook. `null` when untagged.
|
|
8702
|
+
* @example {
|
|
8703
|
+
* "whatsnap_location_id": "loc_1"
|
|
8704
|
+
* }
|
|
8705
|
+
*/
|
|
8706
|
+
metadata: {
|
|
8707
|
+
[key: string]: unknown;
|
|
8708
|
+
} | null;
|
|
8709
|
+
created_at: string;
|
|
8710
|
+
};
|
|
8711
|
+
PatchTrial: {
|
|
8712
|
+
/**
|
|
8713
|
+
* @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.
|
|
8714
|
+
* @example {
|
|
8715
|
+
* "whatsnap_manager_id": "m1"
|
|
8716
|
+
* }
|
|
8717
|
+
*/
|
|
8718
|
+
metadata: {
|
|
8719
|
+
[key: string]: unknown;
|
|
8720
|
+
};
|
|
8721
|
+
};
|
|
8293
8722
|
ByodPairEnvelope: {
|
|
8294
8723
|
/** @enum {boolean} */
|
|
8295
8724
|
success: true;
|
|
@@ -8339,6 +8768,28 @@ export interface components {
|
|
|
8339
8768
|
trace_id: string;
|
|
8340
8769
|
request_id: string;
|
|
8341
8770
|
};
|
|
8771
|
+
RentMacosSession: {
|
|
8772
|
+
/**
|
|
8773
|
+
* @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.
|
|
8774
|
+
* @example {
|
|
8775
|
+
* "whatsnap_manager_id": "m1"
|
|
8776
|
+
* }
|
|
8777
|
+
*/
|
|
8778
|
+
metadata?: {
|
|
8779
|
+
[key: string]: unknown;
|
|
8780
|
+
};
|
|
8781
|
+
};
|
|
8782
|
+
PatchMacosSession: {
|
|
8783
|
+
/**
|
|
8784
|
+
* @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.
|
|
8785
|
+
* @example {
|
|
8786
|
+
* "whatsnap_manager_id": "m1"
|
|
8787
|
+
* }
|
|
8788
|
+
*/
|
|
8789
|
+
metadata: {
|
|
8790
|
+
[key: string]: unknown;
|
|
8791
|
+
};
|
|
8792
|
+
};
|
|
8342
8793
|
AppManifestEnvelope: {
|
|
8343
8794
|
/** @enum {boolean} */
|
|
8344
8795
|
success: true;
|
package/dist/index.d.ts
CHANGED
|
@@ -23,16 +23,16 @@ export type { AreaCode, AreaCodes, Country, ListAreaCodesQuery } from './resourc
|
|
|
23
23
|
export type { Chat, ChatMarkRead, ChatTypingStart, ChatTypingStop, ListChatsQuery, MarkReadBody, ShareContactCardBody, ShareContactCardResult, TypingStartBody } from './resources/chats.js';
|
|
24
24
|
export type { ActivateLineBody, AssignLineBody, Line, LineConfigPatch, LineConfigResponseData, LineHealth, LineList, ListLinesQuery, ListQueueQuery, MintSharedLineBody, MyLines, PatchLineBody, QueueResponseData, QuotaSnapshot, SetLineAnniversaryBody, SetLineVariantBody, TerminateLineBody, TransferOwnershipBody } from './resources/lines.js';
|
|
25
25
|
export type { LookupRequest, LookupResult } from './resources/lookup.js';
|
|
26
|
-
export type { MacosSession } from './resources/macos-sessions.js';
|
|
26
|
+
export type { MacosSession, PatchMacosSessionBody, RentMacosSessionBody } from './resources/macos-sessions.js';
|
|
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
30
|
export type { CreatePreOrderBody, ListPreOrdersQuery, PreOrder, PreOrderListData, PreOrderStatus } from './resources/preorders.js';
|
|
31
|
-
export type { TrialActivityData, TrialInitBody, TrialInitData, TrialRevokeBody, TrialRevokeData, TrialStatusData } from './resources/trial.js';
|
|
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';
|
|
34
34
|
export { verifyWebhook } from './webhooks/verify.js';
|
|
35
35
|
export type { VerifyWebhookOptions } from './webhooks/verify.js';
|
|
36
36
|
export { isAdminEvent, isBindingEvent, isLineEvent, isMacosSessionEvent, isMessageEvent, isPreOrderEvent, isReactionEvent, isTrialEvent, isTypingIndicatorEvent } from './webhooks/types.js';
|
|
37
|
-
export type { AdminEvent, AdminEventType, BindingEvent, BindingEventType, LineEvent, LineEventType, MacosSessionEvent, MacosSessionEventType, MessageEvent, MessageEventType, PreOrderEvent, PreOrderEventType, ReactionEvent, ReactionEventData, ReactionEventType, TrialEvent, TrialEventType, TypingIndicatorEvent, TypingIndicatorEventType, WebhookEvent, WebhookEventBase } from './webhooks/types.js';
|
|
37
|
+
export type { AdminEvent, AdminEventType, BindingEvent, BindingEventType, LineEvent, LineEventType, MacosSessionEvent, MacosSessionEventType, MessageEvent, MessageEventType, PreOrderEvent, PreOrderEventType, ReactionEvent, ReactionEventData, ReactionEventType, TrialEvent, TrialEventType, TypingIndicatorEvent, TypingIndicatorEventType, WebhookEvent, WebhookEventBase, WebhookPartnerMetadata } from './webhooks/types.js';
|
|
38
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,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;AACpB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACvF,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,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;AAE1D,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACxE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACjG,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACxE,YAAY,
|
|
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;
|
|
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"}
|
|
@@ -2,6 +2,8 @@ import type { components } from '../generated/openapi.js';
|
|
|
2
2
|
import type { RequestOptions } from '../types.js';
|
|
3
3
|
import { BaseResource } from './base.js';
|
|
4
4
|
export type MacosSession = components['schemas']['MacosSession'];
|
|
5
|
+
export type RentMacosSessionBody = components['schemas']['RentMacosSession'];
|
|
6
|
+
export type PatchMacosSessionBody = components['schemas']['PatchMacosSession'];
|
|
5
7
|
/**
|
|
6
8
|
* Hosted macOS sessions rented on a wholesale partner's account (contract §2.16).
|
|
7
9
|
*
|
|
@@ -25,8 +27,24 @@ export declare class MacosSessionsResource extends BaseResource {
|
|
|
25
27
|
* does not need to be retried on a schedule.
|
|
26
28
|
*
|
|
27
29
|
* One call rents one session; rent three by calling three times.
|
|
30
|
+
*
|
|
31
|
+
* Pass `{ metadata }` to tag the tenancy with your own identifiers: they come
|
|
32
|
+
* back on the session and as `data.metadata` on every `macos_session.*`
|
|
33
|
+
* webhook. The one-argument form `rent(opts)` is unchanged.
|
|
28
34
|
*/
|
|
29
35
|
rent(opts?: RequestOptions): Promise<MacosSession>;
|
|
36
|
+
rent(body: RentMacosSessionBody, opts?: RequestOptions): Promise<MacosSession>;
|
|
37
|
+
/**
|
|
38
|
+
* `GET /v1/macos-sessions/{id}` — one session you rent, with its `metadata`.
|
|
39
|
+
* A session rented by someone else, or already released, is `404`.
|
|
40
|
+
*/
|
|
41
|
+
get(id: string, opts?: RequestOptions): Promise<MacosSession>;
|
|
42
|
+
/**
|
|
43
|
+
* `PATCH /v1/macos-sessions/{id}` — merge `metadata` into the session's tags.
|
|
44
|
+
* A key you send overwrites, a key sent as `null` is deleted, every other key
|
|
45
|
+
* is kept. The tags are cleared when the session is released.
|
|
46
|
+
*/
|
|
47
|
+
update(id: string, body: PatchMacosSessionBody, opts?: RequestOptions): Promise<MacosSession>;
|
|
30
48
|
/**
|
|
31
49
|
* `POST /v1/macos-sessions/{id}/cancel` — end the tenancy at its next anniversary.
|
|
32
50
|
*
|
|
@@ -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;
|
|
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"}
|
|
@@ -12,19 +12,26 @@ import { BaseResource } from './base.js';
|
|
|
12
12
|
* not_a_wholesale_partner` for them.
|
|
13
13
|
*/
|
|
14
14
|
export class MacosSessionsResource extends BaseResource {
|
|
15
|
+
rent(bodyOrOpts, opts) {
|
|
16
|
+
// `RequestOptions` has no `metadata` key and the body has nothing else, so
|
|
17
|
+
// the key tells the two call shapes apart.
|
|
18
|
+
const hasBody = bodyOrOpts !== undefined && 'metadata' in bodyOrOpts;
|
|
19
|
+
return this.client.request('POST', '/v1/macos-sessions/rent', hasBody ? bodyOrOpts : undefined, hasBody ? opts : bodyOrOpts);
|
|
20
|
+
}
|
|
15
21
|
/**
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* `GET /v1/macos-sessions/{id}` — one session you rent, with its `metadata`.
|
|
23
|
+
* A session rented by someone else, or already released, is `404`.
|
|
24
|
+
*/
|
|
25
|
+
get(id, opts) {
|
|
26
|
+
return this.client.request('GET', `/v1/macos-sessions/${encodeURIComponent(id)}`, undefined, opts);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* `PATCH /v1/macos-sessions/{id}` — merge `metadata` into the session's tags.
|
|
30
|
+
* A key you send overwrites, a key sent as `null` is deleted, every other key
|
|
31
|
+
* is kept. The tags are cleared when the session is released.
|
|
25
32
|
*/
|
|
26
|
-
|
|
27
|
-
return this.client.request('
|
|
33
|
+
update(id, body, opts) {
|
|
34
|
+
return this.client.request('PATCH', `/v1/macos-sessions/${encodeURIComponent(id)}`, body, opts);
|
|
28
35
|
}
|
|
29
36
|
/**
|
|
30
37
|
* `POST /v1/macos-sessions/{id}/cancel` — end the tenancy at its next anniversary.
|
|
@@ -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;
|
|
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"}
|
|
@@ -7,6 +7,8 @@ export type TrialStatusData = components['schemas']['TrialStatusData'];
|
|
|
7
7
|
export type TrialActivityData = components['schemas']['TrialActivityData'];
|
|
8
8
|
export type TrialRevokeBody = components['schemas']['TrialRevokeBody'];
|
|
9
9
|
export type TrialRevokeData = components['schemas']['TrialRevokeData'];
|
|
10
|
+
export type Trial = components['schemas']['Trial'];
|
|
11
|
+
export type PatchTrialBody = components['schemas']['PatchTrial'];
|
|
10
12
|
export declare class TrialResource extends BaseResource {
|
|
11
13
|
/**
|
|
12
14
|
* `POST /v1/trial/init` — create a new trial session. Returns the pool
|
|
@@ -35,5 +37,17 @@ export declare class TrialResource extends BaseResource {
|
|
|
35
37
|
* trial key.
|
|
36
38
|
*/
|
|
37
39
|
revoke(trialId: string, body?: TrialRevokeBody, opts?: RequestOptions): Promise<TrialRevokeData>;
|
|
40
|
+
/**
|
|
41
|
+
* `GET /v1/trial/{trial_id}` — one trial you own, with its `metadata`.
|
|
42
|
+
* Authenticated as the trial's OWNER, like `revoke`; a trial owned by another
|
|
43
|
+
* account is `404`.
|
|
44
|
+
*/
|
|
45
|
+
get(trialId: string, opts?: RequestOptions): Promise<Trial>;
|
|
46
|
+
/**
|
|
47
|
+
* `PATCH /v1/trial/{trial_id}` — merge `metadata` into the trial's tags. A key
|
|
48
|
+
* you send overwrites, a key sent as `null` is deleted, every other key is
|
|
49
|
+
* kept. The tags are echoed as `data.metadata` on every `trial.*` webhook.
|
|
50
|
+
*/
|
|
51
|
+
update(trialId: string, body: PatchTrialBody, opts?: RequestOptions): Promise<Trial>;
|
|
38
52
|
}
|
|
39
53
|
//# sourceMappingURL=trial.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trial.d.ts","sourceRoot":"","sources":["../../src/resources/trial.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,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAC1E,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"trial.d.ts","sourceRoot":"","sources":["../../src/resources/trial.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,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAC1E,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;AAClD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAA;AAEhE,qBAAa,aAAc,SAAQ,YAAY;IAC7C;;;;;OAKG;IACH,IAAI,CAAC,IAAI,GAAE,aAAkB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAI7E;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAOtE;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI3D;;;;;;;OAOG;IACH,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,eAAoB,EAC1B,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IAS3B;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAS3D;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;CAQrF"}
|
package/dist/resources/trial.js
CHANGED
|
@@ -38,5 +38,21 @@ export class TrialResource extends BaseResource {
|
|
|
38
38
|
revoke(trialId, body = {}, opts) {
|
|
39
39
|
return this.client.request('POST', `/v1/trial/${encodeURIComponent(trialId)}/revoke`, body, opts);
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* `GET /v1/trial/{trial_id}` — one trial you own, with its `metadata`.
|
|
43
|
+
* Authenticated as the trial's OWNER, like `revoke`; a trial owned by another
|
|
44
|
+
* account is `404`.
|
|
45
|
+
*/
|
|
46
|
+
get(trialId, opts) {
|
|
47
|
+
return this.client.request('GET', `/v1/trial/${encodeURIComponent(trialId)}`, undefined, opts);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* `PATCH /v1/trial/{trial_id}` — merge `metadata` into the trial's tags. A key
|
|
51
|
+
* you send overwrites, a key sent as `null` is deleted, every other key is
|
|
52
|
+
* kept. The tags are echoed as `data.metadata` on every `trial.*` webhook.
|
|
53
|
+
*/
|
|
54
|
+
update(trialId, body, opts) {
|
|
55
|
+
return this.client.request('PATCH', `/v1/trial/${encodeURIComponent(trialId)}`, body, opts);
|
|
56
|
+
}
|
|
41
57
|
}
|
|
42
58
|
//# sourceMappingURL=trial.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trial.js","sourceRoot":"","sources":["../../src/resources/trial.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"trial.js","sourceRoot":"","sources":["../../src/resources/trial.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAWxC,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC7C;;;;;OAKG;IACH,IAAI,CAAC,OAAsB,EAAE,EAAE,IAAqB;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgB,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACjF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAa,EAAE,IAAqB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkB,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE;YAChF,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SACjC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAqB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7F,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CACJ,OAAe,EACf,OAAwB,EAAE,EAC1B,IAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,MAAM,EACN,aAAa,kBAAkB,CAAC,OAAO,CAAC,SAAS,EACjD,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAe,EAAE,IAAqB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,KAAK,EACL,aAAa,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC1C,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAe,EAAE,IAAoB,EAAE,IAAqB;QACjE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,OAAO,EACP,aAAa,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC1C,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
|
package/dist/version.d.ts
CHANGED
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.
|
|
7
|
+
export const SDK_VERSION = '2.1.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
|
package/dist/webhooks/types.d.ts
CHANGED
|
@@ -11,14 +11,36 @@ export interface WebhookEventBase {
|
|
|
11
11
|
event_type: string;
|
|
12
12
|
created_at: string;
|
|
13
13
|
trace_id?: string;
|
|
14
|
-
data: Record<string, unknown
|
|
14
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* The two keys EVERY event's `data` carries, whatever its family (WHA-3655).
|
|
18
|
+
* Both are always present: `null` means "untagged" or "not applicable", never
|
|
19
|
+
* a key that was left out.
|
|
20
|
+
*
|
|
21
|
+
* - `metadata` — your own tags on the event's primary resource: the line for
|
|
22
|
+
* `line.*`, the message for `message.*`, the reacted-to message for
|
|
23
|
+
* `reaction.*`, the rented session for `macos_session.*`, the trial for
|
|
24
|
+
* `trial.*`, the pre-order for `pre_order.*`. Always `null` for
|
|
25
|
+
* `typing_indicator.*`, `binding.*` and `webhook.*`, whose resources take
|
|
26
|
+
* no tags.
|
|
27
|
+
* - `line_metadata` — your own tags on the line the event is tied to, `null`
|
|
28
|
+
* when there is none (or it is not your line). On `line.*` it is the same
|
|
29
|
+
* object as `metadata`, so one key attributes every event to a line.
|
|
30
|
+
*
|
|
31
|
+
* Both are a snapshot taken when the event was emitted: a retry or a replay
|
|
32
|
+
* carries the tags as they stood then, not as they stand now.
|
|
33
|
+
*/
|
|
34
|
+
export type WebhookPartnerMetadata = {
|
|
35
|
+
metadata: Record<string, unknown> | null;
|
|
36
|
+
line_metadata: Record<string, unknown> | null;
|
|
37
|
+
};
|
|
16
38
|
export type MessageEventType = 'message.queued' | 'message.scheduled' | 'message.sent' | 'message.delivered' | 'message.failed' | 'message.received' | 'message.read' | 'message.cancelled' | 'message.fallback_triggered';
|
|
17
39
|
export interface MessageEvent extends WebhookEventBase {
|
|
18
40
|
event_type: `message.${string}`;
|
|
19
41
|
data: {
|
|
20
42
|
message: Message;
|
|
21
|
-
};
|
|
43
|
+
} & WebhookPartnerMetadata;
|
|
22
44
|
}
|
|
23
45
|
export type ReactionEventType = 'reaction.added' | 'reaction.received' | 'reaction.removed';
|
|
24
46
|
/** Keys every `reaction.*` delivery carries, whatever its direction. */
|
|
@@ -75,7 +97,7 @@ export type ReactionEventData = (ReactionEventDataBase & {
|
|
|
75
97
|
});
|
|
76
98
|
export interface ReactionEvent extends WebhookEventBase {
|
|
77
99
|
event_type: `reaction.${string}`;
|
|
78
|
-
data: ReactionEventData;
|
|
100
|
+
data: ReactionEventData & WebhookPartnerMetadata;
|
|
79
101
|
}
|
|
80
102
|
export type LineEventType = 'line.connected' | 'line.disconnected' | 'line.offline' | 'line.degraded' | 'line.apple_id_flagged' | 'line.quota_warning' | 'line.quota_exceeded' | 'line.capability_changed' | 'line.terminated' | 'line.variant_changed' | 'line.variant_scheduled' | 'line.variant_unscheduled';
|
|
81
103
|
/**
|
|
@@ -89,7 +111,7 @@ export type LineEventType = 'line.connected' | 'line.disconnected' | 'line.offli
|
|
|
89
111
|
*/
|
|
90
112
|
export interface LineEvent extends WebhookEventBase {
|
|
91
113
|
event_type: `line.${string}`;
|
|
92
|
-
data: Record<string, unknown
|
|
114
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
93
115
|
}
|
|
94
116
|
export type TypingIndicatorEventType = 'typing_indicator.started' | 'typing_indicator.stopped';
|
|
95
117
|
/**
|
|
@@ -99,13 +121,13 @@ export type TypingIndicatorEventType = 'typing_indicator.started' | 'typing_indi
|
|
|
99
121
|
*/
|
|
100
122
|
export interface TypingIndicatorEvent extends WebhookEventBase {
|
|
101
123
|
event_type: `typing_indicator.${string}`;
|
|
102
|
-
data: Record<string, unknown
|
|
124
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
103
125
|
}
|
|
104
126
|
export type TrialEventType = 'trial.linked' | 'trial.dormant' | 'trial.reactivated' | 'trial.bind_conflict' | 'trial.revoked';
|
|
105
127
|
/** See `LineEvent` for why `data` is loose. */
|
|
106
128
|
export interface TrialEvent extends WebhookEventBase {
|
|
107
129
|
event_type: `trial.${string}`;
|
|
108
|
-
data: Record<string, unknown
|
|
130
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
109
131
|
}
|
|
110
132
|
export type PreOrderEventType = 'pre_order.fulfilled' | 'pre_order.cancelled';
|
|
111
133
|
/**
|
|
@@ -117,7 +139,7 @@ export type PreOrderEventType = 'pre_order.fulfilled' | 'pre_order.cancelled';
|
|
|
117
139
|
*/
|
|
118
140
|
export interface PreOrderEvent extends WebhookEventBase {
|
|
119
141
|
event_type: `pre_order.${string}`;
|
|
120
|
-
data: Record<string, unknown
|
|
142
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
121
143
|
}
|
|
122
144
|
export type BindingEventType = 'binding.released';
|
|
123
145
|
/**
|
|
@@ -137,7 +159,7 @@ export type BindingEventType = 'binding.released';
|
|
|
137
159
|
*/
|
|
138
160
|
export interface BindingEvent extends WebhookEventBase {
|
|
139
161
|
event_type: `binding.${string}`;
|
|
140
|
-
data: Record<string, unknown
|
|
162
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
141
163
|
}
|
|
142
164
|
export type MacosSessionEventType = 'macos_session.rented' | 'macos_session.released';
|
|
143
165
|
/**
|
|
@@ -167,7 +189,7 @@ export type MacosSessionEventType = 'macos_session.rented' | 'macos_session.rele
|
|
|
167
189
|
*/
|
|
168
190
|
export interface MacosSessionEvent extends WebhookEventBase {
|
|
169
191
|
event_type: `macos_session.${string}`;
|
|
170
|
-
data: Record<string, unknown
|
|
192
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
171
193
|
}
|
|
172
194
|
/**
|
|
173
195
|
* Administrative synthetic probe — the suspended-state health check that
|
|
@@ -185,7 +207,7 @@ export type AdminEventType = 'webhook.test';
|
|
|
185
207
|
/** See `LineEvent` for why `data` is loose. */
|
|
186
208
|
export interface AdminEvent extends WebhookEventBase {
|
|
187
209
|
event_type: `webhook.${string}`;
|
|
188
|
-
data: Record<string, unknown
|
|
210
|
+
data: Record<string, unknown> & WebhookPartnerMetadata;
|
|
189
211
|
}
|
|
190
212
|
/**
|
|
191
213
|
* Discriminated union over the typed event families plus `WebhookEventBase`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAErE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"AAwYA,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,mBAAmB,CAAC,KAAuB;IACzD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC"}
|